我使用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”的票证。 我们将调查您的问题的详细信息。
一旦我们有更新,我们会通知您。
@humanhuman,
这是为了通知您,您的问题已经解决。 此修复程序将包含在计划于 2023 年 3 月第二周/第三周发布的下一个版本 (Aspose.Cells v23.3) 中。我们会在下一个版本可用时通知您。
The issues you have found earlier (filed as CELLSJAVA-45072) have been fixed in Aspose.Cells for Java 23.3.