Ekstrak data dari AcroForm
Ekstrak bidang formulir dari dokumen PDF
Aspose.PDF untuk Java tidak hanya memungkinkan Anda membuat dan mengisi bidang formulir, tetapi juga memudahkan untuk mengekstrak data bidang formulir atau informasi bidang formulir dari file PDF.
Misalkan kita tidak mengetahui nama-nama bidang formulir terlebih dahulu. Maka kita harus mengiterasi setiap halaman di PDF untuk mengekstrak informasi tentang semua AcroForm di PDF serta nilai dari bidang formulir. Untuk mendapatkan akses ke formulir kita perlu menggunakan metode getForm.
public static void ExtractFormFields() {
String path= "/home/admin/pdf-examples/Samples/StudentInfoFormElectronic.pdf";
com.aspose.pdf.Document document = new com.aspose.pdf.Document(path);
// Dapatkan nilai dari semua bidang
for (com.aspose.pdf.Field formField : document.getForm().getFields()) {
System.out.println("Nama Bidang :" + formField.getPartialName());
System.out.println("Nilai : " + formField.getValue());
}
}
Jika Anda mengetahui nama dari field formulir yang ingin Anda ekstrak nilainya, maka Anda dapat menggunakan indexer dalam koleksi Documents.Form untuk dengan cepat mengambil data ini.
Mengambil nilai field formulir berdasarkan judul
Properti Value dari field formulir memungkinkan Anda untuk mendapatkan nilai dari field tertentu. Untuk mendapatkan nilainya, dapatkan field formulir dari Dokumen objek koleksi field formulir. Contoh ini memilih TextBoxField dan mengambil nilainya menggunakan metode getValue.
public static void ExtractFormDataByName() {
String fileName = _dataDir+"/StudentInfoFormElectronic.pdf";
com.aspose.pdf.Document document = new com.aspose.pdf.Document(fileName);
com.aspose.pdf.TextBoxField textBoxField1 = (com.aspose.pdf.TextBoxField)document.getForm().get("Last Name");
System.out.println("Last Name :" + textBoxField1.getValue());
}
Ekstrak bidang formulir dari dokumen PDF ke JSON
Untuk mengekspor data formulir ke JSON, kami merekomendasikan menggunakan pustaka pihak ketiga seperti Gson.
Cuplikan berikut menunjukkan cara mengekspor Name
dan Value
ke JSON:
public static void ExtractFormFieldsToJson() {
String path = "/home/admin/pdf-examples/Samples/StudentInfoFormElectronic.pdf";
com.aspose.pdf.Document document = new com.aspose.pdf.Document(path);
java.util.List<FormElement> formData = new java.util.ArrayList<FormElement>();
for (com.aspose.pdf.Field formField : document.getForm().getFields()) {
formData.add(new FormElement(formField.getPartialName(), formField.getValue()));
}
Gson gson = new Gson();
String jsonString = gson.toJson(formData);
System.out.println(jsonString);
}
Dalam contoh ini kami menggunakan kelas tambahan
public class FormElement {
public FormElement(String partialName, String Value) {
this.Name = partialName;
this.Value = Value;
}
public String Name;
public String Value;
}
Ekstrak Data ke XML dari File PDF
Kelas Form memungkinkan Anda untuk mengekspor data ke file XML dari file PDF menggunakan metode ExportXml. Untuk mengekspor data ke XML, Anda perlu membuat objek dari kelas Form dan kemudian memanggil metode ExportXml menggunakan objek FileStream. Akhirnya, Anda dapat menutup objek FileStream dan membuang objek Form. Cuplikan kode berikut menunjukkan cara mengekspor data ke file XML.
public static void ExtractFormFieldsToXML() {
String dataDir = "/home/admin/pdf-examples/Samples/StudentInfoFormElectronic.pdf";
// Buka dokumen
com.aspose.pdf.facades.Form form = new com.aspose.pdf.facades.Form();
form.bindPdf(dataDir + "input.pdf");
try {
// Buat file XML.
FileOutputStream xmlOutputStream;
xmlOutputStream = new FileOutputStream(dataDir + "input.xml");
// Ekspor data
form.exportXml(xmlOutputStream);
// Tutup file stream
xmlOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// Tutup dokumen
form.dispose();
;
}
Ekspor Data ke FDF dari File PDF
Untuk mengekspor data formulir PDF ke file XFDF, kita dapat menggunakan metode exportFdf dalam kelas Form.
Harap dicatat, bahwa ini adalah kelas dari com.aspose.pdf.facades
. Meskipun namanya mirip, kelas ini memiliki tujuan yang sedikit berbeda.
Untuk mengekspor data ke FDF, Anda perlu membuat objek dari kelas Form
dan kemudian memanggil metode exportXfdf
menggunakan objek OutputStream
. Cuplikan kode berikut menunjukkan kepada Anda bagaimana mengekspor data ke file XFDF.
public static void ExtractFormExportFDF() {
String pdfFileName = Paths.get(_dataDir, "StudentInfoFormElectronic.pdf").toString();
String fdfFileName = Paths.get(_dataDir, "student.fdf").toString();
com.aspose.pdf.facades.Form form = new com.aspose.pdf.facades.Form(pdfFileName);
OutputStream fdfOutputStream;
try {
fdfOutputStream = new FileOutputStream(fdfFileName);
// Ekspor data
form.exportFdf(fdfOutputStream);
// Tutup file stream
fdfOutputStream.close();
} catch (IOException e) {
// TODO: tangani pengecualian
e.printStackTrace();
}
}
Ekspor Data ke XFDF dari File PDF
Untuk mengekspor data formulir PDF ke file XFDF, kita dapat menggunakan metode exportXfdf dalam kelas Form.
Untuk mengekspor data ke XFDF, Anda perlu membuat objek dari kelas Form
dan kemudian memanggil metode exportXfdf
menggunakan objek OutputStream
.
Cuplikan kode berikut menunjukkan cara mengekspor data ke file XFDF.
public static void ExtractFormExportXFDF() {
String pdfFileName = Paths.get(_dataDir, "StudentInfoFormElectronic.pdf").toString();
String fdfFileName = Paths.get(_dataDir, "student.xfdf").toString();
com.aspose.pdf.facades.Form form = new com.aspose.pdf.facades.Form(pdfFileName);
OutputStream fdfOutputStream;
try {
fdfOutputStream = new FileOutputStream(fdfFileName);
// Ekspor data
form.exportXfdf(fdfOutputStream);
// Tutup file stream
fdfOutputStream.close();
} catch (IOException e) {
// TODO: tangani pengecualian
e.printStackTrace();
}
}