透かしを追加する (addWatermarkFromText)

TOP > サンプル / 関数 > addWatermarkFromText      [...]


 

説明

 

PDF に透かしを追加します。

透かしを追加する (addWatermarkFromText)

透かしの追加はAcrobat OLE の JSObject 経由で addWatermarkFromText メソッドを使います。

 


 

メソッド

Doc オブジェクト / addWatermarkFromText メソッド

 

説明

PDFファイルの指定ページに透かしを追加します。

 

形式

JSObject.addWatermarkFromText  cText , [nTextAlign] , [cFont] , [nFontSize] , [aColor] , [nStart] , [nEnd] , [bOnTop] , [bOnScreen] , [bOnPrint] , [nHorizAlign] , [nVertAlign] , [nHorizValue] , [nVertValue] , [bPercentage] , [nScale] , [bFixedPrint] , [nRotation]

 

引数

  1. 第1引数 (cText) :
    透かしとして表示するテキスト。
    複数行のテキストを使用する場合はvbCrLfコードで改行を指定します。
    ※SDKには改行文字に \r 又は ¥r と明記されてますが、出来ません。
     
  2. 第2引数 (nTextAlign) : (オプション)
    透かしとして表示するテキスト(cText)の整列。
    cText が 1 行の場合はこのパラメータを指定しても影響はない。
    有効な値は以下のとおり。
    • jso.app.constants.align.left  :  左
    • jso.app.constants.align.center  :  中央
    • jso.app.constants.align.right  :  右
        
  3. 第3引数 (cFont) : (オプション)
    透かしに使用するテキストのフォント。
    有効なフォントは、font オブジェクトのプロパティとして定義されています(その一覧については、Field オブジェクトのtextFont プロパティを参照)。
    任意のフォントを使用するには、フォントのPostScript 名を表す文字列を渡します。
    デフォルトは font.Helv。
    ※font オブジェクト又はPostScript名  :  テキストフォント
    • jso.font.Times  :  Times-Roman
    • jso.font.TimesB  :  Times-Bold
    • jso.font.TimesI  :  Times-Italic
    • jso.font.TimesBI  :  Times-BoldItalic
    • jso.font.Helv  :  Helvetica
    • jso.font.HelvB  :  Helvetica-Bold
    • jso.font.HelvI  :  Helvetica-Oblique
    • jso.font.HelvBI  :  Helvetica-BoldOblique
    • jso.font.Cour  :  Courier
    • jso.font.CourB  :  Courier-Bold
    • jso.font.CourI  :  Courier-Oblique
    • jso.font.CourBI  :  Courier-BoldOblique
    • jso.font.Symbol  :  Symbol
    • jso.font.ZapfD  :  ZapfDingbats
    • "MS Gothic"  :  MS ゴシック 注意 *1
    • "MS PGothic"  :  MS Pゴシック 注意 *1
    • "MS Mincho"  :  MS 明朝 注意 *1
    • "MS PMincho"  :  MS P明朝 注意 *1
    • "SimSun"  :  中国語フォント 注意 *1
    • "Meiryo"  :  メイリオ 注意 *1
    • "Meiryo-Italic"  :  メイリオ・イタリック 注意 *1
    • "Meiryo-Bold"  :  メイリオ・太字 注意 *1
       
  4. 第4引数 (nFontSize) : (オプション)
    透かしに使用するテキストのフォントのポイントサイズ。
    デフォルトは 24。
     
  5. 第5引数 (aColor) : (オプション)
    透かしに使用するテキストの文字色。
    デフォルトは 黒のcolor.black。
    ※Colorオブジェクト : 色
    • jso.color.transparent  :  透明
    • jso.color.black  :  黒
    • jso.color.white  :  白
    • jso.color.red  :  赤
    • jso.color.green  :  緑
    • jso.color.blue  :  青
    • jso.color.cyan  :  シアン
    • jso.color.magenta  :  マゼンタ
    • jso.color.yellow  :  イエロー
    • jso.color.dkGray  :  ダークグレー
    • jso.color.gray  :  グレー
    • jso.color.ltGray  :  ライトグレー
        
  6. 第6引数 (nStart) : (オプション)
    透かしを追加するPDFのページ範囲で最初のページの番号を指定。
    0から数える。つまり1頁目は0。
    nStart と nEnd を指定しない時は、文書の全てのページが対象になります。
    nStart のみを指定した場合は、nStart で指定した単一のページが対象になります。
    nEnd のみを指定した場合は、0 から nEnd までが対象範囲になります。
      
  7. 第7引数 (nEnd) : (オプション)
    透かしを追加するPDFのページ範囲で最後のページの番号を指定。
    指定方法はnStartを参照。
     
  8. 第8引数 (bOnTop) : (オプション)
    PDFページ上のコンテンツ(文字、画像等)の上下を指定。
    デフォルトはTrue。
    bFixedPrint が true の場合には無視される。
    • True : コンテンツの上に透かしが表示される。
    • False : コンテンツの下に透かしが表示される。
         
  9. 第9引数 (bOnScreen) : (オプション)
    PDFを画面表示する際に、透かしを表示するかどうかを示すブーリアン値。
    デフォルトは True。
    • True : 表示する
    • False : 表示しない
       
  10. 第10引数 (bOnPrint) : (オプション)
    PDFを印刷する際に、透かしを表示するかどうかを示すブーリアン値。
    デフォルトは True。
    • True : 表示する
    • False : 表示しない
        
  11. 第11引数 (nHorizAlign) : (オプション)
    透かしの水平方向の整列方法を表す数値。
    有効な値については、app.constants.align を参照。
    デフォルトはapp.constants.align.center (中央)。
    ※値とフローティングウィンドウ位置
    • jso.app.constants.align.left  : 左
    • jso.app.constants.align.center  : 中央
    • jso.app.constants.align.right  : 右
       
  12. 第12引数 (nVertAlign) : (オプション)
    透かしの垂直方向の整列方法を表す数値。
    有効な値については、app.constants.align を参照。
    デフォルトはapp.constants.align.center  (中央)。
    ※値とフローティングウィンドウ位置
    • jso.app.constants.align.center  : 中央
    • jso.app.constants.align.top  : 上
    • jso.app.constants.align.bottom  : 下
       
  13. 第13引数 (nHorizValue) : (オプション)
    ページ上で透かしの水平位置をシフトさせるために使用する数値。
    bPercentage が True の場合、この数値はページの幅のパーセンテージを示す。
    bPercentage が False の場合、この数値はオフセットするポイント数を示す。
    デフォルトは 0。
    「配置」-「左右からの距離」-「基点」項目と同様。
      
  14. 第14引数 (nVertValue) : (オプション)
    ページ上で透かしの垂直位置をシフトさせるために使用する数値。
    bPercentage が true の場合、この数値はページの高さのパーセンテージを示す。
    bPercentage が false の場合、この数値はオフセットするポイント数を示す。
    デフォルトは 0 です。
    「配置」-「上下からの距離」-「基点」項目と同様。
      
  15. 第15引数 (bPercentage) : (オプション)
    nHorizValue や nVertValue がページサイズのパーセンテージを示すのか、ポイント数を示すのかを表すブーリアン値。
    デフォルトは falseでポイント数を示す。
    • True : パーセンテージを示す
    • False : ポイント数を示す
       
  16. 第16引数 (nScale) : (オプション)
    透かしに使用するスケール。
    1.0 が 100 %を意味する。
    値が -1 の場合は、透かし形状を維持したまま、大きさをページにフィットさせます。
    デフォルトは 1.0 です。
    「ページに合わせた相対倍率」項目と同様。
      
  17. 第17引数 (bFixedPrint) : (オプション)
    「異なるページサイズで印刷する場合、透かし位置とサイズを一定にする」ことを示すブーリアン値。
    印刷するページのサイズに関係なく、透かしが固定のサイズおよび位置に印刷される。
    True の場合は、bOnTop は無視される。
    デフォルトはFalse です。
    • True : 透かしが固定のサイズおよび位置に印刷する
    • False : 透かしが固定のサイズおよび位置に印刷しない
       
  18. 第18引数 (nRotation) : (オプション)
    透かしを反時計回りに回転させる角度。0~360の値を指定。
    デフォルトは 0。
    「回転」項目と同様。
      
  19. 第19引数 (nOpacity): (オプション)
    透かしの不透明度を示す。
    0 が透明で、1.0 が不透明。 デフォルトは 1.0。
    「不透明度」項目と同様。

 





 


