#vba #xfa
Вопрос:
У меня есть PDF-документ XFA, разработанный в Adobe Lifecycle. Я пытаюсь автоматизировать заполнение этой формы PDF с помощью макроса VBA excel .
Но , когда я пытаюсь использовать приведенный ниже сценарий, он завершается ошибкой 438 во время выполнения в xfa4.editvalue = «Входное значение» . Я предполагаю , что это связано с тем , что текстовое поле, которое я пытаюсь заполнить, в настоящее время пусто, потому что, если я попытаюсь отредактировать pdf-файл, который уже имеет значение в этом текстовом поле, это сработает для меня.
Ниже приведен код
Вложенный pdfinputtest()
Dim имя файла, Output_Pdf, PDFTemplateFile, SavePDFFolder, Имя папки, XMlFileName Как строка Dim gApp2, avDoc2, PDDoc2, jso3, xfa4, oxmlFile2 Как объект Dim tgs, td, tl, t, tv Как объект Dim fldName Как строка Dim a Как Целое число
Имя папки = «C:UsersabcdDesktopAutomate_InputFiles» Имя файла XML = Dir(имя папки и «.xml«)
SavePDFFolder = «C:UsersabcdDesktopAutomate_InputGenerated_PDF» PDFTemplateFile = «C:UsersabcdDesktopAutomate_InputInputPdf.pdf»
Set gApp2 = CreateObject("AcroExch.app")
Set avDoc2 = CreateObject("AcroExch.AVDoc")
If avDoc2.Open(PDFTemplateFile, "") Then
'avDoc2.BringToFront
Set PDDoc2 = avDoc2.GetPDDoc()
Set jso3 = PDDoc2.GetJSObject()
'TestInput
fldName = "tgs[0].cv[0].ti[0].ta[0]"
Set xfa4 = jso3.xfa.resolveNode("form." fldName)
xfa4.editvalue = "Input Value"
'xfa4.rawValue = "Input Value"
Output_Pdf = SavePDFFolder amp; "" amp; Format(DateTime.Now, "YYMMDD_HH_mm_ss") amp; ".pdf"
PDDoc2.Save 1, Output_Pdf
PDDoc2.Close
avDoc2.Close (True)
Set gApp2 = Nothing
Set avDoc2 = Nothing
Set PDDoc2 = Nothing
Set jso3 = Nothing
Set tgs = Nothing
Set td = Nothing
Set tl = Nothing
Set t = Nothing
Set tv = Nothing
End If
Конец Суб