AFormAut : Fields.Add メソッド

TOP > AFormAut > Fields.Add メソッド


説明

1つのフィールドを追加します。

追加できるフィールドは テキストボックス、ボタン、コンボボックス、リストボックス、チェックボックス、ラジオボタン、シグネチャ です。

形式

LPDISPATCH Add (LPCTSTR bstrFieldName , 
       LPCTSTR bstrFieldType , 
       short pageNum , 
       float left , 
       float top , 
       float right , 
       float bottom);

引数

  1. 第一引数 (LPCTSTR bstrFieldName) :
    フィールドの名称
    例 : “Text1“ "Name.First"
     
  2. 第二引数 (LPCTSTR bstrFieldType) :
    フィールドの以下のタイプ
    • "text” : テキストボックス
    • "button” : ボタン
    • "combobox” : コンボボックス
    • "listbox” : リストボックス
    • "checkbox” : チェックボックス
    • "radio button” : ラジオボタン
    • "signature" : 電子著名
  3. 第三引数 (short pageNum) :
    該当するPDF のページ番号
    1ページはゼロから
     
  4. 第四引数 (float left) :
    PDFページ上の座標:左
     
  5. 第五引数 (float top) :
    PDFページ上の座標:上
     
  6. 第六引数 (float right) :
    PDFページ上の座標:右
     
  7. 第七引数 (float bottom) :
    PDFページ上の座標:下

戻り値

  • 追加されたフィールドオブジェクト。
  • 指定したPDF には該当するフィールドが追加される。

