Jak przekonwertować PDF na edytowalny skoroszyt Excel w Java
Ten przewodnik pokazuje, jak przekształcić PDF w skoroszyt, który naprawdę możesz edytować, a nie tylko płaską eksportację. Przekonwertujesz PDF do XLSX za pomocą ExcelSaveOptions, dostosujesz eksport, aby tabele trafiały czysto na rozsądną liczbę arkuszy, oraz przekształcisz edytowany skoroszyt z powrotem do PDF przy użyciu ExcelLoadOptions.
Konwertuj PDF do podstawowego skoroszytu Excel
Document.save z SaveFormat.Xlsx wykonuje prostą konwersję: tekst i treść przypominająca tabele z każdej strony są umieszczane w osobnym arkuszu.
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
}Dostosuj eksport, aby uzyskać czystsze arkusze kalkulacyjne
Eksport jednego arkusza na stronę często nie jest tym, czego oczekuje użytkownik arkuszy kalkulacyjnych. ExcelSaveOptions kontroluje łączenie arkuszy, układ kolumn oraz heurystyki odzyskiwania tabel dla PDF-ów, które nie mają oznaczonej struktury tabeli:
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) jest jedyną opcją, która najbardziej zmienia kształt wyjścia: bez niej 20-stronicowy raport generuje 20 arkuszy.
Konwertuj skoroszyt Excel z powrotem na PDF
Po tym, jak recenzent edytuje skoroszyt, przywróć go do formatu PDF, ładując go za pomocą ExcelLoadOptions i zapisując powstały dokument:
import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;
try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
doc.save("book.pdf");
}