我已經能夠成功寫入 pdf,但現在我正在嘗試保存它。我知道我需要使用 pddoc 才能保存,但我無法將其設定為與我用來寫入 pdf 的 avdoc 匹配。真正的代碼有很多欄位,所以我將把它減少到一個欄位并將我的內容放在下面:
Sub mysub()
'basic declarations and initializations
Dim myfullpath As String
Dim myField As String
myfullpath = "C:\mypdf.pdf"
myField = "Hello"
'pdf overhead declarations and initializations
Dim aApp As Acrobat.AcroApp
Dim av_doc As Acrobat.AcroAVDoc
Dim pdf_form As AFORMAUTLib.AFormApp
Set aApp = CreateObject("AcroExch.App")
Set av_doc = CreateObject("AcroExch.AVDoc")
Set pdf_form = CreateObject("AFORMAUT.App")
If av_doc.Open(myfullpath, "") = True Then
'declare and initialize pdf fields
Dim pdfField As AFORMAUTLib.Field
Set pdfField = pdf_form.Fields("pdfField")
'set value in pdf
pdfField = myField
'declare and initialize pddoc in order to save
Dim PdfDoc As Acrobat.CAcroPDDoc
Set PdfDoc = av_doc 'having trouble here
'“Run-time error ‘13’: Type mismatch”
PdfDoc.Save PDSaveFull, myfullpath
av_doc.Close False
Set pdfField = Nothing
End If
aApp.Exit
Set aApp = Nothing
Set av_doc = Nothing
Set PdfDoc = Nothing
End Sub
uj5u.com熱心網友回復:
這對我有用:
Sub mysub()
Dim myfullpath As String, myfullpath_edited As String
Dim myField As String
Dim aApp As Acrobat.AcroApp
Dim av_doc As Acrobat.AcroAVDoc
Dim pdfField As Object 'AFORMAUTLib.Field
Dim PdfDoc As Acrobat.CAcroPDDoc
Dim pdf_form As Object 'AFORMAUTLib.AFormApp
myfullpath = "C:\Tester\mypdf.pdf"
myfullpath_edited = "C:\Tester\mypdf_edited.pdf"
myField = "Hello"
Set aApp = CreateObject("AcroExch.App")
Set av_doc = CreateObject("AcroExch.AVDoc")
Set pdf_form = CreateObject("AFORMAUT.App")
'aApp.Show
If av_doc.Open(myfullpath, "") Then
'av_doc.BringToFront
Set pdfField = pdf_form.Fields("pdfField")
pdfField.Value = myField 'set value in pdf
Set PdfDoc = av_doc.GetPDDoc '<<<<<<<<<<<<<<
PdfDoc.Save PDSaveFull, myfullpath_edited
av_doc.Close False
End If
aApp.Exit
Set aApp = Nothing
Set av_doc = Nothing
Set PdfDoc = Nothing
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434792.html
