AcroFormからデータを抽出する
PDFドキュメントからフォームフィールドを抽出する
Aspose.PDF for PHPは、フォームフィールドを作成して入力するだけでなく、PDFファイルからフォームフィールドデータやフォームフィールド情報を簡単に抽出することもできます。
フォームフィールドの名前を事前に知らないと仮定します。その場合、PDFの各ページを反復して、PDF内のすべてのAcroFormsの情報およびフォームフィールドの値を抽出する必要があります。フォームにアクセスするには、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 . "(Field Name: " . $formField->getPartialName() . " |";
$responseData = $responseData . " Value: " . $formField->getValue() . "),";
}
// ドキュメントを閉じます
$document->close();
}
フォームフィールドの名前を知っている場合、Documents.Formコレクションのインデクサーを使用して、このデータを迅速に取得することができます。
PDFファイルからXMLへのデータ抽出
Formクラスを使用すると、ExportXmlメソッドを使用してPDFファイルからXMLファイルにデータをエクスポートすることができます。データをXMLにエクスポートするためには、Formクラスのオブジェクトを作成し、FileStreamオブジェクトを使用してExportXmlメソッドを呼び出す必要があります。最後に、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();
PDFファイルからFDFへのデータエクスポート
PDFフォームのデータをXFDFファイルにエクスポートするには、FormクラスのexportFdfメソッドを使用できます。
このクラスは、com.aspose.pdf.facades
からのものです。似た名前ですが、このクラスは少し異なる目的を持っています。
データをFDFにエクスポートするには、Form
クラスのオブジェクトを作成し、OutputStream
オブジェクトを使用してexportXfdf
メソッドを呼び出す必要があります。以下のコードスニペットは、データをXFDFファイルにエクスポートする方法を示しています。
// ドキュメントを開く
$form = new facades_Form();
$form->bindPdf($inputFile);
// フォントファイルを書き込むためのFileOutputStreamオブジェクトを作成する。
$xmlOutputStream = new java("java.io.FileOutputStream", "output.fdf");
// データをエクスポート
$form->exportFdf($xmlOutputStream);
// ファイルストリームを閉じる
$xmlOutputStream->close();
// ドキュメントを閉じる
$form->close();
PDFファイルからXFDFにデータをエクスポートする
PDFフォームデータをXFDFファイルにエクスポートするには、FormクラスのexportXfdfメソッドを使用できます。
データをXFDFにエクスポートするには、Form
クラスのオブジェクトを作成し、その後OutputStream
オブジェクトを使用してexportXfdf
メソッドを呼び出す必要があります。
次のコードスニペットは、データをXFDFファイルにエクスポートする方法を示しています。
// ドキュメントを開く
$form = new facades_Form();
$form->bindPdf($inputFile);
// フォントファイルを書き込むためのFileOutputStreamオブジェクトを作成する。
$xmlOutputStream = new java("java.io.FileOutputStream", "output.xfdf");
// データをエクスポートする
$form->exportXfdf($xmlOutputStream);
// ファイルストリームを閉じる
$xmlOutputStream->close();
// ドキュメントを閉じる
$form->close();