Mengekstrak data dari AcroForm menggunakan Java
Mengekstrak bidang formulir dari dokumen PDF
Gunakan com.aspose.pdf.facades.Form untuk membaca nama bidang dan nilai tanpa melalui model objek dokumen secara lengkap.
- Buka formulir PDF sumber dengan fasad
Formsehingga bidang AcroForm dapat dibaca tanpa menelusuri seluruh model objek dokumen. - Panggil
getFieldNames()untuk mengumpulkan semua pengidentifikasi bidang yang ada di formulir. - Iterasikan melalui nama-nama bidang tersebut dan panggil
getField(fieldName)untuk membaca setiap nilai bidang. - Bangun string output dari pasangan kunci-nilai yang diekstrak dan cetak data formulir yang teragregasi.
- Tutup fasad
Formdalam blokfinally.
public static void extractFormFields(Path inputFile) {
Form form = new Form(inputFile.toString());
try {
StringBuilder formValues = new StringBuilder("{");
String[] fieldNames = form.getFieldNames();
for (int i = 0; i < fieldNames.length; i++) {
if (i > 0) {
formValues.append(", ");
}
formValues.append(fieldNames[i]).append("=").append(form.getField(fieldNames[i]));
}
formValues.append("}");
System.out.println(formValues);
} finally {
form.close();
}
}
Mengambil nilai bidang formulir berdasarkan nama
Ketika Anda mengetahui nama bidang yang tepat yang didefinisikan dalam formulir PDF, Anda dapat mengambil nilainya secara langsung dengan getField(fieldName)
tanpa mengiterasi seluruh koleksi bidang.
- Buka formulir PDF sumber dengan fasad
Form. - Panggil
getField(fieldName)dengan nama bidang yang diminta untuk membaca nilai saat ini dari data AcroForm. - Cetak nilai bidang yang diekstrak.
- Tutup fasad
Formdalam blokfinally.
public static void extractFormFieldByTitle(Path inputFile, String fieldName) {
Form form = new Form(inputFile.toString());
try {
String formValue = form.getField(fieldName);
System.out.println(formValue);
} finally {
form.close();
}
}
Mengekstrak bidang formulir dari dokumen PDF ke JSON
Nilai bidang formulir juga dapat diekstrak dan disimpan sebagai JSON. Ini berguna ketika data formulir PDF perlu dikonsumsi oleh aplikasi web, API, atau sistem lain yang bekerja dengan JSON.
- Buka formulir PDF sumber dengan fasad
Form. - Panggil
getFieldNames()untuk mengumpulkan semua pengidentifikasi bidang yang tersedia dari AcroForm. - Iterasikan melalui bidang-bidang tersebut, escape nama dan nilai, dan bangun string objek JSON.
- Tuliskan hasil JSON ke file output.
- Tutup fasad
Formdalam blokfinally.
public static void extractFormFieldsJson(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();
}
}
Mengekspor data formulir ke XML dari file PDF
Ekspor XML berguna ketika data formulir PDF perlu dikonsumsi oleh sistem yang bekerja dengan data XML terstruktur.
- Buat fasad
Formtanpa mengikat dokumen terlebih dahulu. - Buka aliran output untuk file XML dan hubungkan PDF sumber ke fasad dengan
bindPdf(...). - Panggil
exportXml(stream)sehingga data bidang formulir saat ini diserialkan sebagai XML. - Tutup fasad
Formsetelah ekspor selesai.
public static void extractDataToXml(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();
}
}
Mengekspor data ke FDF dari file PDF
FDF (Forms Data Format) biasanya digunakan untuk menukar data bidang AcroForm secara independen dari dokumen PDF.
- Buat fasad
Formtanpa mengikat dokumen terlebih dahulu. - Buka aliran output untuk file FDF dan ikat PDF sumber ke fasad dengan
bindPdf(...). - Panggil
exportFdf(stream)sehingga data bidang formulir diserialkan dalam format FDF. - Tutup fasad
Formsetelah ekspor selesai.
public static void extractDataToFdf(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();
}
}
Mengekspor data ke XFDF dari file PDF
XFDF adalah representasi berbasis XML dari Forms Data Format dan memudahkan pertukaran data formulir dengan sistem yang bekerja dengan XML.
- Buat fasad
Formtanpa mengikat dokumen terlebih dahulu. - Buka aliran output untuk file XFDF dan kaitkan PDF sumber ke antarmuka dengan
bindPdf(...). - Panggil
exportXfdf(stream)sehingga data bidang formulir diserialkan dalam format XFDF. - Tutup fasad
Formsetelah ekspor selesai.
public static void extractDataToXfdf(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();
}
}