問題が発生しました - カスタムスタンプ(注釈の種類)をいくつかの.pdfファイルに追加する必要があります。私はAcrobat X Proのアクションを通じてそれを行うことができますが、私のクライアントはそのライセンスを持っておらず、依然としてそれを行う必要があります。ファイルのリストはExcelスプレッドシートに格納されているので、理想的には私はVBAソリューションを探しています。私は、次のコードを思い付いていますVBAからドキュメントにカスタムPDFスタンプを追加する
Option Explicit
Sub code1()
Dim app As Acrobat.AcroApp
Dim pdDoc As Acrobat.CAcroPDDoc
Dim page As Acrobat.CAcroPDPage
Dim recter(3) As Integer 'Array defining the rectangle of the stamp - in real code wil be calculated, simplified for ease of reading
Dim jso As Object
Dim annot As Object
Dim props As Object
Set pdDoc = Nothing
Set app = CreateObject("AcroExch.App")
Set pdDoc = CreateObject("AcroExch.PDDoc")
recter(0) = 100
recter(1) = 100
recter(2) = 350
recter(3) = 350
pdDoc.Open ("C:\Users\maxim_s\Desktop\Code_1\test1.pdf")
Set jso = pdDoc.GetJSObject
If Not jso Is Nothing Then
Set page = pdDoc.AcquirePage(0)
Set annot = jso.AddAnnot
Set props = annot.getprops
props.page = 0
props.Type = "Stamp"
props.AP = "#eIXuM60ZXCv0sI-vxFqvlD" 'this line throws an error. The string is correct name of the stamp I want to add
props.rect = recter
annot.setProps props
If pdDoc.Save(PDSaveFull, "C:\Users\maxim_s\Desktop\Code_1\test123.pdf") = False Then
MsgBox "fail"
pdDoc.Close
Else
MsgBox "success"
pdDoc.Close
End If
End If
End Sub
問題がsetprops
とgetprops
手続きである - 注釈が作成された瞬間(jso.AddAnnot
)でそれがあるAP
プロパティを、保有していないようです追加したいスタンプの名前。最初にプロパティType= "Stamp"
を設定してからAP
を指定すると、デフォルトのスタンプの1つが追加され、AP
の名前が私のカスタムスタンプのAP
に変更されます。また、私は、Acrobatを起動し、以下のコードを使用している場合、適切なスタンプが追加されていること、注意してください。
this.addAnnot({page:0,type:"Stamp",rect:[100,100,350,350],AP:"#eIXuM60ZXCv0sI-vxFqvlD"})
問題を解決しますPDDocオブジェクトの内部でVBAからこのJavaScriptを実行する方法、がある場合は、しかし、これまで私は失敗しました。
こんにちは、私はそれをやる方法も分かりません。しかし、どのようにVBAを使用して、あなたのスタンプ/表記をテキストボックスに挿入してください。ファイルをPDFとして印刷/エクスポートし、後でテキストボックスを非表示にする/クリアしますか? – Doug