We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Excel转换出来的pdf,无法使用itext正常读取

我使用aspose.cells(22.12)把excel文件转换为pdf,在使用itext(5.5.13.3)读取的时候报错,并不是所有的excel都有这样的问题。

excel文件和报错提示
zip.zip (2.2 MB)

以下是我的代码

public static void main(String[] args) throws Exception{
	Workbook workbook = new Workbook("src/test/resources/document/xlsx.xlsx");
	PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
	// 缩放到一个页面(如果列太多,太长)
	pdfSaveOptions.setAllColumnsInOnePagePerSheet(true);
	workbook.save("src/test/resources/pdf/xlsx.pdf", pdfSaveOptions);
	PdfReader pdfReader = new PdfReader("src/test/resources/pdf/xlsx.pdf");
}

@humanhuman,

感谢示例文件和异常日志。

Aspose.Cells for Java 生成可以在 Adobe acrobat 中打开/显示的 PDF。 所以我们不确定它有什么问题以及为什么您的 iText 库无法读取 PDF 文件。 不管怎样,你能否从你的代码片段中删除这行代码,不管它是否有效?

pdfSaveOptions.setAllColumnsInOnePagePerSheet(true);

如果在删除或注释掉上述行后它工作正常,请将 Excel 文件打开到 MS Excel(例如 2016)中并为每个工作表指定“将所有列都放在一页上”选项/设置,然后手动保存到 PDF 文件。 现在使用此 PDF(由 MS Excel 生成)由 iText API 处理/读取是否有效? 我们将进一步检查。

我去掉了这个注释,但是结果还是一样,你可以使用我发送的文件,在这一行代码读取文件的时候会报错

PdfReader pdfReader = new PdfReader(“src/test/resources/pdf/xlsx.pdf”);

@humanhuman,

很抱歉问题仍然存在。 由于 iText 是第三方库,因此我们不确定这是 Aspose.Cells 还是 iText 的问题。 无论如何,如前所述,您能否尝试在 MS Excel 中手动呈现为 PDF,并使用输出的 PDF 由 iText 解析/读取。 输出 PDF(由 MS Excel)读取/处理 iText API? 此外,通过 MS Excel 共享输出的 PDF。 我们将进一步检查您的问题。

是的,我使用MS Excel工具,把我的文件转换为pdf,这个pdf是可以再次使用itext去读取的,这是我转换出来的pdf
xlsx.pdf (1.0 MB)

@humanhuman,

感谢您提供示例 PDF 文件。

我们已经为您的问题记录了一个 ID 为“CELLSJAVA-45072”的票证。 我们将调查您的问题的详细信息。

一旦我们有更新,我们会通知您。