7.2.1 XFDFを用いたPDFフォームデータのエクスポート

ExportFormFieldsToXFDF_Top

狙い・効果

フォームデータXFDFファイル形式でエクスポート 対話フォームPDFからフォームデータのみを抜き出したXFDFファイルを作成します。

処理の概要

PDFに入力されたXFDFファイルフォームデータをXFDFファイル形式でエクスポートすることができます。 XFDFファイルはXML形式で記録されているため、テキストエディタなどで開いてデータを確認することやデータを書き換えることが可能です。なお、出力されるXFDFファイルには改行やインデントといった整形処理は施されていません。

サンプルプログラムでは、入力PDFファイル上にある対話フォームを、指定された名前のXFDFファイルとしてエクスポートします。

『PDF Tool API』の主な機能

プログラム例

package cookbook;

import jp.co.antenna.ptl.*;

public class ExportFormFieldsToXFDF {
    // そのクラスのusageを表示する関数
    private static void printUsage() {
        System.out.print("usage: java ExportFormFieldsToXFDF in-pdf-file");
        System.out.println(" fdf-file-to-export");
    }

    public static void main(String[] args) {
        if (args.length < 2) {
            printUsage();
            return;
        }

        // コマンドライン引数の取得
        try (PtlParamInput inputFile = new PtlParamInput(args[0]);
             PtlParamOutput outputFile = new PtlParamOutput(args[1]);
             PtlPDFDocument doc = new PtlPDFDocument()) {
            // PDFファイルをロードします。
            doc.load(inputFile);

            try (PtlPages pages = doc.getPages()) {//ページコンテナの取得
                // ページコンテナが空かどうか
                if (pages.isEmpty()) {
                    System.out.println("ページコンテナが空\n");
                    return;
                }
            }

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

プログラムファイル名

ExportFormFieldsToXFDF.java

入出力操作の例

C:\samples>java cookbook.ExportFormFieldsToXFDF 
usage: java ExportFormFieldsToXFDF in-pdf-file fdf-file-to-export

C:\samples>java cookbook.ExportFormFieldsToXFDF 備品貸出申し込み書_アンテナ太郎.pdf Output_ExportFormFieldsToXFDF.xfdf 
-- 完了 --

この操作例では入力済みフォームフィールドのデータをXFDFファイルの形で出力しています。XFDFファイルはテキストエディタなどで開いて内容を確認することや書き換えることができます。なお、データ抽出元のPDFファイルは本書「7.1.1 FDFを用いたPDFフォームデータのエクスポート」と同一です。

下図はエクスポートされたXFDFファイルをテキストエディタで開いた例です。

5-7-2-1_ExportFormFieldsToXFDF_00
5-7-1-2_ExportFormFieldsToXDF_02
エクスポートされたXFDFデータ(インデント・改行加工済み)エクスポート元のPDFの図(拡大図)