AFormAut : BorderWidth プロパティ

TOP > AFormAut > BorderWidth プロパティ


説明

四角形のフィールドの周囲を囲む境界線の太さを数値で示します。

設定、又は取得できる数値は以下のとおりです。

  • 0 : 境界線を表示しない ※設定出来ない場合が有る
  • 1 : 細い境界線  ※デフォルト
  • 2 : 標準の境界線
  • 3 : 太い境界線

 

以下のAcrobat アプリのプロパティ画面の幅に相当する設定と同じです。

AFormAut : BorderWidth プロパティ Acrobat テキストフィールドのプロパティ画面 幅の設定 

 

 

形式

[ 取得 / 設定 ] short

 

 

設定又は戻り値

設定、又は取得可能な文字列

  • 0 : 境界線を表示しない ※設定出来ない場合が有る
  • 1 : 細い境界線 ※デフォルト
  • 2 : 標準の境界線
  • 3 : 太い境界線

 

  1. 境界線の色(SetBorderColor)が透明である場合、このプロパティは境界線スタイル(BorderStyle)がベベル(beveled)の場合を除いては効果がありません。
    つまり、その時はどんなに値を1~3に設定しても、値0(境界線を表示しない)と同じ扱いになります。
     
  2. 境界線の色(SetBorderColor)が透明で無い場合は、値0(境界線を表示しない)を指定しても、 Acrobat のプロパティ画面上では「細」に変更されます。
      
  3. SDK の説明上は値3までです。
    しかし、値4以上を設定しても正常終了します。
    しかも、その値にそった境界線の太さを表示します。
    その値(BorderWidth プロパティ)もPDF内部に保存されます。
    AFormAut : BorderWidth プロパティ
  4. マイナス値はエラーにならず、値1として扱われます。

 

 

動作するバージョン

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上のテキストフィールドの境界線の太さを変更します。

AFormAut : BorderWidth プロパティ

 

Option Explicit

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

Sub AFormAut_BorderWidth_test()

    Const CON_PDF_FILE = "D:¥work¥ReleaseNotes.pdf"
    Const CON_PDF_FI_S = "D:¥work¥ReleaseNotes-S.pdf"
    
    Dim lRet            As Long
    
    'Acrobatオブジェクトの定義&作成
    Dim objAcroApp      As New Acrobat.AcroApp
    Dim objAcroAVDoc    As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc    As Acrobat.AcroPDDoc
     
    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_BorderWidth_test:
    End If
    
    '*―――――――――――――――――――--
    '* AFormオブジェクトの作成
    
    Set objAFormApp = CreateObject("AFormAut.App")
    Set objAFormFields = objAFormApp.Fields
    
    '*―――――――――――――――――――--
    '* テキストフィールドの揃えを変更する
    
    Set objAFormField = objAFormFields.Item("Text1.dt1")
    objAFormField.BorderWidth = 0
    
    Set objAFormField = objAFormFields.Item("Text1.dt2")
    objAFormField.BorderWidth = 1
    
    Set objAFormField = objAFormFields.Item("Text1.dt3")
    objAFormField.BorderWidth = 2
        
    Set objAFormField = objAFormFields.Item("Text1.dt4")
    objAFormField.BorderWidth = 3

Skip_AFormAut_BorderWidth_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 objAcroPDDoc = Nothing
    Set objAcroApp = Nothing
    
    MsgBox "End Sub"

End Sub

 

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

  

  


実行結果

 

1. Acrobat 7.1.4

AFormAut : BorderWidth プロパティ 

AFormAut : BorderWidth プロパティ 
     
   

2. Acrobat X (10.1.8)

Acrobat 7.1.4 と結果は同じ。

 

3. Acrobat XI (11.0.5)

Acrobat 7.1.4 と結果は同じ。

 

 

備考

  1. 上記サンプルでは、フィールド名を完全修飾(フル名称)で指定しています。
    フィールド名は、xxx.yyy の様にピリオドで区切ってあるフィールド名が複数ある時は、xxx だけを指定すれば頭に xxx. がつく全てのフイールド名を対象にする事が出来ます。
    しかし、このプロパティはそれが出来ません。
    以下を実行すると、実行エラーになります。
      
    例 : 頭に「Text1.」のテキストフィールド名を細に設定しようとすると 
        Set objAFormField = objAFormFields.Item("Text1"
        objAFormField.BorderWidth = 1 <ー★実行エラー
     
    Microsoft Visual Basic
    実行エラー '-2147220990 (80040202)':
    このプロパティまたはメソッドは、ターミナルフィールド又はその注釈には適用されません。
    終了 デバッグ ヘルプ
     
      
  2. Acrobat JavaScript ( Acrobat 8.0 ) に相当する命令が alignment です。

 

 

注意事項

  1. 当プロパティで使える値は基本的に0~3までです。
    それ以外の値も使用出来るように当サイトでは説明していますが、それはテスト結果です。
    将来的にも使える保証はありません。

 

 

Adobe Web 解説 URL(英語)

 

その他の参考URL

  1. JavaScript for Acrobat API Reference Adobe Acrobat SDK バージョン 8.0 のlineWidth を参照
    ※Acrobat JavaScript の詳細な解説書 / Acrobat v8.0 リファレンス(765頁) 
           

 

 

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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

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