Bekerja dengan Formulir XFA

Kelas Form menyediakan kemampuan untuk menangani AcroForm statis dan Anda dapat memperoleh instance bidang tertentu menggunakan metode GetFieldFacade(..) dari kelas Form. Namun, bidang XFA tidak dapat diakses melalui metode Form.GetFieldFacade(..). Sebagai gantinya, gunakan Document.Form.XFA untuk mendapatkan/mengatur nilai bidang dan memanipulasi template bidang XFA (mengatur properti bidang).

Potongan kode berikut juga bekerja dengan perpustakaan Aspose.PDF.Drawing.

Mengisi bidang XFA

Potongan kode berikut menunjukkan cara mengisi bidang dalam formulir XFA. Potongan kode berikut menunjukkan cara mengisi bidang dalam formulir XFA.

// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Muat formulir XFA
Document doc = new Document(dataDir + "FillXFAFields.pdf");

// Dapatkan nama-nama bidang formulir XFA
string[] names = doc.Form.XFA.FieldNames;

// Atur nilai bidang
doc.Form.XFA[names[0]] = "Field 0";
doc.Form.XFA[names[1]] = "Field 1";
dataDir = dataDir + "Filled_XFA_out.pdf";
// Simpan dokumen yang telah diperbarui
doc.Save(dataDir);

Konversi XFA-ke-Acroform

Formulir dinamis didasarkan pada spesifikasi XML yang dikenal sebagai XFA, “XML Forms Architecture”. Formulir dinamis didasarkan pada spesifikasi XML yang dikenal sebagai XFA, “Arsitektur Formulir XML”.

Saat ini, PDF mendukung dua metode berbeda untuk mengintegrasikan data dan formulir PDF:

  • AcroForms (juga dikenal sebagai formulir Acrobat), diperkenalkan dan termasuk dalam spesifikasi format PDF 1.2.
  • Formulir Arsitektur Formulir XML Adobe (XFA), diperkenalkan dalam spesifikasi format PDF 1.5 sebagai fitur opsional (Spesifikasi XFA tidak termasuk dalam spesifikasi PDF, hanya dirujuk.)

Kita tidak dapat mengekstrak atau memanipulasi halaman Formulir XFA, karena konten formulir dihasilkan pada waktu runtime (selama penayangan formulir XFA) dalam aplikasi yang mencoba menampilkan atau merender formulir XFA. Aspose.PDF memiliki fitur yang memungkinkan pengembang untuk mengonversi formulir XFA menjadi AcroForms standar.

// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Muat formulir XFA dinamis
Document document = new Document(dataDir + "DynamicXFAToAcroForm.pdf");

// Tetapkan tipe bidang formulir sebagai AcroForm standar
document.Form.Type = FormType.Standard;

dataDir = dataDir + "Standard_AcroForm_out.pdf";
// Simpan PDF hasilnya
document.Save(dataDir);

Dapatkan Properti Bidang XFA

Untuk mengakses properti bidang, pertama gunakan Document.Form.XFA.Teamplate untuk mengakses template bidang. Potongan kode berikut menunjukkan langkah-langkah mendapatkan koordinat X dan Y dari bidang formulir XFA.

// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_Forms();

// Muat formulir XFA
Document doc = new Document(dataDir + "GetXFAProperties.pdf");

string[] names = doc.Form.XFA.FieldNames;

// Atur nilai bidang
doc.Form.XFA[names[0]] = "Field 0";
doc.Form.XFA[names[1]] = "Field 1";

// Dapatkan posisi bidang
Console.WriteLine(doc.Form.XFA.GetFieldTemplate(names[0]).Attributes["x"].Value);

// Dapatkan posisi bidang
Console.WriteLine(doc.Form.XFA.GetFieldTemplate(names[0]).Attributes["y"].Value);

dataDir = dataDir + "Filled_XFA_out.pdf";
// Simpan dokumen yang telah diperbarui
doc.Save(dataDir);