AFormAut : ExportAsFDF メソッド

TOP > AFormAut > ExportAsFDF メソッド


説明

PDFファイルからフォームフィールドのデータを抽出して、

FDF ファイル(FDF ファイル形式)としてファイル出力します。

※注釈データは抽出しない。

形式

void ExportAsFDF (
     LPCTSTR bstrFullPath,
     LPCTSTR bstrSubmitButton,
     BOOL bEmptyFields,
     const VARIANT& arrFields);

引数

  1. 第一引数 ( LPCTSTR bstrFullPath ) :
    作成するFDF ファイルのフルパス名。
    セーフパスにしたがって設定する必要は無い。 ★テスト済み 
       
  2. 第二引数 ( LPCTSTR bstrSubmitButton ) :
    Button型の既存のフォームフィールドの名前。
    省略(空文字)も可。
        
  3. 第三引数 ( BOOL bEmptyFields ) :
    True : 値の持たないフィールドもFDFファイルの作成時に含める
    False : 含めない
       
  4. 第四引数 ( const VARIANT& arrFields ) :
    FDFファイルに含めるフィールドの完全修飾名を表す文字列の配列。
    この配列に、全ての子のフィールドがFDFファイルに含まれるようにするには、
    非終端フィールド「. ピリオド」の名前が含まれている必要が有ります。
    オプションなので省略可能。
    例:サブツリー全体を簡単に書き出す方法が指定出来ます。 arrFields パラメータの一部として「name」を入れると、「name.title」、「name.first」、「name.middle」、「name.last」などのフィールドが書き出されます。

       

戻り値

  • 無し。
    ※引数にエラーが有ると、どうなる?

動作するバージョン

Adobe
Acrobat
結果備考
4NOAcrobat 4.0 ※Windows 98SE + Excel 2000 *1
※古いPDFのバージョンはOK!
5NOAcrobat 5.0.5 + Excel 2003 *1
※古いPDFのバージョンはOK
6NOAcrobat 6.0.6 Pro + Excel 2003 *1
※古いPDFのバージョンはOK
7XAcrobat 7.1.4 Pro + Excel 2003 *2 
※レジストリ操作で全面的に可能になる
8NOAcrobat 8.3.1 Pro + Excel 2003
※当Acrobatバージョンでは全面的に不可
9NOAcrobat 9.5.5 Extended + Excel 2003
※当Acrobatバージョンでは全面的に不可
10OKAcrobat X (10.1.8) Extended + Excel 2003
11OKAcrobat XI (11.0.5) Extended + Excel 2003
  • OK : 正常処理。
  • NO : 動作しない。 又は実行時にエラーになる。
  • *1 : 「PDF のバージョン」によっては正常処理出来ない場合がある。
  • *2 : 処理前のレジストリに以下を追加する必要があります。
    [HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat¥7.0¥AVAlert]
    [HKEY_CURRENT_USER¥Software¥Adobe¥Adobe Acrobat¥7.0¥AVAlert¥cCheckbox]
    "idocNewerVersionWarning"=dword:00000001
  • X  : フォームフィールドのデータは抽出されない。
    FDFファイルファイルは作られて、正常終了はする。
  • -  : 動作未確認。 ですが、タブン動作します。

サンプル:Excel のVBA

説明 : PDFドキュメントからフォームフィールドのデータを抽出して、FDF ファイルとして出力する。

001 Option Explicit 002 003 Sub AFormAut_ExportAsFDF_test() 004 005 Dim arrFields(1) As String 006 Dim lRet As Long 007 008 Const CON_PDF_FILE = "D:\work\VBJavaScript.pdf" 009 Const CON_FDF_FILE = "D:\work\VBJavaScript-IAC.fdf" 010 011 'Acrobatオブジェクトの定義&作成 012 Dim objAcroApp As New Acrobat.AcroApp 013 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 014 015 Dim objAFormApp As AFORMAUTLib.AFormApp 016 Dim objAFormFields As AFORMAUTLib.Fields 017 018 '※CreateObject("AFormAut.App")のエラー 019 '※[429 ActiveXコンポーネントはオブジェクトを作成できません。] 020 '※回避用 / メモリにAcrobatを強制ロードさせる 021 objAcroApp.CloseAllDocs 022 023 '*―――――――――――――――――――-- 024 '* PDFファイルを開く 025 026 '処理対象のPDFファイルを開く 027 '※AVDocでOpenしないと"AFormAut.App"で実行エラー 028 lRet = objAcroAVDoc.Open(CON_PDF_FILE, "") 029 If lRet = 0 Then 030 MsgBox "AVDocオブジェクトはOpen出来ません" & vbCrLf & _ 031 CON_PDF_FILE, vbOKOnly + vbCritical, "処理エラー" 032 GoTo Skip_AFormAut_ExportAsFDF_test: 033 End If 034 035 '*―――――――――――――――――――-- 036 '* AFormオブジェクトの作成 037 038 Set objAFormApp = CreateObject("AFormAut.App") 039 Set objAFormFields = objAFormApp.Fields 040 041 '*―――――――――――――――――――-- 042 '* FDFの作成 043 044 arrFields(0) = "Text1" 045 arrFields(1) = "Text2" 046 047 objAFormFields.ExportAsFDF CON_FDF_FILE, "", True, arrFields 048 049 Skip_AFormAut_ExportAsFDF_test: 050 051 '*―――――――――――――――――――-- 052 '* 終了処理 053 054 '変更しないで閉じます 055 lRet = objAcroAVDoc.Close(1) 056 057 'Acrobatアプリケーションの終了 058 objAcroApp.Hide 059 objAcroApp.Exit 060 061 'オブジェクトの開放 062 Set objAFormFields = Nothing 063 Set objAFormApp = Nothing 064 Set objAcroAVDoc = Nothing 065 Set objAcroApp = Nothing 066 067 MsgBox "End Sub " 068 069 End Sub 070


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 


