7.2.2 XFDFを用いたPDFフォームデータのインポート

ImportFormFieldsFromXFDF_Top

狙い・効果

フォームデータXFDFファイルをPDFにインポート XFDFファイルのXFDFファイルフォームデータをPDFにインポートします。

処理の概要

XFDFファイルに保存されているフォームデータを用いてPDFにフォームを入力し、新規ファイルとして出力できます。

7.2.1 XFDFを用いたPDFフォームデータのエクスポート」で扱ったXFDFファイルと組み合わせて使うこともできます。

サンプルプログラムでは、指定したXFDFファイルのフォームデータをインポートして、入力PDFに付加して出力します。

『PDF Tool API』の主な機能

プログラム例

package cookbook;

import jp.co.antenna.ptl.*;

public class ImportFormFieldsFromXFDF {
    // そのクラスのusageを表示する関数
    private static void printUsage() {
        System.out.print("usage: java ExportFormFieldsToXFDF in-pdf-file");
        System.out.println(" out-pdf-file fdf-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 FdfToImport = new PtlParamInput(args[2]);
             PtlPDFDocument doc = new PtlPDFDocument()) {
            // PDFファイルをロードします。
            doc.load(inputFile);

            try (PtlPages pages = doc.getPages()) {//ページコンテナの取得
                // ページコンテナが空かどうか
                if (pages.isEmpty()) {
                    System.out.println("ページコンテナが空です。処理を終了します。\n");
                    return;
                }
            }
            // FDFファイルから注釈をインポートする
            doc.importFormFieldsFromXFDF(FdfToImport);

            // ファイルに保存します。
            doc.save(outputFile);
        }
	...【GetPDFVersion.javaと同じ処理のため省略
	   ・エラーメッセージ処理と出力】...
    }
}

プログラムファイル名

ImportFormFieldsFromXFDF.java

入出力操作の例

C:\samples>java cookbook.ImportFormFieldsFromXFDF 
usage: java ImportFormFieldsFromXFDF in-pdf-file out-pdf-file fdf-file-to-import

C:\samples>java cookbook.ImportFormFieldsFromXFDF 備品貸出申し込み書_blank.pdf Output_ImportFormFieldsFromXFDF.pdf Output_ExportFormFieldsToXFDF.xfdf 
フォームフィールドデータをインポートしました。
-- 完了 --

この操作例では「7.2.1 XFDFを用いたPDFフォームデータのエクスポート」でエクスポートしたXFDFファイルを用いて空のPDFフォームにデータを入力しています。

5-7-1-1_ExportFormFieldsToFDF_02_raw5-7-2-2_ImportFormFieldsFromXFDF
データ入力前のフォームPDF(拡大図)XFDFファイルからデータをインポートしたフォームPDF(拡大図)