Jak převést PDF na editovatelný sešit Excel v Java
Tento návod ukazuje, jak převést PDF na sešit, který můžete skutečně upravovat, a ne jen na plošný export. Převodíte PDF na XLSX pomocí ExcelSaveOptions, vyladíte export tak, aby tabulky čistě dopadly na rozumný počet listů, a převedete upravený sešit zpět do PDF pomocí ExcelLoadOptions.
Převést PDF na základní sešit Excel
Document.save s SaveFormat.Xlsx provádí jednoduchý převod: text a tabulkově vypadající obsah každé stránky je umístěn na vlastní list.
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
}Vyladit export pro čistší tabulky
Export s jedním listem na stránku často není to, co uživatel tabulek očekává. ExcelSaveOptions řídí slučování listů, rozvržení sloupců a heuristiky obnovy tabulek pro PDF, které nemají označenou strukturu tabulky:
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) je jediná volba, která nejvíce mění tvar výstupu: bez ní 20-stránková zpráva vytvoří 20 listů.
Převést sešit Excel zpět do PDF
Po úpravě sešitu recenzentem jej vraťte do PDF formátu načtením pomocí ExcelLoadOptions a uložením výsledného dokumentu:
import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;
try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
doc.save("book.pdf");
}