mougに“マクロで既存のPDFファイルのフッターを操作(追加)したい”という質問がありました。
「PDFファイルに差し込み印刷するVBAマクロ」でも書いているように、VBAマクロからPDFファイルを操作する場合は、OLEオートメーション機能でAcrobatを操作するのが簡単です(Adobe Readerは不可)。
Option Explicit
Public Sub Sample()
Dim appAcro As Object
Dim avdoc As Object
Const PDSaveFull = &H1
'------------------------------------------------------
'[constants]
'A wrapper object for holding various constant values.
'Currently, this property returns an object with a
'single property, align.
'------------------------------------------------------
'app.constants.align.left : 0
'app.constants.align.center : 1
'app.constants.align.right : 2
'app.constants.align.top : 3
'app.constants.align.bottom : 4
'------------------------------------------------------
Set appAcro = CreateObject("AcroExch.App")
Set avdoc = CreateObject("AcroExch.AVDoc")
If avdoc.Open("C:\Test\MyFile.pdf", vbNullString) = True Then
appAcro.Show
With avdoc.GetPDDoc
With .GetJSObject
'ヘッダー追加
.addWatermarkFromText cText:="ヘッダー", _
cFont:="Meiryo UI", _
nFontSize:=24, _
aColor:=.Color.blue, _
nHorizAlign:=.app.Constants.Align.Left, _
nVertAlign:=.app.Constants.Align.Top, _
nHorizValue:=36, _
nVertValue:=-36
'フッター追加
.addWatermarkFromText cText:="フッター", _
cFont:="Meiryo UI", _
nFontSize:=24, _
aColor:=.Color.red, _
nHorizAlign:=.app.Constants.Align.Right, _
nVertAlign:=.app.Constants.Align.Bottom, _
nHorizValue:=-36, _
nVertValue:=36
End With
.Save PDSaveFull, "C:\Test\MyFile2.pdf" 'PDFファイルを別名保存
End With
avdoc.Close 1 '文書を保存せずに閉じる
appAcro.Hide: appAcro.Exit
End If
MsgBox "処理が終了しました。", vbInformation + vbSystemModal
End Sub
上記コードは、JSObject経由でDocオブジェクト(Acrobat)のaddWatermarkFromTextメソッドを呼び出してヘッダーとフッターを追加しています。
メソッドの説明については、下記ページに詳しく記載されているので、そちらをご参照ください。
- addWatermarkFromText
- 透かしを追加する (addWatermarkFromText)
- Adding Headers and Footers
- Watermarking a PDF with JavaScript
ただし、上記のようにプログラム経由でヘッダーやフッターを追加してしまうと、Acrobatでヘッダー・フッターの更新を行おうとしても、下図のように「このファイルにはヘッダーまたはフッターが見つかりません。ヘッダーまたはフッター情報が表示されていても、Acrobat で追加したものではないため、更新または削除することはできません。」といった警告が表示され、更新を行うことができません。
大量のファイルを一括処理するときは「ヘッダーやフッターを追加する方法 (Acrobat X)」にあるような、Acrobatの標準機能を使った方が良いだろうと思います。




















この記事へのコメントはありません。