AFormAut : SetSubmitFormAction メソッド

TOP > AFormAut > SetSubmitFormAction メソッド


説明

 

指定した URL にフィールドの値を送信します。

 

AFormAut : SetSubmitFormAction メソッド

 

形式

 

void  SetSubmitFormAction  (
        LPCTSTR  bstrTrigger ,
        LPCTSTR  bstrTheURL ,
        long  theFlags ,
        const  VARIANT&  arrFields ) ;

 

引数

 

  1. 第一引数 ( LPCTSTR  bstrTrigger ) :
    リセット・アクションのトリガを以下の文字列で指定します。 
      
    • up : マウスボタンを放す
    • down : マウスボタンを押す
    • enter : マウス・ポインタを範囲内に入れる
    • exit : マウス・ポインタを範囲外に出す  
        
  2. 第二引数 ( LPCTSTR  bstrTheURL ) :
    送信先 URL の文字列。 
      
  3. 第三引数 ( long  theFlags ) :
    送信時の内容や形式等を数値で指示します。
    詳細はPDF リファレンスのセクション 8.6 を参照してください。
     
    ↑ とSDK に説明が有りますが、該当する説明は見つけられませんでした。 
    以下はテストでの結果です。
     
    • 0  : 書き出しはFDF,選択したフィールドのみ
    • 1  : 書き出しはFDF,全てのフィールド
    • 2  : 書き出しはFDF,選択したフィールドのみ,空白のフィールドを含める
    • 4  : 書き出しはHTML,選択したフィールドのみ
    • 5  : 書き出しはHTML,全てのフィールド
    • 6  : 書き出しはHTML,選択したフィールドのみ,空白のフィールドを含める
        
      AFormAut : SetSubmitFormAction メソッド ボタンのプロパティ画面
       
  4. 第四引数 ( const  VARIANT&  arrFields ) :
    フィールド名を文字列で配列に入れて指定します。
    配列なので複数のフィールド名が指定できます。
    存在しないフィールド名は無視され、エラーにはなりません。
    省略時は全てのフィールドが対象になります。
    フィールド名は完全修飾名の形「aaa.xxx」で指定します。
    複数の子を持つ表現 「aaa.xx」、「aaa.yy」を「aa」で一括指定できます。
       
    ↑ とSDK に書かれていますが、テスト結果ではフィールド名は完全修飾のフル名称で指定しないと対象になりません。  

 

戻り値

 

  • 無し。

 

動作するバージョン

 

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 : 全ての「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上の指定フィールドを指定URLへ送信するSubmit ボタンを作成します。

AFormAut : SetSubmitFormAction メソッド 実行後

 

Option Explicit

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

Sub AFormAut_SetSubmitFormAction_test()

    Const CON_PDF_FILE = "D:¥work¥ReleaseNotes.pdf"
    Const CON_PDF_FI_S = "D:¥work¥ReleaseNotes-S.pdf"
    
    Dim lRet            As Long
    Dim strField(1)     As String
    
    'Acrobatオブジェクトの定義&作成
    Dim objAcroApp      As New Acrobat.AcroApp
    Dim objAcroAVDoc    As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc    As Acrobat.AcroPDDoc
    Dim objAcroPDPage   As Acrobat.AcroPDPage
    Dim objAcroPoint    As Acrobat.AcroPoint
     
    Dim objAFormApp     As AFORMAUTLib.AFormApp
    Dim objAFormFields  As AFORMAUTLib.Fields
    Dim objAFormField   As AFORMAUTLib.Field
    
    '※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_SetSubmitFormAction_test:
    End If
    
    'PDFページサイズを取得
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
    Set objAcroPDPage = objAcroPDDoc.AcquirePage(0)
    Set objAcroPoint = objAcroPDPage.GetSize
   
    '*―――――――――――――――――――--
    '* AFormオブジェクトの作成
    
    Set objAFormApp = CreateObject("AFormAut.App")
    Set objAFormFields = objAFormApp.Fields
    
    '*―――――――――――――――――――--
    '* 印刷ボタンを追加 頁右上に配置

    Set objAFormField = objAFormFields.Add( _
        "Submit Button", "button", 0, _
        50, objAcroPoint.y - 20, 150, objAcroPoint.y - 60)
    
    'フィールド名はフル名称で指定
    strField(0) = "Text1.name"
    strField(1) = "Text2.sonota"    '無いので無視される
    
    With objAFormField
        'フォントサイズ
        .TextSize = 20
        'ボタンのスタイル
        .BorderStyle = "beveled"    '浮き出し
        'ボタンのキャプション
        .SetButtonCaption "N", "Submit"
        '背景色
        ' ※http://pdf-file.nnn2.com/?p=145
        .SetBackgroundColor "G", 0.85, 0.85, 0, 0
        .Highlight = "push"
        ' Submit ボタンの作成
        .SetSubmitFormAction _
            "up", "http://localhost:10410/test-html.php", 0, strField
    End With
    
    '設定後に開放
    Set objAFormField = Nothing
    
