TOP > AFormAut > ExportAsFDF メソッド
説明
PDFファイルからフォームフィールドのデータを抽出して、
FDF ファイル(FDF ファイル形式)としてファイル出力します。
※注釈データは抽出しない。
形式
void ExportAsFDF (
LPCTSTR bstrFullPath,
LPCTSTR bstrSubmitButton,
BOOL bEmptyFields,
const VARIANT& arrFields);
引数
- 第一引数 ( LPCTSTR bstrFullPath ) :
作成するFDF ファイルのフルパス名。
セーフパスにしたがって設定する必要は無い。 ★テスト済み
- 第二引数 ( LPCTSTR bstrSubmitButton ) :
Button型の既存のフォームフィールドの名前。
省略(空文字)も可。
- 第三引数 ( BOOL bEmptyFields ) :
True : 値の持たないフィールドもFDFファイルの作成時に含める
False : 含めない
- 第四引数 ( const VARIANT& arrFields ) :
FDFファイルに含めるフィールドの完全修飾名を表す文字列の配列。
この配列に、全ての子のフィールドがFDFファイルに含まれるようにするには、
非終端フィールド「. ピリオド」の名前が含まれている必要が有ります。
オプションなので省略可能。
例:サブツリー全体を簡単に書き出す方法が指定出来ます。 arrFields パラメータの一部として「name」を入れると、「name.title」、「name.first」、「name.middle」、「name.last」などのフィールドが書き出されます。
戻り値
- 無し。
※引数にエラーが有ると、どうなる?
動作するバージョン
Adobe Acrobat | 結果 | 備考 |
---|---|---|
4 | NO | Acrobat 4.0 ※Windows 98SE + Excel 2000 *1 ※古いPDFのバージョンはOK! |
5 | NO | Acrobat 5.0.5 + Excel 2003 *1 ※古いPDFのバージョンはOK |
6 | NO | Acrobat 6.0.6 Pro + Excel 2003 *1 ※古いPDFのバージョンはOK |
7 | X | Acrobat 7.1.4 Pro + Excel 2003 *2 ※レジストリ操作で全面的に可能になる |
8 | NO | Acrobat 8.3.1 Pro + Excel 2003 ※当Acrobatバージョンでは全面的に不可 |
9 | NO | Acrobat 9.5.5 Extended + Excel 2003 ※当Acrobatバージョンでは全面的に不可 |
10 | OK | Acrobat X (10.1.8) Extended + Excel 2003 |
11 | OK | Acrobat 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 ファイルとして出力する。
- F8 キーでステップ実行しながら動作確認します。
- 事前に 参照設定(AFormAutの追加版) が必要です。
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との結合に使える。
備考
- 注釈データは抽出されない。
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=truehttp://partners.adobe.com/public/developer/en/acrobat/sdk/FormsAPIReference.pdf#nameddest=G14.1031366
< 戻る >
管理者のメモ
これ以降は管理者のメモです。
見なくても結構です。
- Acrobat本体で作成するFDFファイルには元のPDFファイル(マスターPDF)が存在するフルパス情報が存在します。
しかし、ここのメソッドで作成されるFDFファイルに関してはフルパスでは無く、ファイル名の情報しか保存されません。 - FDFファイル内に定義されたマスターPDFファイルとしかFDFファイルは結合できない。
無理やり結合しようとしても「」エラーが表示される。
※ - Acrobat JavaScript 「ExportAsFDF 」の実行も考えたが、セキュリティ上の問題でIACからは実行できない。
- Acrobat X(10)からFDFファイルの出力は
FDF とは
- FDF (エフディーエフ:Form Data Formatの略称)。
- PDF本体からフォームや注釈の内容をファイルとして書き出す時のファイル形式です。
- 複数の注釈をひとつのPDFに取り込めることが出来る。
- FDFファイルはテキスト情報だけなので非常にサイズが小さい。
- FDFファイルには元のPDFファイル(マスターPDF)の存在情報も有るので、
FDFを起動すると該当するPDFファイルが開き、
FDFファイルの情報が反映されて表示される。 - メール等でやりとりする時に軽量サイズなので便利です。
- 拡張子は.fdf .FDF。
- フォームデータ形式をFDFとも言う。
※XFDF ファイル(XML ベースの FDF ファイル)
< 戻る >