使用VBA填充模板PDF

时间:2019-07-01 20:14:54

标签: excel vba pdf

我正在尝试使用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。请说明我在做什么错,并感谢您的宝贵时间。

2 个答案:

答案 0 :(得分:0)

(尚不足以仅发表评论,因此请张贴为答案)

pdDoc.Close是一个函数,如果是,它的返回值是什么?

作为解决方法,您可以先将模板复制到结果文件,然后再处理该文件。

FileCopy FILE_NAME_TEMPLATE, FILE_NAME_RESULT

让我添加一种编码风格的最佳实践建议:仅将所有大写名称用于常量。对于实际变量,请使用大小写混合的名称(例如您对pdDoc所做的操作。

答案 1 :(得分:0)

我也一直在寻找它,这花了我几天的时间:只需使用文档标记(长)代替参数:

pdDoc.Save 1, FILE_NAME_RESULT