Skip_AFormAut_SetSubmitFormAction_test:

    '*―――――――――――――――――――--
    '* 終了処理
    
    '変更したPDFファイルの保存はPDDoc.Saveで必ず行う
    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 objAcroPDDoc = Nothing
    Set objAcroPDPage = Nothing
    Set objAcroPoint = Nothing
    Set objAcroApp = Nothing
    
    MsgBox "End Sub"

End Sub

※ソースコードHTML変換:SourceConverter

 

 


 

実行結果

 

1. Acrobat 7.1.4

 

  • 第三引数 ( long  theFlags ) の使える値は0,1,2,4,5,6 。
  • 第四引数 ( const  VARIANT&  arrFields ) 指定時はフル名称で記述しないと、フィールド名が対象にならない。
  • Submit ボタンの実行後  

 

AFormAut : SetSubmitFormAction メソッド 実行後

AFormAut : SetSubmitFormAction メソッド 実行後

AFormAut : SetSubmitFormAction メソッド 実行後

AFormAut : SetSubmitFormAction メソッド 実行後

 

2. Acrobat X (10.1.8)

 

Acrobat 7.1.4 と結果は同じ。

 

3. Acrobat XI (11.0.5)

 

Acrobat 7.1.4 と結果は同じ。

 

 

備考

 

  1. Acrobat JavaScript ( Acrobat 7.0 ) に似た命令が submitForm です。
  2. HTML の Submit ボタンと似たような働きと思ってますが。
    この後の作成ボタンの動作検証では、確認が出来ませんでした。

 

Adobe Web 解説 URL(英語)

 

 

その他の参考URL

 

  1. 簡単なサンプルが有る英語サイトは有りましたが、
    参考になるようなURLは存在しませんでした。  
      
     

戻る

 

 


 

サイト管理者のメモ

 

コレ以降はサイト管理者のメモです。

見なくても結構です。

 

AFormAut : SetSubmitFormAction メソッド ボタンのプロパティ画面

 

1. 第三引数 ( long  theFlags ) の値を変化させたボタン・プロパティのテスト結果

  • 0  :  0000 FDF,選択したフィールド
  • 1  :  0001 FDF,全てのフィールド
  • 2  :  0010 FDF,選択したフィールド,空白のフィールドを含める
  • 3  :  0011 *  FDF,全てのフィールド
  • 4  :  0100 HTML,選択したフィールド
  • 5  :  0101 HTML,全てのフィールド
  • 6  :  0110 HTML,選択したフィールド,空白のフィールドを含める
  • 7  :  0111 * HTML,全てのフィールド
  • 8  :  1000 * FDF,選択したフィールド
  • 9  :  1001 * FDF,全てのフィールド
  • 10 :  1010 * FDF,選択したフィールド,空白のフィールドを含める
  • 11 :  1011 * FDF,全てのフィールド
  • 12 :  1100 * HTML,選択したフィールド
  • 13 :  1101 * HTML,全てのフィールド
  • 14 :  1110 * HTML,選択したフィールド,空白のフィールドを含める
  • 15 :  1111 * HTML,全てのフィールド
  • 16 : 10000 * FDF,選択したフィールド
  • 17 : 10001 * FDF,全てのフィールド
  • 18 : 10010 * FDF,選択したフィールド,空白のフィールドを含める
  • 19 : 10011 * FDF,全てのフィールド
  • 20 : 10100 * HTML,選択したフィールド
  • 21 : 10101 * HTML,全てのフィールド
  • 22 : 10110 * HTML,選択したフィールド,空白のフィールドを含める
  • 23 : 10111 * HTML,全てのフィールド
  • 24 : 11000 * FDF,選択したフィールド
  • 25 : 11001 * FDF,全てのフィールド

* は既に登場している設定内容。

 

2. ボタンを作成したPDF を動作させて見ました。

動作テスト環境は

  • Windows 7 64bit Enterprise ※90日評価版
  • WebMatrix 3 <- これをWEBサーバーにしてURL先とする。
  • Acrobat 8 Pro

 

WebMatrix 3 環境でフィールド値を受け取るページを作成。

以下のローカル・WEBサーバーに対して、送信を行います。

AFormAut : SetSubmitFormAction メソッド WEB動作検証の結果

PDF上の送信・ボタンをクリックすると、

以下の画面が表示されます。

AFormAut : SetSubmitFormAction メソッド WEB動作検証の結果

「ダウンロード中・・・」   状態になりますが、しばらくすると

以下のAcrobatアプリが起動され、WEBの内容が表示されます。

AFormAut : SetSubmitFormAction メソッド WEB動作検証の結果

この様に予期しない状態になったのは、WebMarix 3 の環境が影響しているのかもしれません。

 

   

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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

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