サンプル:Excel のVBA

 

透かしを追加します。

 

  1. 透かしは1ページ目のみ
  2. 透かし文字列は「追加した/透かし文字/印刷時は非表示」の3行
  3. 透かし文字のフォント(MS明朝)サイズは80ポイント
  4. 透かし文字の色は青
  5. 透かし文字は時計反対に30度傾ける
  6. 透かし文字は水平中央寄りに配置
  7. 透かし文字は垂直中央から、200ポイント上に配置
  8. 透かし文字は印刷時に非表示
  9. test-out.pdf として別名で最適化して保存
      
  • F8キーでステップ実行しながら動作確認出来ます。
  • 参照設定を事前にする。

 

Option Explicit

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

Sub test_JSO_addWatermarkFromText()
    
    Dim objAcroApp      As New Acrobat.AcroApp
    Dim objAcroPDDoc    As New Acrobat.AcroPDDoc
    Dim jso             As Object
    Dim lRet            As Long
    
    '透かしが追加されるPDFファイル
    Const CON_PDF_IN = "D:¥work¥Test-in.pdf"
    '透かしが追加されたPDFファイル
    Const CON_PDF_OUT = "D:¥work¥Test-out.pdf"
    
    'JSObjectオブジェクト作成時のNothingの回避策
    'Acrobatアプリを強制的にメモリにロードする
    lRet = objAcroApp.CloseAllDocs
    
    'PDFファイルを開く
    lRet = objAcroPDDoc.Open(CON_PDF_IN)
    If lRet = False Then
        MsgBox "AcroExch PDDoc Open エラー"
        GoTo test_JSO_addWatermarkFromText_Skip:
    End If
    
    Set jso = objAcroPDDoc.GetJSObject
    
    'PDF文書の指定のページに透かしを追加する
    jso.addWatermarkFromText _
        "追加した" & vbCrLf & "透かし文字" & vbCrLf & "印刷時は非表示", _
        jso.app.Constants.Align.center, _
        "MS Mincho", _
        80, _
        jso.Color.blue, _
        0, _
        0, _
        True, _
        True, _
        False, _
        jso.app.Constants.Align.center, _
        jso.app.Constants.Align.center, _
        0, _
        200, _
        False, _
        1, _
        False, _
        30, _
        0.5
    
