Ekstrak data dari AcroForm

Ekstrak bidang formulir dari dokumen PDF

Aspose.PDF untuk C++ memungkinkan Anda tidak hanya membuat bidang formulir dan mengisi bidang formulir tetapi juga memudahkan untuk mengekstrak data bidang formulir atau informasi bidang formulir dari file PDF.

Dalam contoh kode di bawah ini, kami menunjukkan cara mengiterasi setiap halaman dalam PDF untuk mengekstrak informasi tentang semua AcroForms dalam PDF serta nilai bidang formulir. Contoh kode ini mengasumsikan bahwa Anda tidak mengetahui nama-nama bidang formulir sebelumnya.

void ExtractFormFields() {
    std::clog << __func__ << ": Start" << std::endl;
    // String untuk nama jalur
    String _dataDir("C:\\Samples\\Parsing\\");

    // String untuk nama file
    String infilename("StudentInfoFormElectronic.pdf");

    // Buka dokumen
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Dapatkan nilai dari semua bidang
    for (auto formField : document->get_Form()->get_Fields()) {
        std::cout << "Nama Bidang :" << formField->get_PartialName() << std::endl;
        std::cout << "Nilai : " << formField->get_Value() << std::endl;
    }
    std::clog << __func__ << ": Finish" << std::endl;
}

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. Selanjutnya Anda harus menutup objek FileStream dan membuang objek Form.

Cuplikan kode berikut menunjukkan bagaimana mengekspor data ke file XML.

void ExtractFormFieldsToXML() {
    std::clog << __func__ << ": Start" << std::endl;
    // String untuk nama jalur
    String _dataDir("C:\\Samples\\Parsing\\");

    // String untuk nama file
    String infilename(_dataDir + u"StudentInfoFormElectronic.pdf");
    String xmlFileName(_dataDir + u"StudentInfoFormElectronic.xml");

    auto form = MakeObject<Aspose::Pdf::Facades::Form>(_dataDir + infilename);
    auto fdfOutputStream = System::IO::File::OpenWrite(xmlFileName);

    // Ekspor data
    form->ExportXml(fdfOutputStream);

    // Tutup aliran file
    fdfOutputStream->Close();
    std::clog << __func__ << ": Finish" << std::endl;
}

Mengekspor Data ke FDF dari File PDF

Kelas Form memungkinkan Anda untuk mengekspor data ke file FDF dari file PDF menggunakan metode ExportFdf. Untuk mengekspor data ke FDF, Anda perlu membuat objek dari kelas Form dan kemudian memanggil metode ExportFdf menggunakan objek FileStream. Setelah itu, Anda dapat menyimpan file PDF menggunakan metode Save dari kelas Form.

Cuplikan kode berikut menunjukkan kepada Anda cara mengekspor data ke file FDF.

void ExtractFormExportFDF() {
    std::clog << __func__ << ": Start" << std::endl;
    // String untuk nama path
    String _dataDir("C:\\Samples\\Parsing\\");

    // String untuk nama file
    String infilename(_dataDir + u"StudentInfoFormElectronic.pdf");
    String fdfFileName(_dataDir+ u"StudentInfoFormElectronic.fdf");

    //String fdfFileName = Paths.get(_dataDir, "student.xfdf").toString();
    auto form = MakeObject<Aspose::Pdf::Facades::Form>(_dataDir + infilename);

    auto fdfOutputStream = System::IO::File::OpenWrite(fdfFileName);

    // Ekspor data
    form->ExportFdf(fdfOutputStream);

    // Tutup file stream
    fdfOutputStream->Close();
    std::clog << __func__ << ": Finish" << std::endl;
}

Ekspor Data ke XFDF dari File PDF

Aspose PDF untuk C++ dengan kelas Form memungkinkan Anda untuk mengekspor data ke file XFDF dari file PDF menggunakan metode ExportXfdf. Untuk mengekspor data ke XFDF, Anda perlu membuat objek dari kelas Form dan kemudian memanggil metode ExportXfdf menggunakan objek FileStream.

Pada akhirnya, Anda dapat menyimpan file PDF menggunakan metode Save dari kelas Form.

Cuplikan kode berikut menunjukkan cara mengekspor data ke file XFDF.

void ExtractFormExportXFDF() {
    std::clog << __func__ << ": Start" << std::endl;
    // String untuk nama jalur
    String _dataDir("C:\\Samples\\Parsing\\");

    // String untuk nama file
    String infilename("StudentInfoFormElectronic.pdf");
    String fdfFileName("StudentInfoFormElectronic.xfdf");

    //String fdfFileName = Paths.get(_dataDir, "student.xfdf").toString();
    auto form = MakeObject<Aspose::Pdf::Facades::Form>(_dataDir + infilename);

    auto fdfOutputStream = System::IO::File::OpenWrite(fdfFileName);

    // Ekspor data
    form->ExportXfdf(fdfOutputStream);

    // Tutup file stream
    fdfOutputStream->Close();
    std::clog << __func__ << ": Finish" << std::endl;
}