从VBA PDF表单填写(MS接入)(Fill in a PDF form from VBA (MS

2019-07-03 18:59发布

我想填补我的MS-Access 2003中的.mdb项目PDF表单。 该PDF已经与Adobe生命周期设计ES 8.2创建的,各个领域都有显著的名字。 然而,谁运行PDF-填充functionnality用户没有安装生命周期,但只有ADOBE READER 9.5,而不是(可能很快转移到Adobe Reader X,我想我的代码是有点面向未来)。

我怎样才能实现呢? 我已经在网上看到多数线程重定向到Adobe官方SDK文档,这完全是当你只是做VBA一团糟。

谢谢。

Answer 1:

终于合并的一些代码行后得到的东西的工作。 这里是。 它的工作原理与使用Adobe Acrobat 9.0类型库设置为我的VBA项目引用。

Dim FileNm, gApp, avDoc, pdDoc, jso

FileNm = "c:\form.pdf" 'File location
Set gApp = CreateObject("AcroExch.app")

Set avDoc = CreateObject("AcroExch.AVDoc")
If avDoc.Open(FileNm, "") Then
    Set pdDoc = avDoc.GetPDDoc()
    Set jso = pdDoc.GetJSObject

    jso.getField("topmostSubform[0].Page1[0].fieldName[0]").value = "myValue"
    pdDoc.Save PDSaveIncremental, FileNm 'Save changes to the PDF document
    pdDoc.Close
End If

'Close the PDF; the True parameter prevents the Save As dialog from showing
avDoc.Close (True) 

'Some cleaning
Set gApp = Nothing
Set avDoc = Nothing
Set pdDoc = Nothing
Set jso = Nothing

需要注意的是topmostSubform[0].Page1[0]是默认名称的Adobe LiveCycle Designer中给到主PDF文档,而fieldName[0]是您的字段的名称。 如果你有多个同名的领域中,Adobe LiveCycle Designer中自动添加索引号这样你就可以通过你的领域很容易循环。



文章来源: Fill in a PDF form from VBA (MS-Access)