如何在 Java 中将 PDF 转换为可编辑的 Excel 工作簿

如何在 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");
}

另请参阅

 中文