意外に難しいPDFの目次(しおり/ブックマーク)データの移行
紙のドキュメントをスキャナーで処理しPDFファイルにした、テキストがデジタルでは無いPDFのドキュメントには、よく目次(しおり/ブックマーク)が付けられていることがあります。最近ではテキストをOCR(Optical Character Recognition/Reader、オーシーアール、光学的文字認識)を使って文字をデジタル化することも多くなってきました。
ところがPDFはOCR処理をしたり、PDFのページサイズを変更したりすると、新たにPDFファイルが書き出されるために、ほとんどの場合は目次がなくなってしまいます。
目次テキストは書き出せても、リンクが失われてしまう
Adobe社のAcrobatやPDFツールを使うことで、目次のテキストデータはPDFから書き出すことができ、新しいPDFへインポートすることはできます。ところが肝心な目次を押してリンク先へ飛ぶ機能は失われてしまうので、また、手作業で一つ一つリンクを設定しなければなりません。
1つや2つのファイルであれば手作業でも可能ですが、何百のファイルやページ数が数百ページあると手作業でやり直すのは非常に時間がかかり効率的ではありません。
JPedalを使えば簡単にPDFの目次(しおり/ブックマーク)を移行できます
JPedalは、開発者が簡単にJavaでPDFファイルを表示、変換、印刷、解析できるようにするJava SDKです。JPedalを使うことで、元のPDFの目次のデータを抽出し、新しいPDFへ目次を書き込むことが可能になります。目次はリンクも元のPDFと同様に新しいPDFへ移行しますので、数百ページのPDFの目次(しおり)の移行が簡単に行えます
Javaを使って目次(しおり/ブックマーク)をコピーするサンプルコード
まず、目次をDocumentオブジェクトに読み込みます:
// 読み込み
final ExtractOutline extract = new ExtractOutline("source.pdf");
extract.openPDFFile();
final Document outlines = extract.getPDFTextOutline();
extract.closePDFfile();
そして、Documentオブジェクトを出力先PDFに書き込みます:
// 書き込み
final OutlineWriter writer = new OutlineWriter("destination.pdf", outlines);
writer.writeOutline();
コマンドラインを使った目次(しおり/ブックマーク)の移行方法のサンプルコード
JPedalは、PDFファイル間でしおりをコピーする便利なコマンドラインメソッドも提供しています:
// 読み込み
final ExtractOutline extract = new ExtractOutline("source.pdf");
extract.openPDFFile();
final Document outlines = extract.getPDFTextOutline();
extract.closePDFfile();
JPedalはPDFをシステムで扱う時に、非常に役立つJavaのSDKです。
JavaのPDFビューア、PDFファイルを画像に変換、PDFファイルの検索、PDFファイルの印刷、画像の抽出、テキストの抽出、メタデータの抽出、アノテーションの編集と追加などが数行のコマンドで実行できます。
無料のトライアルも提供していますので、ぜひ一度お試しください。
取り扱い製品について
PDF規格は複雑なうえに、過去からの積み重ねで非常にわかりにくくなっています。PDF連携ソフトウェアの開発では、英国IDRsolutions 社のPDF関連製品(変換ツール、ライブラリ、ソフトウェア部品など)を、ぜひご検討ください。
IDRsolutions はPDF関連ツールを20年以上に渡って開発・提供し続けています。PDF分野の老舗企業として、世界中の企業や公的機関にご活用いただいています。
日本では株式会社インターワークがIDRsolutions社の日本総代理店として取り扱っていますので、お気軽にご相談ください。
VIEWING PRODUCTS
PDFをHTML5やSVGに変換
PDFのフォームをHTML5に変換
SDK PRODUCTS
PDFファイルの表示、変換、抽出
多くの画像ファイル形式を読み書き、変換、操作、処理