動作するバージョン

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.2 Extended + Excel 2003
※当Acrobatバージョンでは全面的に不可
10OKAcrobat X (10.1.4) Extended + Excel 2003
11OKAcrobat XI (11.0) Extended + Excel 2003
  • OK : 正常処理する。
  • NO : 動作しない。 又は実行時にエラーになる。
  • *1 : 「PDF のバージョン」によっては正常処理出来ない場合がある。
    詳細は下の 注意 を参照ください。
  • *2 : 全ての「PDF のバージョン」での処理を可能にしたければ、
    処理前のレジストリに以下を追加する必要があります。
    [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

説明 : PDF の全ページにテキストボックスを追加します。

変数の宣言 Integer は Long でご使用ください。

001 Option Explicit 002 003 Sub AFormApp_Field_Add_01() 004 On Error GoTo Err_AFormApp_Field_Add_01: 005 006 Dim i As Integer 007 Dim iPageNum As Integer 008 Dim bRet As Boolean 009 Dim bEnd As Boolean 010 Dim sFilePath_new As String 011 012 Dim objAFormApp As AFORMAUTLib.AFormApp 013 Dim objAFormFields As AFORMAUTLib.Fields 014 Dim objAFormField As AFORMAUTLib.Field 015 016 '初期値 017 Const sFilePath = "C:\work\sample.pdf" 018 bEnd = True 019 020 If Dir$(sFilePath, vbNormal) = "" Then 021 MsgBox sFilePath & vbCrLf & _ 022 "ファイルが存在しない。", _ 023 vbOKOnly + vbCritical, "実行時のエラー" 024 Exit Sub 025 End If 026 027 'Acrobatオブジェクトの定義&作成 028 029 'Acrobat 4,5,6 の時 030 ' Dim objAcroApp As Acrobat.CAcroApp 031 ' Dim objAcroAVDoc As Acrobat.CAcroAVDoc 032 ' Dim objAcroPDDoc As Acrobat.CAcroPDDoc 033 ' Dim objAcroPDPage As Acrobat.CAcroPDPage 034 ' Dim objAcroPoint As Acrobat.CAcroPoint 035 ' Set objAcroApp = CreateObject("AcroExch.App") 036 ' Set objAcroAVDoc = CreateObject("AcroExch.AVDoc") 037 ' Set objAcroPDDoc = CreateObject("AcroExch.PDDoc") 038 039 'Acrobat 7,8,9,10,11 の時 040 Dim objAcroApp As New Acrobat.AcroApp 041 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 042 Dim objAcroPDDoc As New Acrobat.AcroPDDoc 043 Dim objAcroPDPage As Acrobat.AcroPDPage 044 Dim objAcroPoint As Acrobat.AcroPoint 045 046 '※CreateObject("AFormAut.App")のエラー 047 '※[429 ActiveXコンポーネントはオブジェクトを作成できません。] 048 '※回避用 / メモリにAcrobatを強制ロードさせる 049 objAcroApp.CloseAllDocs 050 051 '処理対象のPDFファイルを開く 052 bRet = objAcroAVDoc.Open(sFilePath, "") 053 054 If bRet = False Then 055 MsgBox "AVDocオブジェクトはOpen出来ません", _ 056 vbOKOnly + vbCritical, "処理エラー" 057 bEnd = False 058 GoTo Skip_AFormApp_Field_Add_01: 059 End If 060 061 Set objAFormApp = CreateObject("AFormAut.App") 062 Set objAFormFields = objAFormApp.Fields 063 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc 064 iPageNum = objAcroPDDoc.GetNumPages 065 066 For i = 0 To iPageNum - 1 067 068 'PDFページサイズを取得 069 Set objAcroPDPage = objAcroPDDoc.AcquirePage(i) 070 Set objAcroPoint = objAcroPDPage.GetSize 071 072 'PDFの指定ページにテキストフィールドを追加 073 '※ページ全体を覆うテキストボックス 074 Set objAFormField = _ 075 objAFormFields.Add("Text" & (i + 1), "text", _ 076 i, 0, objAcroPoint.y, objAcroPoint.x, 0) 077 078 'テキストフィールドの設定 079 With objAFormField 080 .SetBackgroundColor "RGB", 1, 1, 1, 0 081 .Alignment = "center" 082 .TextFont = "HeiseiMin-W3-UniJIS-UCS2-H" 083 .Value = "閲覧不可" '表示する文字 084 .IsReadOnly = True '読み込み専用 085 .IsHidden = False '表示 086 End With 087 088 '設定後に開放 089 Set objAFormField = Nothing 090 091 Next 092 093 'PDFファイルを別名で保存 094 sFilePath_new = Replace(sFilePath, ".pdf", "_new.pdf") 095 bRet = objAcroPDDoc.Save(1, sFilePath_new) 096 If bRet = False Then 097 MsgBox "PDFファイルへ保存出来ませんでした", _ 098 vbOKOnly + vbCritical, "エラー" 099 bEnd = False 100 End If 101 102 'PDFファイルを閉じる 103 bRet = objAcroAVDoc.Close(False) 104 If bRet = False Then 105 MsgBox "AVDocオブジェクトはClose出来ませんでした", _ 106 vbOKOnly + vbCritical, "処理エラー" 107 bEnd = False 108 End If 109 110 Skip_AFormApp_Field_Add_01: 111 On Error Resume Next 112 '変更しないで閉じます。 113 bRet = objAcroAVDoc.Close(False) 114 115 'Acrobatアプリケーションの終了 116 objAcroApp.Hide 117 objAcroApp.Exit 118 119 'オブジェクトの開放 120 Set objAFormFields = Nothing 121 Set objAFormApp = Nothing 122 Set objAcroPDPage = Nothing 123 Set objAcroPoint = Nothing 124 Set objAcroPDDoc = Nothing 125 Set objAcroAVDoc = Nothing 126 Set objAcroApp = Nothing 127 128 If bEnd = True Then 129 MsgBox "処理は正常に終了しました。", _ 130 vbOKOnly + vbInformation, "正常終了" 131 End If 132 Exit Sub 133 134 Err_AFormApp_Field_Add_01: 135 136 MsgBox Err.Number & vbCrLf & Err.Description, _ 137 vbOKOnly + vbCritical, "実行時のエラー" 138 bEnd = False 139 GoTo Skip_AFormApp_Field_Add_01: 140 141 End Sub 142


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


実行結果

テキストボックス(フィールド)をページ全体を隠す様に貼り付けました。

AFormAut.Fields.Add 実行結果

備考

  1. このAdd メソッドの後でフィールドオブジェクトの詳細なプロパティを設定する必要があります。

注意

  1. 全OLEを実行する前に
    objAcroApp.CloseAllDocs
    で強制的にAcrobat アプリケーションをメモリ上にロードしないと
    Set objAFormApp = CreateObject("AFormAut.App")
    で実行エラー(ランタイムエラー)が発生する場合があります。
    429 ActiveXコンポーネントはオブジェクトを作成できません。
    429 ActiveXコンポーネントはオブジェクトを作成できません。

動作確認の環境

  • Acrobat 4.0 + Office 2000
    +  Windows98SE( + WindowsUpdate)
  • Acrobat 5.0.5 + Office 2003( + SP3)
    +  WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat 6.0.6 Pro + Office 2003( + SP3)
    +  WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat 7.1.4 Pro + Office 2003( + SP3)
    +  WindowsXP Pro( + SP2 + WindowsUpdate)
  • Acrobat 8.3.1 Pro + Office 2003( + SP3)
    +  WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat 9.5.2 Extended + Office 2003( + SP3)
    +  WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat X (10.1.4) Extended + Office 2003( + SP3) 
    + WindowsXP Pro( + SP3 + WindowsUpdate)
  • Acrobat XI (11.0) Extended + Office 2003( + SP3)
    + WindowsXP Pro( + SP3 + WindowsUpdate)

Adobe Web 解説 URL(英語)

  • http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/IAC_API_FormsIntro.107.43.html
     
  • Acrobat Forms APIReference
    Technical Note #5181 Version : Acrobat 6.0 (英語版)
    http://partners.adobe.com/public/developer/en/acrobat/sdk/FormsAPIReference.pdf#nameddest=G14.1031234

戻る


管理人のメモ : テストの詳細なデータ

サイト管理人の記録&メモなので、見なくても結構です。

  1. E1:AVDoc.OpenはOK,
       CreateObject("AFormAut.App")
    で実行エラー:Runtime rror
       (429 ActiveXコンポーネントはオブジェクトを作成できません。)
  2. E2:AVDoc.OpenはOK,
       Set objAFormFields = objAFormApp.Fields
       で実行エラー(-2147220991 Runtime rror)
  3. E3:AVDoc.OpenはOKだが、Acrobat本体が起動され
       「このファイルは、このバージョンのAcrobatではサポートされてない・・・」
       ダイアログボックスが表示される。
       OKボタンをクリックした後のAcrobat本体をすぐに終了すれば、正常終了。
       Acrobat本体をしばらくそのままにしておくと、OLEエラーになり、
       次に実行エラー(-2147220991 Runtime rror)となる。
  4. E4:OLE待機になる。
  5. E5:AVDoc.OpenはOKだが、Acrobat本体が起動され無いで
       「このファイルは、このバージョンのAcrobatではサポートされてない・・・」
       ダイアログボックスが表示される。
       OKをクリックすると正常処理される。
  6. E6:objAcroAVDoc.Open(sFilePath, "")で
      「この文書を開くときにエラーが発生しました。ファイルが壊れています。修復できませんでした。」
      で処理続行不可。
  • ▼Acrobat 4 + Excel 2000 + Win98SE 環境 ★環境不可★
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK
    sample-1.7.pdf (8) : E6
    sample-1.7L3.pdf (9) : E6
    sample-1.7L8.pdf (10) : E6
  • ▼Acrobat 5 + Excel 2003 + WinXP 環境 ★環境不可★
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK,
    sample-1.6.pdf (7) : OK,E5
    sample-1.7.pdf (8) : E6
    sample-1.7L3.pdf (9) : E6
    sample-1.7L8.pdf (10) : E6
  • ▼Acrobat 6 + Excel 2003 + WinXP 環境 ★環境不可★
    ※レジストリ操作不可・不良
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK,E5
    sample-1.7.pdf (8) : OK,E5
    sample-1.7L3.pdf (9) : OK,E5
    sample-1.7L8.pdf (10) : OK,E5
  • ▼Acrobat 7 + Excel 2003 + WinXP 環境
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK
    sample-1.7.pdf (8) : E4,E5        ※idocNewerVersionWarning レジストリを1でOK
    sample-1.7L3.pdf (9) : OK,E5    ※idocNewerVersionWarning レジストリを1でOK
    sample-1.7L8.pdf (10) : OK,E5    ※idocNewerVersionWarning レジストリを1でOK
  • ▼Acrobat 8 + Excel 2003 + WinXP 環境 ★環境不可★
    sample-1.2.pdf (3) : E2
    sample-1.3.pdf (4) : E2            ※idocNewerVersionWarning レジストリを1もNG
    sample-1.4.pdf (5) : E2
    sample-1.5.pdf (6) : E2
    sample-1.6.pdf (7) : E2
    sample-1.7.pdf (8) : E2
    sample-1.7L3.pdf (9) : E3        ※idocNewerVersionWarning レジストリを1もNG
    sample-1.7L8.pdf (10) : E3
  • ▼Acrobat 8 + Excel 2007 + Win7 64bit 環境 ★環境不可★
    sample-1.2.pdf (3) : E2
    sample-1.3.pdf (4) : E2
    sample-1.4.pdf (5) : E2
    sample-1.5.pdf (6) : E2
    sample-1.6.pdf (7) : E2
    sample-1.7.pdf (8) : E2
    sample-1.7L3.pdf (9) : E3
    sample-1.7L8.pdf (10) : E3
  • ▼Acrobat 9 + Excel 2003 + WinXP 環境 ★環境不可★
    sample-1.2.pdf (3) : E1
    sample-1.3.pdf (4) : E1
    sample-1.4.pdf (5) : E2
    sample-1.5.pdf (6) : E1
    sample-1.6.pdf (7) : E2
    sample-1.7.pdf (8) : E2
    sample-1.7L3.pdf (9) : E2
    sample-1.7L8.pdf (10) : E3
  • ▼Acrobat X (10) + Excel 2003 + WinXP 環境
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK
    sample-1.7.pdf (8) : OK
    sample-1.7L3.pdf (9) : OK
    sample-1.7L8.pdf (10) : OK
  • ▼Acrobat XI (11) + Excel 2003 + WinXP 環境
    sample-1.2.pdf (3) : OK
    sample-1.3.pdf (4) : OK
    sample-1.4.pdf (5) : OK
    sample-1.5.pdf (6) : OK
    sample-1.6.pdf (7) : OK
    sample-1.7.pdf (8) : OK
    sample-1.7L3.pdf (9) : OK
    sample-1.7L8.pdf (10) : OK

戻る

コメントを残す

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

CAPTCHA



SAMURAI Plugin

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

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



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

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