Importar e exportar dados de Form
Aspose.PDF for Java suporta vários formatos comuns de troca de dados para formulários interativos.
Importar dados de formulário de XML
Use este exemplo quando os valores do formulário são armazenados em um arquivo XML e devem ser aplicados a um formulário PDF.
- Crie um Form fachada e vincule o PDF de origem.
- Abra o fluxo de entrada XML e importe os dados para o formulário.
- Salve o documento PDF atualizado.
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();
}
}
Exportar dados do Form para XML
Use este exemplo quando precisar armazenar os valores atuais do AcroForm em formato XML.
- Crie um Form fachada e vincule o PDF de origem.
- Abra o fluxo de saída para o arquivo XML.
- Exporte os dados do formulário para 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();
}
}
Importar dados de formulário do FDF
Use este exemplo quando os valores de formulário chegarem no formato de intercâmbio FDF.
- Crie um Form fachada e vincule o PDF de origem.
- Abra o fluxo de entrada FDF e importe os dados.
- Salve o documento PDF preenchido.
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();
}
}
Exportar dados do formulário para FDF
Use este exemplo quando os valores do formulário PDF devem ser compartilhados como um arquivo FDF.
- Crie um Form fachada e vincule o PDF de origem.
- Abra o fluxo de saída para o arquivo FDF.
- Exporte os dados do formulário em formato 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();
}
}
Importar dados de formulário a partir de XFDF
Use este exemplo quando os dados do formulário são fornecidos no formato XFDF e devem ser mesclados em um PDF.
- Crie um Form fachada e vincule o PDF de origem.
- Abra o fluxo de entrada XFDF e importe os valores.
- Salve o documento PDF atualizado.
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();
}
}
Exportar dados do formulário para XFDF
Use este exemplo quando precisar de um arquivo de intercâmbio baseado em XML para valores de AcroForm.
- Crie um Form fachada e vincule o PDF de origem.
- Abra o fluxo de saída para o arquivo XFDF.
- Exporte os valores do formulário atual para 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();
}
}
Extrair campos de formulário para JSON
Use este exemplo quando os valores do formulário devem ser exportados para uma representação JSON leve.
- Abra o PDF com a fachada Form.
- Itere pelos nomes dos campos e serialize seus valores em texto JSON.
- Escreva o conteúdo JSON no arquivo de destino.
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();
}
}
Reutilize o assistente de extração JSON
Use este exemplo quando quiser um método wrapper dedicado que delega para a rotina principal de exportação JSON.
- Chame o helper de extração JSON existente com o PDF de origem e o caminho de saída.
- Reutilize a mesma lógica de extração sem duplicar o código de serialização.
public static void extractFormFieldsToJsonDoc(Path inputFile, Path outputFile) throws Exception {
extractFormFieldsToJson(inputFile, outputFile);
}