2016-11-04 66 views
-1

私はadobeでvbaコーディングするのが新しく、動作するコードを取得できません。私は最初に私の文書(Adobe Acrobatで)にあるpdfを開き、テキストボックスまたはテキストボックスの数を追加して5ページ目を編集する必要があります。私はこれが可能かどうか、これを行うためのコードがあるかどうか疑問に思っていました。私はAdobe Acrobat XI Standardを使用しています。私はpdfを手動で編集し、必要に応じてテキストボックスを作成することができます。 ご協力いただければ幸いです。adode pdfを開き、テキストボックスを追加してページを編集します

おかげ

+0

Adob​​e PDF編集は一般にjavascriptで行われます。私は、Adobeの視界に行き、それに関する文書を読むことをお勧めします。私は広範囲に何もしませんでしたが、私は自分自身について興味があったときにそれを覚えています。 –

+0

https://acrobatusers.com/tutorials/javascript_console –

+1

私はadobeのapiを通して自分自身で答えを見つけました。あなたは実際にはOLEオートメーション文書とAPIリファレンスを使って広範囲にコード化することができます – chandu

答えて

1

は、OLEオートメーションとAPIリファレンスにadobesドキュメントを通してトロール後、私はあなたが実際にアクロバットをVBAで非常によくコーディングできることを見出しました。あなたのニーズをお楽しみください。 AdobeのAPIリファレンスへのリンクは次のとおりです。http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/iac_api_reference.pdf

Sub RMS_pdf() 

Application.DisplayAlerts = False 
Application.CutCopyMode = False 


Set wb1 = Workbooks.Open(Filename:="\\ldnfortunenet\fortunenetdocuments\William Hadman\Suitability\RMS\RMS Product Governance Reports\" & LongNewDate & "\RMS Product Governance Report.xlsm", UpdateLinks:=True) 

Set ws1 = wb1.Sheets("Performance & Volatility") 
    Set ws2 = wb1.Sheets("Asset Allocation") 
    Set ws3 = wb1.Sheets("Detailed Contribution") 


OpenPath = "\\ldnfortunenet\fortunenetdocuments\William Hadman\Aushir Shah\RMS Product Governance Reports\RMS Product Governance Report - 2016-10-31 - CDF Direct Diversified Income.pdf" 
SavePath = "\\ldnfortunenet\fortunenetdocuments\William Hadman\Aushir Shah\RMS Product Governance Reports\RMS Product Governance Report - 2016-10-31 - CDF Direct Diversified Income v2.pdf" 
'initialize the Acrobat interface 
Set AcroApp = CreateObject("AcroExch.App") 
Set gpdDoc = CreateObject("AcroExch.PDDoc") 
'open the file 
If gpdDoc.Open(OpenPath) Then 
Set jso = gpdDoc.GetJSObject 
End If 
'get at the jso 
If Not jso Is Nothing Then 
If gpdDoc.Open(dest) Then 
Set jso = gpdDoc.GetJSObject 
End If 

LastPage = gpdDoc.GetNumPages - 1 

Set Box1 = jso.AddField("Performance Comment - " & StrategyName(4), "text",   LastPage, Array(583.8, 706.32, 224.7, 583.2)) 
Box1.TextFont = "Helvetica" 
Box1.TextSize = 8 

Else 
End If 
If gpdDoc.Save(PDSaveFull, SavePath) = False Then 
MsgBox "Unable to save image" 
Else 
End If 
+0

非常にクールです - これまでに得たものはほとんどありませんでした –

+0

3日前に答えをくれました。行く方法、 – ReFran

+0

謝罪ReFran、私はあなたのコードを見ていない。私がPDDocを使用している間は、あなたはAVDocを使用していることに注意する必要があります。違いは次のとおりです。Acrobat Viewer(AV)レイヤーはビューアのユーザー インターフェイスを処理し、ポータブルドキュメント(PD)レイヤーはPDFドキュメントのコンポーネントにアクセスします。後でこの状況で私のニーズにおそらくより有用である。 – chandu

1

ありVBA/VBS(AcrobatのSDK/IACの項を参照)からアクロバットと通信するためのいくつかの方法。しかし、私にとっては、AcrobatフォームAPIを使って作業するのが最善です。これは、jsコードでより多くの直接的な作業をすることを可能にします。

次の例では、最初のページにテキストを追加する方法を示します(0から1ページ目= 0)。

詳細なメソッドとプロパティ、特にrectを定義する場所(ボックスを設定する場所/配列)は、「Acrobat JavaScript API Reference」で検索してください。 幸運は、ラインハルト

Path = "D:\Test.pdf" 

Set App = CreateObject("Acroexch.app") 
app.show 
Set AVDoc = CreateObject("AcroExch.AVDoc") 
Set AForm = CreateObject("AFormAut.App") 'from AFormAPI 

If AVDoc.Open(Path,"") Then 
    '// write some js code on a vbs variable 
    js = "f = this.addField(""newField"", ""text"", 0, [250,650,20,600]);" &vblf _ 
    & "f.value = ""any Text""; " &vblf _ 
    & "f.flatten" 
    '//execute the js code 
    AForm.Fields.ExecuteThisJavaScript js 
end if 

Set AForm = Nothing 
Set AVDoc = Nothing 
Set APP = Nothing 
関連する問題