Python を使用してアクロフォームからデータを抽出する
PDF ドキュメントからフォームフィールドを抽出
フォーム から aspose.pdf.facades 名前空間を使用すると、ドキュメントオブジェクトモデル全体を開かなくても、AcroForm フィールドデータを簡単に読み取ることができます。繰り返し処理を行います。 form.field_names フォームに存在するすべてのフィールド名を取得するには、 form.get_field(name) 現在の値を取得します。
- を構築
Form入力ファイルパスを渡してオブジェクトにします。 - 反復処理
form.field_namesすべてのフィールド名を列挙します。 - コール
form.get_field(name)名前ごとに結果を辞書に保存します。
import aspose.pdf as apdf
from io import FileIO
from os import path
import json
from aspose.pycore import cast, is_assignable
path_infile = self.dataDir + infile
form = apdf.facades.Form(path_infile)
form_values = {}
# Get values from all fields
for formField in form.field_names:
# Analyze names and values if needed
form_values[formField] = form.get_field(formField)
print(form_values)
タイトル別にフォームフィールド値を取得
PDF フォームで定義されている正確なフィールド名(タイトル)がわかっている場合は、次のコマンドを使用してその値を直接取得できます。 form.get_field(name) フィールドコレクション全体を反復処理する必要はありません。これは、特定のフィールドのみが必要な場合に最も速い方法です。
- を構築 フォーム 入力ファイルパスを持つオブジェクト。
- コール
form.get_field("FieldName")PDF に表示されているとおりのフィールドタイトルを使用します。 - 返された文字列値をアプリケーションの必要に応じて使用します。
import aspose.pdf as apdf
form = apdf.facades.Form(path_infile)
# Retrieve a single field value by its name
value = form.get_field("FirstName")
print(value)
PDF ドキュメントから JSON へのフォームフィールドの抽出
AcroForm データを JSON にエクスポートするには 2 つの方法があります。1 つ目はビルトインのものを使います。 export_json メソッドオン フォームは、1 回の呼び出しですべてのフィールドデータをファイルストリームに直接シリアル化します。
- を構築
Form入力ファイルパスを持つオブジェクト。 - を使用して出力ファイルをバイナリストリームとして開きます
FileIO. - コール
form.export_json(stream, True)JSON 出力を書き込むためのものです。
import aspose.pdf as apdf
from io import FileIO
from os import path
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
form = apdf.facades.Form(path_infile)
with FileIO(path_outfile, "w") as json_file:
form.export_json(json_file, True)
2 番目の方法では、以下から Python 辞書を作成します。 field_names そして get_field、次にそれをシリアル化します json.dumps。書き込む前にデータを変換またはフィルタリングする必要がある場合に使用します。
- 反復処理
form.field_namesそしてディクショナリにフィールド値を入力します。 - で辞書をシリアル化する
json.dumps(form_data, indent=4). - 結果の JSON 文字列を出力ファイルに書き込みます。
import aspose.pdf as apdf
from os import path
import json
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
form = apdf.facades.Form(path_infile)
form_data = {}
# Get values from all fields
for formField in form.field_names:
form_data[formField] = form.get_field(formField)
# Serialize to JSON
json_string = json.dumps(form_data, indent=4)
print(json_string)
with open(path_outfile, "w", encoding="utf-8") as json_file:
json_file.write(json_string)
PDF ファイルから XML にデータを抽出
XML エクスポートは、構造化された XML フィードまたはスキーマを使用するシステムと PDF フォームデータを統合するのに役立ちます。は フォーム クラス提供 export_xml 変換をワンステップで処理できます。
- を作成
FormPDF をインスタンス化してバインドするform.bind_pdf(path). - 出力ファイルをバイナリストリームとして開きます。
- コール
form.export_xml(stream)すべてのフィールドデータを XML として書き込みます。
import aspose.pdf as apdf
from io import FileIO
from os import path
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
# Create Form object
form = apdf.facades.Form()
# Bind PDF document
form.bind_pdf(path_infile)
# Export data to XML file
with FileIO(path_outfile, "w") as f:
form.export_xml(f)
PDF ファイルから FDF へのデータのエクスポート
FDF (Forms Data Format) は、AcroForm データの標準交換形式で、PDF ビューアや処理ツールで広くサポートされています。使用 export_fdf 上に フォーム クラスを指定すると、元のPDFまたは互換性のある別の形式にインポートできるスタンドアロンFDFファイルを生成できます。
- を作成
Formソース PDF をインスタンス化してバインドするform.bind_pdf(path). - 出力ファイルをバイナリストリームとして開きます。
- コール
form.export_fdf(stream)FDF データを書き込みます。
import aspose.pdf as apdf
from io import FileIO
from os import path
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
# Create Form object
form = apdf.facades.Form()
# Bind PDF document
form.bind_pdf(path_infile)
# Export form data to an FDF file
with FileIO(path_outfile, "w") as f:
form.export_fdf(f)
PDF ファイルから XFDF へのデータのエクスポート
XFDF (XML フォームデータフォーマット) は FDF の後継の XML ベースのもので、Web サービスや最新のデータパイプラインでの使用に適しています。FDF と同様に、XFDF ファイルは互換性のある PDF フォームにインポートし直すことができます。を使用してください。 export_xfdf 上に フォーム クラスを使って出力を生成します。
- を作成
Formソース PDF をインスタンス化してバインドするform.bind_pdf(path). - 出力ファイルをバイナリストリームとして開きます。
- コール
form.export_xfdf(stream)XFDF データを書き込みます。
import aspose.pdf as apdf
from io import FileIO
from os import path
path_infile = path.join(self.dataDir, infile)
path_outfile = path.join(self.dataDir, outfile)
# Create Form object
form = apdf.facades.Form()
# Bind PDF document
form.bind_pdf(path_infile)
# Export form data to an XFDF file
with FileIO(path_outfile, "w") as f:
form.export_xfdf(f)