如何在 Java 中将 PDF 转换为可编辑的 Excel 工作簿
本指南展示了如何将 PDF 转换为可实际编辑的工作簿,而不仅仅是平面导出。您将使用 ExcelSaveOptions 将 PDF 转换为 XLSX,调优导出以使表格整齐地分布在合理数量的工作表上,并使用 ExcelLoadOptions 将编辑后的工作簿重新转换为 PDF。
将 PDF 转换为基础 Excel 工作簿
Document.save 与 SaveFormat.Xlsx 进行直接转换:每页的文本和类表格内容都会放置在其独立的工作表上。
import org.aspose.pdf.Document;
import org.aspose.pdf.SaveFormat;
try (Document doc = new Document("report.pdf")) {
doc.save("report.xlsx", SaveFormat.Xlsx); // SaveFormat.Excel is an alias
}调整导出以获得更清晰的电子表格
每页一张工作表的导出往往不是电子表格用户想要的。ExcelSaveOptions 控制工作表合并、列布局以及针对没有标记表格结构的 PDF 的表格恢复启发式算法:
import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelSaveOptions;
try (Document doc = new Document("report.pdf")) {
ExcelSaveOptions options = new ExcelSaveOptions();
options.setFormat(ExcelSaveOptions.ExcelFormat.XLSX); // default
options.setMinimizeTheNumberOfWorksheets(true); // merge pages onto fewer sheets
options.setInsertBlankColumnAtFirst(false); // no leading spacer column
options.setUniformWorksheets(false); // allow per-sheet column widths
options.setStructuralHeuristics(true); // recover tables on untagged PDFs
options.setSuppressRunningHeadersFooters(true); // drop repeated page furniture
doc.save("report.xlsx", options);
}setMinimizeTheNumberOfWorksheets(true) 是唯一能够显著改变输出形态的选项:若不使用它,20 页报告会生成 20 张工作表。
将 Excel 工作簿转换回 PDF
在审阅者编辑工作簿后,使用 ExcelLoadOptions 加载它并保存生成的文档,将其重新转换为 PDF 形式:
import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;
try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
doc.save("book.pdf");
}