我正在尝试使用VBA使用excel工作表中的数据填充模板PDF,这是我到目前为止所拥有的;
FILE_NAME_TEMPLATE = "path_to\template.pdf"
Set gApp = CreateObject("AcroExch.app")
Set avDoc = CreateObject("AcroExch.AVDoc")
If avDoc.Open(FILENAME, "") Then
Set pdDoc = avDoc.GetPDDoc()
Set jso = pdDoc.GetJSObject
'populating pdf fields here, no issues
FILE_NAME_RESULT = "path_to\result.pdf"
pdDoc.Save PDSaveFull, FILE_NAME_RESULT
pdDoc.Close
End If
avDoc.Close (True)
按原样,代码填充并保存template.pdf
,但是我想保留模板文件不变,并使用填充的数据创建新的result.pdf
。请说明我在做什么错,并感谢您的宝贵时间。
答案 0 :(得分:0)
(尚不足以仅发表评论,因此请张贴为答案)
pdDoc.Close
是一个函数,如果是,它的返回值是什么?
作为解决方法,您可以先将模板复制到结果文件,然后再处理该文件。
FileCopy FILE_NAME_TEMPLATE, FILE_NAME_RESULT
让我添加一种编码风格的最佳实践建议:仅将所有大写名称用于常量。对于实际变量,请使用大小写混合的名称(例如您对pdDoc所做的操作。
答案 1 :(得分:0)
我也一直在寻找它,这花了我几天的时间:只需使用文档标记(长)代替参数:
pdDoc.Save 1, FILE_NAME_RESULT