Extraire des données d'AcroForm
Extraire les champs de formulaire du document PDF
Aspose.PDF pour C++ vous permet non seulement de créer des champs de formulaire et de remplir des champs de formulaire, mais aussi de faciliter l’extraction des données des champs de formulaire ou des informations des champs de formulaire à partir de fichiers PDF.
Dans l’exemple de code ci-dessous, nous démontrons comment itérer sur chaque page d’un PDF pour extraire des informations sur tous les AcroForms dans le PDF ainsi que les valeurs des champs de formulaire. Cet exemple de code suppose que vous ne connaissez pas à l’avance les noms des champs de formulaire.
void ExtractFormFields() {
std::clog << __func__ << ": Start" << std::endl;
// Chaîne pour le nom du chemin
String _dataDir("C:\\Samples\\Parsing\\");
// Chaîne pour le nom du fichier
String infilename("StudentInfoFormElectronic.pdf");
// Ouvrir le document
auto document = MakeObject<Document>(_dataDir + infilename);
// Obtenez les valeurs de tous les champs
for (auto formField : document->get_Form()->get_Fields()) {
std::cout << "Nom du champ :" << formField->get_PartialName() << std::endl;
std::cout << "Valeur : " << formField->get_Value() << std::endl;
}
std::clog << __func__ << ": Finish" << std::endl;
}
Extraire des données vers XML à partir d’un fichier PDF
La classe Form vous permet d’exporter des données vers un fichier XML à partir du fichier PDF en utilisant la méthode ExportXml. Pour exporter des données vers XML, vous devez créer un objet de la classe Form et ensuite appeler la méthode ExportXml en utilisant l’objet FileStream. Ensuite, vous devez fermer l’objet FileStream et disposer de l’objet Form.
Le code suivant vous montre comment exporter des données vers un fichier XML.
void ExtractFormFieldsToXML() {
std::clog << __func__ << ": Start" << std::endl;
// String pour le nom de chemin
String _dataDir("C:\\Samples\\Parsing\\");
// String pour le nom de fichier
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);
// Exporter les données
form->ExportXml(fdfOutputStream);
// Fermer le flux de fichier
fdfOutputStream->Close();
std::clog << __func__ << ": Finish" << std::endl;
}
Exporter des données vers FDF à partir d’un fichier PDF
La classe Form vous permet d’exporter des données vers un fichier FDF à partir du fichier PDF en utilisant la méthode ExportFdf. Afin d’exporter des données vers FDF, vous devez créer un objet de la classe Form puis appeler la méthode ExportFdf en utilisant l’objet FileStream. Ensuite, vous pouvez enregistrer le fichier PDF en utilisant la méthode Save de la classe Form.
L’extrait de code suivant vous montre comment exporter des données vers un fichier FDF.
void ExtractFormExportFDF() {
std::clog << __func__ << ": Start" << std::endl;
// Chaîne de caractères pour le nom du chemin
String _dataDir("C:\\Samples\\Parsing\\");
// Chaîne de caractères pour le nom du fichier
String infilename(_dataDir + u"StudentInfoFormElectronic.pdf");
String fdfFileName(_dataDir+ u"StudentInfoFormElectronic.fdf");
// Chaîne de caractères fdfFileName = Paths.get(_dataDir, "student.xfdf").toString();
auto form = MakeObject<Aspose::Pdf::Facades::Form>(_dataDir + infilename);
auto fdfOutputStream = System::IO::File::OpenWrite(fdfFileName);
// Exporter des données
form->ExportFdf(fdfOutputStream);
// Fermer le flux de fichier
fdfOutputStream->Close();
std::clog << __func__ << ": Finish" << std::endl;
}
Exporter des données vers XFDF à partir d’un fichier PDF
Aspose PDF pour C++ avec la classe Form vous permet d’exporter des données vers un fichier XFDF à partir du fichier PDF en utilisant la méthode ExportXfdf. Afin d’exporter des données vers XFDF, vous devez créer un objet de la classe Form puis appeler la méthode ExportXfdf en utilisant l’objet FileStream.
À la fin, vous pouvez enregistrer le fichier PDF en utilisant la méthode Save de la classe Form.
Le fragment de code suivant vous montre comment exporter des données vers un fichier XFDF.
void ExtractFormExportXFDF() {
std::clog << __func__ << ": Start" << std::endl;
// Chaîne pour le nom du chemin
String _dataDir("C:\\Samples\\Parsing\\");
// Chaîne pour le nom du fichier
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);
// Exporter des données
form->ExportXfdf(fdfOutputStream);
// Fermer le flux de fichiers
fdfOutputStream->Close();
std::clog << __func__ << ": Finish" << std::endl;
}