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
}エクスポートを調整して、よりクリーンなスプレッドシートにする
ページごとに1シートのエクスポートは、スプレッドシートユーザーが望むものではないことが多いです。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");
}