フォーム データのインポートとエクスポート
Contents
[
Hide
]
Aspose.PDF for Java は、インタラクティブ フォーム用の複数の一般的なデータ交換フォーマットをサポートしています。
XMLからFormデータのインポート
フォームの値が XML ファイルに保存されており、PDF フォームに適用する必要がある場合は、この例を使用してください。
- Form ファサードを作成し、ソース PDF をバインドしてください。
- XML 入力ストリームを開き、データをフォームにインポートしてください。
- 更新された PDF ドキュメントを保存してください。
public static void importDataFromXml(Path inputFile, Path dataFile, Path outputFile) throws Exception {
Form form = new Form();
try (InputStream stream = Files.newInputStream(dataFile)) {
form.bindPdf(inputFile.toString());
form.importXml(stream);
form.save(outputFile.toString());
} finally {
form.close();
}
}
フォーム データを XML にエクスポート
現在の AcroForm の値を XML 形式で保存する必要がある場合は、この例を使用してください。
- Form ファサードを作成し、ソース PDF をバインドしてください。
- XML ファイルの出力ストリームを開いてください。
- フォームデータを XML にエクスポートしてください。
public static void exportDataToXml(Path inputFile, Path outputFile) throws Exception {
Form form = new Form();
try (OutputStream stream = Files.newOutputStream(outputFile)) {
form.bindPdf(inputFile.toString());
form.exportXml(stream);
} finally {
form.close();
}
}
FDF からフォーム データのインポート
フォームの値が FDF 交換形式で到着したときは、この例を使用してください。
- Form ファサードを作成し、ソース PDF をバインドしてください。
- FDF 入力ストリームを開き、データをインポートしてください。
- 記入済みの PDF 文書を保存してください。
public static void importDataFromFdf(Path inputFile, Path dataFile, Path outputFile) throws Exception {
Form form = new Form();
try (InputStream stream = Files.newInputStream(dataFile)) {
form.bindPdf(inputFile.toString());
form.importFdf(stream);
form.save(outputFile.toString());
} finally {
form.close();
}
}
フォームデータの FDF へのエクスポート
PDF フォームの値を FDF ファイルとして共有する必要がある場合は、この例を使用してください。
- Form ファサードを作成し、ソース PDF をバインドしてください。
- FDF ファイルの出力ストリームを開いてください。
- FDF 形式でフォームデータをエクスポートしてください。
public static void exportDataToFdf(Path inputFile, Path outputFile) throws Exception {
Form form = new Form();
try (OutputStream stream = Files.newOutputStream(outputFile)) {
form.bindPdf(inputFile.toString());
form.exportFdf(stream);
} finally {
form.close();
}
}
XFDF からのフォームデータのインポート
XFDF 形式で提供されたフォームデータを PDF にマージする必要がある場合は、この例を使用してください。
- Form ファサードを作成し、ソース PDF をバインドしてください。
- XFDF 入力ストリームを開き、値をインポートしてください。
- 更新された PDF ドキュメントを保存してください。
public static void importDataFromXfdf(Path inputFile, Path dataFile, Path outputFile) throws Exception {
Form form = new Form();
try (InputStream stream = Files.newInputStream(dataFile)) {
form.bindPdf(inputFile.toString());
form.importXfdf(stream);
form.save(outputFile.toString());
} finally {
form.close();
}
}
XFDF へのフォームデータのエクスポート
AcroForm の値を XML ベースの交換ファイルとして必要とする場合は、この例を使用してください。
- Form ファサードを作成し、ソース PDF をバインドしてください。
- XFDF ファイルの出力ストリームを開いてください。
- 現在のフォーム値を XFDF にエクスポートしてください。
public static void exportDataToXfdf(Path inputFile, Path outputFile) throws Exception {
Form form = new Form();
try (OutputStream stream = Files.newOutputStream(outputFile)) {
form.bindPdf(inputFile.toString());
form.exportXfdf(stream);
} finally {
form.close();
}
}
フォームフィールドの JSON への抽出
フォーム値を軽量な JSON 表現としてエクスポートする場合は、この例を使用してください。
- PDF を Form ファサードで開いてください。
- フィールド名を反復処理し、その値を JSON テキストにシリアライズしてください。
- JSON コンテンツをターゲットファイルに書き込んでください。
public static void extractFormFieldsToJson(Path inputFile, Path outputFile) throws Exception {
Form form = new Form(inputFile.toString());
try {
StringBuilder json = new StringBuilder();
json.append("{\n");
String[] fieldNames = form.getFieldNames();
for (int i = 0; i < fieldNames.length; i++) {
String fieldName = fieldNames[i];
json.append(" \"").append(escapeJson(fieldName)).append("\": \"")
.append(escapeJson(form.getField(fieldName))).append("\"");
if (i < fieldNames.length - 1) {
json.append(",");
}
json.append("\n");
}
json.append("}\n");
Files.writeString(outputFile, json.toString());
} finally {
form.close();
}
}
JSON 抽出ヘルパーの再利用
メインのJSONエクスポートルーチンに委譲する専用のラッパーメソッドが必要なときは、この例を使用してください。
- 既存の JSON 抽出ヘルパーを、ソース PDF と出力パスで呼び出してください。
- シリアライズコードを重複させずに、同じ抽出ロジックを再利用してください。
public static void extractFormFieldsToJsonDoc(Path inputFile, Path outputFile) throws Exception {
extractFormFieldsToJson(inputFile, outputFile);
}