
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 -- 完了 --