Извлечение данных из AcroForm

Извлечение полей формы из PDF-документа

Aspose.PDF для PHP не только позволяет создавать и заполнять поля формы, но также облегчает извлечение данных полей формы или информации о полях формы из файлов PDF.

Предположим, что мы не знаем названия полей формы заранее. Тогда мы должны пройти по каждой странице в PDF, чтобы извлечь информацию обо всех AcroForms в PDF, а также значения полей формы. Чтобы получить доступ к форме, нам нужно использовать метод getForm.


    // Создайте новый экземпляр класса License и установите файл лицензии
    $licenceObject = new License();
    $licenceObject->setLicense($license);

    // Установите путь к каталогу, содержащему PDF-документ
    $dataDir = getcwd() . DIRECTORY_SEPARATOR . "samples";

    // Установите путь к входному PDF-файлу
    $inputFile = $dataDir . DIRECTORY_SEPARATOR . "StudentInfoFormElectronic.pdf";

    // Установите заголовок ответа, чтобы указать, что ответ будет в формате JSON
    header('Content-Type: application/json; charset=utf-8');

    // Инициализируйте переменную данных ответа
    $responseData = "";

    try {
        // Создайте новый экземпляр класса Document и загрузите входной PDF-файл
        $document = new Document($inputFile);

        // Получите поля формы из документа и преобразуйте их в значения PHP
        $fields = java_values($document->getForm()->getFields());

        // Пройдите через каждое поле формы и извлеките имя поля и значение
        foreach ($fields as $formField) {
            // Конкатенируйте имя поля и значение к данным ответа
            $responseData = $responseData . "(Имя поля: " . $formField->getPartialName() . " |";
            $responseData = $responseData . " Значение: " . $formField->getValue() . "),";
        }

        // Закройте документ
        $document->close();
    }

Если вы знаете названия полей формы, из которых хотите извлечь значения, вы можете использовать индексатор в коллекции Documents.Form для быстрого извлечения этих данных.

Извлечение данных в XML из PDF файла

Класс Form позволяет экспортировать данные в XML файл из PDF файла с помощью метода ExportXml. Для того чтобы экспортировать данные в XML, вам нужно создать объект класса Form, а затем вызвать метод ExportXml, используя объект FileStream. Наконец, вы можете закрыть объект FileStream и освободить объект Form. Следующий фрагмент кода показывает, как экспортировать данные в XML файл.


    // Открыть документ
    $form = new facades_Form();
    $form->bindPdf($inputFile);

    // Создать объект FileOutputStream для записи файла шрифта.
    $xmlOutputStream = new java("java.io.FileOutputStream", "output.xml");

    // Экспорт данных
    $form->exportXml($xmlOutputStream);

    // Закрыть поток файла
    $xmlOutputStream->close();

    // Закрыть документ
    $form->close();

Экспорт данных в FDF из PDF файла

Для экспорта данных форм PDF в файл XFDF мы можем использовать метод exportFdf в классе Form.

Обратите внимание, что это класс из com.aspose.pdf.facades. Несмотря на схожее название, этот класс имеет немного другую цель.

Чтобы экспортировать данные в FDF, вам нужно создать объект класса Form, а затем вызвать метод exportXfdf, используя объект OutputStream. Следующий фрагмент кода показывает, как экспортировать данные в файл XFDF.


    // Открыть документ
    $form = new facades_Form();
    $form->bindPdf($inputFile);

    // Создать объект FileOutputStream для записи файла шрифта.
    $xmlOutputStream = new java("java.io.FileOutputStream", "output.fdf");

    // Экспорт данных
    $form->exportFdf($xmlOutputStream);

    // Закрыть поток файла
    $xmlOutputStream->close();

    // Закрыть документ
    $form->close();

Экспорт данных в XFDF из PDF файла

Чтобы экспортировать данные форм PDF в файл XFDF, мы можем использовать метод exportXfdf в классе Form.

Для экспорта данных в XFDF необходимо создать объект класса Form, а затем вызвать метод exportXfdf с использованием объекта OutputStream. Следующий фрагмент кода показывает, как экспортировать данные в файл XFDF.


    // Открыть документ
    $form = new facades_Form();
    $form->bindPdf($inputFile);

    // Создать объект FileOutputStream для записи файла шрифта.
    $xmlOutputStream = new java("java.io.FileOutputStream", "output.xfdf");

    // Экспорт данных
    $form->exportXfdf($xmlOutputStream);

    // Закрыть поток файла
    $xmlOutputStream->close();

    // Закрыть документ
    $form->close();