Python を使用してアクロフォームからデータを抽出する

PDF ドキュメントからフォームフィールドを抽出

フォーム から aspose.pdf.facades 名前空間を使用すると、ドキュメントオブジェクトモデル全体を開かなくても、AcroForm フィールドデータを簡単に読み取ることができます。繰り返し処理を行います。 form.field_names フォームに存在するすべてのフィールド名を取得するには、 form.get_field(name) 現在の値を取得します。

  1. を構築 Form 入力ファイルパスを渡してオブジェクトにします。
  2. 反復処理 form.field_names すべてのフィールド名を列挙します。
  3. コール 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) フィールドコレクション全体を反復処理する必要はありません。これは、特定のフィールドのみが必要な場合に最も速い方法です。

  1. を構築 フォーム 入力ファイルパスを持つオブジェクト。
  2. コール form.get_field("FieldName") PDF に表示されているとおりのフィールドタイトルを使用します。
  3. 返された文字列値をアプリケーションの必要に応じて使用します。

    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 回の呼び出しですべてのフィールドデータをファイルストリームに直接シリアル化します。

  1. を構築 Form 入力ファイルパスを持つオブジェクト。
  2. を使用して出力ファイルをバイナリストリームとして開きます FileIO.
  3. コール 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。書き込む前にデータを変換またはフィルタリングする必要がある場合に使用します。

  1. 反復処理 form.field_names そしてディクショナリにフィールド値を入力します。
  2. で辞書をシリアル化する json.dumps(form_data, indent=4).
  3. 結果の 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 変換をワンステップで処理できます。

  1. を作成 Form PDF をインスタンス化してバインドする form.bind_pdf(path).
  2. 出力ファイルをバイナリストリームとして開きます。
  3. コール 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ファイルを生成できます。

  1. を作成 Form ソース PDF をインスタンス化してバインドする form.bind_pdf(path).
  2. 出力ファイルをバイナリストリームとして開きます。
  3. コール 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 上に フォーム クラスを使って出力を生成します。

  1. を作成 Form ソース PDF をインスタンス化してバインドする form.bind_pdf(path).
  2. 出力ファイルをバイナリストリームとして開きます。
  3. コール 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)