AFormAut : ImportAnFDF メソッド

TOP > AFormAut > ImportAnFDF メソッド


説明

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

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

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

AFormAut : ImportAnFDF メソッド

 

形式

void ImportAnFDF  ( LPCTSTR  bstrFullPath ) ;

 

引数

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

 

戻り値

  • 無し。

 

動作するバージョン

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

 






サンプル:Excel のVBA

 

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

   

Option Explicit

Public Const PDSaveFull = &H1
Public Const PDSaveLinearized = &H4
Public Const PDSaveCollectGarbage = &H20

Sub AFormAut_ImportAnFDF_test()

    Dim lRet            As Long
    
    Const CON_PDF_FILE = "D:¥work¥VBJavaScript.pdf"
    Const CON_PDF_FI_S = "D:¥work¥VBJavaScript-S.pdf"
    Const CON_FDF_FILE = "D:¥work¥VBJavaScript.fdf"
    
    'Acrobatオブジェクトの定義&作成
    Dim objAcroApp      As New Acrobat.AcroApp
    Dim objAcroAVDoc    As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc    As New Acrobat.AcroPDDoc
     
    Dim objAFormApp     As AFORMAUTLib.AFormApp
    Dim objAFormFields  As AFORMAUTLib.Fields
    
    '※CreateObject("AFormAut.App")のエラー
    '※[429 ActiveXコンポーネントはオブジェクトを作成できません。]
    '※回避用 / メモリにAcrobatを強制ロードさせる
    objAcroApp.CloseAllDocs
    
    '*―――――――――――――――――――--
    '* PDFファイルを開く
    
    '処理対象のPDFファイルを開く
    '※AVDocでOpenしないと"AFormAut.App"で実行エラー
    lRet = objAcroAVDoc.Open(CON_PDF_FILE, "")
    If lRet = 0 Then
        MsgBox "AVDocオブジェクトはOpen出来ません" & vbCrLf & _
            CON_PDF_FILE, vbOKOnly + vbCritical, "処理エラー"
        GoTo Skip_AFormAut_ImportAnFDF_test:
    End If
    
    '*―――――――――――――――――――--
    '* AFormオブジェクトの作成
    
    Set objAFormApp = CreateObject("AFormAut.App")
    Set objAFormFields = objAFormApp.Fields
    
    '*―――――――――――――――――――--
    '* FDFをインポート
    
    objAFormFields.ImportAnFDF CON_FDF_FILE
    
    '別のFDFを連続でインポートする場合は
    'objAFormFields.ImportAnFDF CON_FDF_FILE2
    
Skip_AFormAut_ImportAnFDF_test:

    '*―――――――――――――――――――--
    '* 終了処理
    
    '結合したPDFファイルの保存はPDDoc.Saveで必ず行う
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
    lRet = objAcroPDDoc.Save( _
        PDSaveFull + PDSaveCollectGarbage + PDSaveLinearized, _
        CON_PDF_FI_S)
    If lRet = 0 Then
        MsgBox "05: PDFファイルへ保存出来ませんでした" & vbCrLf & _
            CON_PDF_FI_S, vbOKOnly & vbCritical, "エラー"
    End If
    
    'AVDocを閉じる
    lRet = objAcroAVDoc.Close(1)
    
    'Acrobatアプリケーションの終了
    objAcroApp.Hide
    objAcroApp.Exit
    
    'オブジェクトの開放
    Set objAFormFields = Nothing
    Set objAFormApp = Nothing
    Set objAcroAVDoc = Nothing
    Set objAcroApp = Nothing
    
    MsgBox "End Sub"

End Sub

 

 

 


実行結果

 

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(英語)

 

戻る

コメントを残す

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

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

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

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れるとエラーになる場合が有ります。その時はコードの前後に <code> ・・・</code> タグを入れてください。

This site uses Akismet to reduce spam. Learn how your comment data is processed.