TOP > AFormAut > BorderWidth プロパティ
説明
四角形のフィールドの周囲を囲む境界線の太さを数値で示します。
設定、又は取得できる数値は以下のとおりです。
- 0 : 境界線を表示しない ※設定出来ない場合が有る
- 1 : 細い境界線 ※デフォルト
- 2 : 標準の境界線
- 3 : 太い境界線
以下のAcrobat アプリのプロパティ画面の幅に相当する設定と同じです。
形式
[ 取得 / 設定 ] short
設定又は戻り値
設定、又は取得可能な文字列
- 0 : 境界線を表示しない ※設定出来ない場合が有る
- 1 : 細い境界線 ※デフォルト
- 2 : 標準の境界線
- 3 : 太い境界線
- 境界線の色(SetBorderColor)が透明である場合、このプロパティは境界線スタイル(BorderStyle)がベベル(beveled)の場合を除いては効果がありません。
つまり、その時はどんなに値を1~3に設定しても、値0(境界線を表示しない)と同じ扱いになります。
- 境界線の色(SetBorderColor)が透明で無い場合は、値0(境界線を表示しない)を指定しても、 Acrobat のプロパティ画面上では「細」に変更されます。
- SDK の説明上は値3までです。
しかし、値4以上を設定しても正常終了します。
しかも、その値にそった境界線の太さを表示します。
その値(BorderWidth プロパティ)もPDF内部に保存されます。 - マイナス値はエラーにならず、値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上のテキストフィールドの境界線の太さを変更します。
- F8 キーでステップ実行しながら動作確認します。
- 事前に 参照設定(AFormAutの追加版) が必要です。
001 Option Explicit
002
003 Public Const PDSaveFull = &H1
004 Public Const PDSaveLinearized = &H4
005 Public Const PDSaveCollectGarbage = &H20
006
007 Sub AFormAut_BorderWidth_test()
008
009 Const CON_PDF_FILE = "D:¥work¥ReleaseNotes.pdf"
010 Const CON_PDF_FI_S = "D:¥work¥ReleaseNotes-S.pdf"
011
012 Dim lRet As Long
013
014 'Acrobatオブジェクトの定義&作成
015 Dim objAcroApp As New Acrobat.AcroApp
016 Dim objAcroAVDoc As New Acrobat.AcroAVDoc
017 Dim objAcroPDDoc As Acrobat.AcroPDDoc
018
019 Dim objAFormApp As AFORMAUTLib.AFormApp
020 Dim objAFormFields As AFORMAUTLib.Fields
021 Dim objAFormField As AFORMAUTLib.Field
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_BorderWidth_test:
038 End If
039
040 '*―――――――――――――――――――--
041 '* AFormオブジェクトの作成
042
043 Set objAFormApp = CreateObject("AFormAut.App")
044 Set objAFormFields = objAFormApp.Fields
045
046 '*―――――――――――――――――――--
047 '* テキストフィールドの揃えを変更する
048
049 Set objAFormField = objAFormFields.Item("Text1.dt1")
050 objAFormField.BorderWidth = 0
051
052 Set objAFormField = objAFormFields.Item("Text1.dt2")
053 objAFormField.BorderWidth = 1
054
055 Set objAFormField = objAFormFields.Item("Text1.dt3")
056 objAFormField.BorderWidth = 2
057
058 Set objAFormField = objAFormFields.Item("Text1.dt4")
059 objAFormField.BorderWidth = 3
060
061 Skip_AFormAut_BorderWidth_test:
062
063 '*―――――――――――――――――――--
064 '* 終了処理
065
066 '変更したPDFファイルの保存はPDDoc.Saveで必ず行う
067 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
068 lRet = objAcroPDDoc.Save( _
069 PDSaveFull + PDSaveCollectGarbage + PDSaveLinearized, _
070 CON_PDF_FI_S)
071 If lRet = 0 Then
072 MsgBox "05: PDFファイルへ保存出来ませんでした" & vbCrLf & _
073 CON_PDF_FI_S, vbOKOnly & vbCritical, "エラー"
074 End If
075
076 'AVDocを閉じる
077 lRet = objAcroAVDoc.Close(1)
078
079 'Acrobatアプリケーションの終了
080 objAcroApp.Hide
081 objAcroApp.Exit
082
083 'オブジェクトの開放
084 Set objAFormFields = Nothing
085 Set objAFormApp = Nothing
086 Set objAcroAVDoc = Nothing
087 Set objAcroPDDoc = Nothing
088 Set objAcroApp = Nothing
089
090 MsgBox "End Sub"
091
092 End Sub
Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
実行結果
1. Acrobat 7.1.4
2. Acrobat X (10.1.8)
Acrobat 7.1.4 と結果は同じ。
3. Acrobat XI (11.0.5)
Acrobat 7.1.4 と結果は同じ。
備考
- 上記サンプルでは、フィールド名を完全修飾(フル名称)で指定しています。
フィールド名は、xxx.yyy の様にピリオドで区切ってあるフィールド名が複数ある時は、xxx だけを指定すれば頭に xxx. がつく全てのフイールド名を対象にする事が出来ます。
しかし、このプロパティはそれが出来ません。
以下を実行すると、実行エラーになります。
例 : 頭に「Text1.」のテキストフィールド名を細に設定しようとすると
Set objAFormField = objAFormFields.Item("Text1")
objAFormField.BorderWidth = 1 <ー★実行エラー
Microsoft Visual Basic
実行エラー '-2147220990 (80040202)':
このプロパティまたはメソッドは、ターミナルフィールド又はその注釈には適用されません。
終了 デバッグ ヘルプ
- Acrobat JavaScript ( Acrobat 8.0 ) に相当する命令が alignment です。
注意事項
- 当プロパティで使える値は基本的に0~3までです。
それ以外の値も使用出来るように当サイトでは説明していますが、それはテスト結果です。
将来的にも使える保証はありません。
Adobe Web 解説 URL(英語)
http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?href=IAC_API_FormsIntro.107.20.html&accessible=true
http://partners.adobe.com/public/developer/en/acrobat/sdk/FormsAPIReference.pdf#nameddest=G15.1030699
その他の参考URL
- JavaScript for Acrobat API Reference Adobe Acrobat SDK バージョン 8.0 のlineWidth を参照
※Acrobat JavaScript の詳細な解説書 / Acrobat v8.0 リファレンス(765頁)
< 戻る >