PDFファイルから注釈情報をインポート注釈の付いたPDFから注釈情報を別のPDFファイルにインポートします。
PDFドキュメント上のマークアップ注釈(テキスト注釈、スタンプ注釈、図形注釈など)を別のPDFに直接インポートします。取り込めるのはマークアップ注釈なので、例えばリンク注釈などは取り込めません。
本サンプルプログラムでは、入力PDFに対し指定したPDFファイルから注釈情報をインポートして、PDF形式で出力します。
package cookbook; import jp.co.antenna.ptl.*; public class ImportAnnotsFromPDF { // そのクラスのusageを表示する関数 private static void printUsage(){ System.out.print("usage: java ImportAnnotsFromPDF in-pdf-file"); System.out.println(" out-pdf-file pdf-file-to-import"); } public static void main(String[] args) { if (args.length < 3){ printUsage(); return; } // コマンドライン引数の取得 try (PtlParamInput inputFile = new PtlParamInput(args[0]); PtlParamOutput outputFile = new PtlParamOutput(args[1]); PtlParamInput PdfToImport = new PtlParamInput(args[2]); PtlPDFDocument doc = new PtlPDFDocument(); PtlPDFDocument docOfImportPDF = new PtlPDFDocument()) { // PDFファイルをロードします。 doc.load(inputFile); try (PtlPages pages = doc.getPages()) {//ページコンテナの取得 // ページコンテナが空かどうか if (pages.isEmpty()) { System.out.println("ページコンテナが空\n"); return; } } // インポート元のPDFファイルが空でないことを確認します。 docOfImportPDF.load(PdfToImport); try (PtlPages pages = docOfImportPDF.getPages()) {//ページコンテナの取得 // ページコンテナが空かどうか if (pages.isEmpty()) { System.out.println("ページコンテナが空\n"); return; } } // PDFファイルから注釈をインポートする doc.importAnnotsFromPDF(PdfToImport); // ファイルに保存します。 doc.save(outputFile); } ...【AppendAnnotStampDefault.javaと同じ処理のため省略 ・エラーメッセージ処理と出力】... } }
ImportAnnotsFromPDF.java
C:\samples>java cookbook.ImportAnnotsFromPDF usage: java ImportAnnotsFromPDF in-pdf-file out-pdf-file pdf-file-to-import C:\samples>java cookbook.ImportAnnotsFromPDF blank.pdf blank-annots-pdf.pdf annots.pdf -- 完了 --