导入和导出表单数据
Contents
[
Hide
]
Aspose.PDF for Java 支持多种常见的数据交换格式,用于交互式表单。
从 XML 导入表单数据
当表单值存储在 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();
}
}
将 Form 数据导出为 XML
当您需要以 XML 格式存储当前 AcroForm 值时,请使用此示例。
- 创建一个 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 表示时,请使用此示例。
- 使用 Form 对象打开 PDF。
- 遍历字段名称并将其值序列化为 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 导出例程时,请使用此示例。
- 使用源 PDF 和输出路径调用现有的 JSON 提取助手。
- 在不重复序列化代码的情况下复用相同的提取逻辑。
public static void extractFormFieldsToJsonDoc(Path inputFile, Path outputFile) throws Exception {
extractFormFieldsToJson(inputFile, outputFile);
}