Як конвертувати PDF у редаговану книгу Excel у Java
У цьому посібнику показано, як перетворити PDF у книгу, яку можна дійсно редагувати, а не просто у плоский експорт. Ви конвертуєте PDF у XLSX за допомогою ExcelSaveOptions, налаштуєте експорт, щоб таблиці чисто розміщувалися на розумній кількості листів, і перетворюєте відредаговану книгу назад у PDF за допомогою ExcelLoadOptions.
Конвертувати 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
Після того, як рецензент відредагує книгу, поверніть її у формат PDF, завантаживши її за допомогою ExcelLoadOptions та зберігши отриманий документ:
import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;
try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
doc.save("book.pdf");
}