テスト結果 詳細

1. Acrobat 7(7.1.4) 環境下でExcel VBA を実行

  • 正常終了するが、マスターPDFのファイル名のデータしか抽出されない。

※Acrobat 7.1.4アプリ本体での操作について

  • Acrobat アプリ本体ではフィールドと注釈のFDF出力は別々のメニューから行う。
  • 注釈用FDF出力時はPDFファイル名に拡張子「.fdf」 で出力する。
  • フォームフィールド用FDF出力時はPDFファイル名+「_data」に拡張子「.fdf」 で出力する。

 

2. Acrobat X(10.1.8) 環境下でExcel VBA を実行

  • フィールド
    • FDF出力の正常処理。
    • フィールドのサブツリー指定のFDF出力正常。
  • 注釈(ハイライト、テキスト注釈、テキスト置換等)
    • FDF出力されない。
    • マスターPDFの情報はファイル名のみがFDFへ出力される。
  • Acrobatアプリの操作と違ってフルパス情報では出力されない。

※Acrobat X(10.1.8) アプリ本体での操作について

  • Acrobat アプリ本体ではフィールドと注釈のFDF出力は別々のメニューから行う。
  • フィールドと注釈は別々のFDF出力で出力されるが、PDFとの結合では2つ一緒に使える。

 

3. Acrobat X(11.0.5) 環境下でExcel VBA を実行

  • フィールド
    • FDF出力の正常処理。
    • フィールドのサブツリー指定のFDF出力正常。
  •  注釈(ハイライト、テキスト注釈、テキスト置換等)
    • FDF出力されない。
    •  マスターPDFの情報はファイル名のみがFDFへ出力される。
  • Acrobatアプリの操作と違ってフルパス情報では出力されない。

※Acrobat XI(11.0.5) アプリ本体での操作について

  • Acrobat アプリ本体では注釈はFDF出力を別々のメニューから行う。
  • フィールドの出力はメニューから消えている?
  • 注釈のFDF出力でPDFとの結合に使える。

 

備考

  1. 注釈データは抽出されない。

Adobe Web 解説 URL(英語)

  • http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?href=IAC_API_FormsIntro.107.46.html&accessible=true
  • http://partners.adobe.com/public/developer/en/acrobat/sdk/FormsAPIReference.pdf#nameddest=G14.1031366

戻る


管理者のメモ

これ以降は管理者のメモです。

見なくても結構です。

  1. Acrobat本体で作成するFDFファイルには元のPDFファイル(マスターPDF)が存在するフルパス情報が存在します。
    しかし、ここのメソッドで作成されるFDFファイルに関してはフルパスでは無く、ファイル名の情報しか保存されません。
  2. FDFファイル内に定義されたマスターPDFファイルとしかFDFファイルは結合できない。
    無理やり結合しようとしても「」エラーが表示される。 
  3. Acrobat JavaScript 「ExportAsFDF 」の実行も考えたが、セキュリティ上の問題でIACからは実行できない。
  4. Acrobat X(10)からFDFファイルの出力は
    Acrobat X 「フォームデータを指定形式で書き出し」

FDF とは

  • FDF (エフディーエフ:Form Data Formatの略称)。
  • PDF本体からフォームや注釈の内容をファイルとして書き出す時のファイル形式です。
  • 複数の注釈をひとつのPDFに取り込めることが出来る。
  • FDFファイルはテキスト情報だけなので非常にサイズが小さい。
  • FDFファイルには元のPDFファイル(マスターPDF)の存在情報も有るので、
    FDFを起動すると該当するPDFファイルが開き、
    FDFファイルの情報が反映されて表示される。
  • メール等でやりとりする時に軽量サイズなので便利です。
  • 拡張子は.fdf .FDF。
  • フォームデータ形式をFDFとも言う。
    ※XFDF ファイル(XML ベースの FDF ファイル)

戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


★ 文章での質問は難しいですよネ。でも、早く解決して、家に帰りたい。


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください