AFormAut : ImportAnFDF メソッド

TOP > AFormAut > ImportAnFDF メソッド


説明

FDFファイルを AFormAut オブジェクトにインポートする。

同時にAVDocでオープンしたPDFに結合されます。

但し、保存はPDDocオブジェクトで行います。

AFormAut : ImportAnFDF メソッド

形式

void ImportAnFDF  ( LPCTSTR  bstrFullPath ) ;

引数

  1. 第一引数 ( LPCTSTR  bstrFullPath ) :
    入力するFDF ファイルのフルパス名。 

戻り値

  • 無し。

動作するバージョン

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
7OKAcrobat 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
     

サンプル:Excel のVBA

説明 : FDFファイルからフォームフィールドのデータを入力して、PDF ファイルと結合出力する。

001 Option Explicit 002 003 Public Const PDSaveFull = &H1 004 Public Const PDSaveLinearized = &H4 005 Public Const PDSaveCollectGarbage = &H20 006 007 Sub AFormAut_ImportAnFDF_test() 008 009 Dim lRet As Long 010 011 Const CON_PDF_FILE = "D:\work\VBJavaScript.pdf" 012 Const CON_PDF_FI_S = "D:\work\VBJavaScript-S.pdf" 013 Const CON_FDF_FILE = "D:\work\VBJavaScript.fdf" 014 015 'Acrobatオブジェクトの定義&作成 016 Dim objAcroApp As New Acrobat.AcroApp 017 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 018 Dim objAcroPDDoc As New Acrobat.AcroPDDoc 019 020 Dim objAFormApp As AFORMAUTLib.AFormApp 021 Dim objAFormFields As AFORMAUTLib.Fields 022 023 '※CreateObject("AFormAut.App")のエラー 024 '※[429 ActiveXコンポーネントはオブジェクトを作成できません。] 025 '※回避用 / メモリにAcrobatを強制ロードさせる 026 objAcroApp.CloseAllDocs 027 028 '*―――――――――――――――――――-- 029 '* PDFファイルを開く 030 031 '処理対象のPDFファイルを開く 032 '※AVDocでOpenしないと"AFormAut.App"で実行エラー 033 lRet = objAcroAVDoc.Open(CON_PDF_FILE, "") 034 If lRet = 0 Then 035 MsgBox "AVDocオブジェクトはOpen出来ません" & vbCrLf & _ 036 CON_PDF_FILE, vbOKOnly + vbCritical, "処理エラー" 037 GoTo Skip_AFormAut_ImportAnFDF_test: 038 End If 039 040 '*―――――――――――――――――――-- 041 '* AFormオブジェクトの作成 042 043 Set objAFormApp = CreateObject("AFormAut.App") 044 Set objAFormFields = objAFormApp.Fields 045 046 '*―――――――――――――――――――-- 047 '* FDFをインポート 048 049 objAFormFields.ImportAnFDF CON_FDF_FILE 050 051 '別のFDFを連続でインポートする場合は 052 'objAFormFields.ImportAnFDF CON_FDF_FILE2 053 054 Skip_AFormAut_ImportAnFDF_test: 055 056 '*―――――――――――――――――――-- 057 '* 終了処理 058 059 '結合したPDFファイルの保存はPDDoc.Saveで必ず行う 060 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc 061 lRet = objAcroPDDoc.Save( _ 062 PDSaveFull + PDSaveCollectGarbage + PDSaveLinearized, _ 063 CON_PDF_FI_S) 064 If lRet = 0 Then 065 MsgBox "05: PDFファイルへ保存出来ませんでした" & vbCrLf & _ 066 CON_PDF_FI_S, vbOKOnly & vbCritical, "エラー" 067 End If 068 069 'AVDocを閉じる 070 lRet = objAcroAVDoc.Close(1) 071 072 'Acrobatアプリケーションの終了 073 objAcroApp.Hide 074 objAcroApp.Exit 075 076 'オブジェクトの開放 077 Set objAFormFields = Nothing 078 Set objAFormApp = Nothing 079 Set objAcroAVDoc = Nothing 080 Set objAcroApp = Nothing 081 082 MsgBox "End Sub" 083 084 End Sub 085


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


実行結果

1. Acrobat 7.1.4

  1. Acrobat 7 で作成したフォームデータのFDFファイルをインポート時 :
    全てのフィールドが正常にインポートされた。 
    AFormAut : ImportAnFDF メソッド 実行前
     
    AFormAut : ImportAnFDF メソッド 実行後

      
  2. Acrobat 7 で作成した注釈データのFDFファイルをインポート時 :
    全ての注釈が正常にインポートされた。  
    AFormAut : ImportAnFDF メソッド 実行前
     
    AFormAut : ImportAnFDF メソッド 実行後

     
  3. Acrobat 7 で作成したフォームデータのFDFファイルと
    Acrobat 7 で作成した注釈データのFDFファイルを同時にインポート時 : 
    全てのフィールドと注釈が正常にインポートされた。 
    AFormAut : ImportAnFDF メソッド 実行前
     
    AFormAut : ImportAnFDF メソッド 実行後

      

2. Acrobat X (10.1.8)

Acrobat 7.1.4 と結果は同じ。

3. Acrobat XI (11.0.5)

Acrobat 7.1.4 と結果は同じ。

備考

  1. 複数のFDFを結合する場合は、連続でImportAnFDF メソッドを実行する。
  2. 結合したPDFはPDoc.Save メソッドで保存する。
    AVDoc.Close メソッドで保存しようとすると、ダイアログ画面が表示されてしまうから。

注意事項

  1. Acrobat 7 環境下でAVDoc.Close でPDFファイルの保存をしてはダメです。
    lRet = objAcroAVDoc.Close(0)
    OLE(IAC)が処理出来なくなり、以下のメッセージを出して終了出来なくなります。

    Microsoft Excel 別のプログラムでOLEの操作が完了するまで待機を続けます。

Adobe Web 解説 URL(英語)

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

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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



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

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