test_JSO_addWatermarkFromText_Skip:
    
    'PDFを最適化して別名で保存する。
    lRet = objAcroPDDoc.Save( _
        PDSaveFull + PDSaveLinearized + _
        PDSaveCollectGarbage, CON_PDF_OUT)
    
    'アプリケーションの終了
    'オブジェクトの強制開放
    Set jso = Nothing
    Set objAcroPDDoc = Nothing
    Set objAcroApp = Nothing
    
    Debug.Print "End: " & Date & " " & Time
End Sub

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

 

 


 

実行結果

 

透かしを追加した (addWatermarkFromText)透かしを追加した (addWatermarkFromText)

  

補足

 

  1. Acrobat Reader では動作しません。
    Acrobat Pro 本体がデフォルトでインストールされているパソコン環境だけです。
     
  2. 下線付きの文字を入れることはaddWatermarkFromText メソッドでは出来ません。
    その場合はaddWatermarkFromFile メソッドを使って下さい。
  3. addWatermarkFromText の引数の全ての動作確認はしていません。 
        
  4. 独特のフォント等を使った透かし又は画像の透かしなら addWatermarkFromFile メソッドがお勧めです。
    事前にAcrobatで透かし用のファイルを作成して、addWatermarkFromFile メソッドで追加できます。 
     
  5. ダイナミックスタンプ、ビジネススタンプ、メッセージスタンプ等のカスタムスタンプの代わりに透かし機能で代用出来るかもしれません。
    承認済、社外秘、却下、極秘、非公開、公開用等の文字を透かし機能を使って追加出来ます。

 

注意

 

  1. *1 : Windows 7 64bit Home + Excel 2007 環境下 で動作確認をして出した結果です。
    日本語フォントの指定方法がネット検索等でも見つけられなかったので独自の視点から割り出しました。 
     
  2. 透かしを一括で削除するOLEやAcobat JavaScript等は現時点(2014/02/24)では見つかっていません。
    見つけられなかったのかもしれません。
     
  3. 当ページで解説している引数の説明に関してはAcrobat JavaScriptのマニュアルを御覧ください。
    当サイトに質問をされても返事は出来ません。
    理由:質問に返答出来るまで Acrobat JavaScript を理解してないからです。

 

動作確認環境

 

  • Windows 7 64bit Home + SP1 +
    Acrobat 8.3.1 Pro + Office 2007 + フルMicrosoftUpdate

 

Adobe Web 解説 & その他

 

  1. JavaScript™ for Acrobat® API Reference
    Adobe® Acrobat® SDK バージョン 8.0
    addWatermarkFromFile メソッドの日本語解説 
     
  2.  JavaScript for Acrobat API Reference
    (Acrobat v10) 英語解説

    addWatermarkFromText メソッドの英語解説
      
  3. Acrobatアプリからの透かしの削除方法  日本語解説
      
  4. MSのフォントに関してはココも参照した

 

  

サンプル一覧

 


 

サイト管理人のメモ

 

これ以降はサイト管理人のメモなので見なくても結構です。

以下のPostScript名も扱える。

"MS UI Gothic"
"Meiryo UI"
"Meiryo UI-Bold"   
"Meiryo UI-Italic"  

以下のPostScript名は実行時にエラーになる。

Verdana
Viva-Regular
Wingdings
MS Pゴシック
MS P明朝
MSゴシック
MS明朝
msgothic
"HeiseiMin-W3-UniJIS-UCS2-H"
'HeiseiMin-W3'
'UniJIS-UCS2-H'
"KozMinPro-Regular”
"HeiseiKakuGo-W5”

 

サンプル一覧

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

コメントをする時は最低でも以下をお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン