【问题标题】:Fill in a PDF form from VBA (MS-Access)从 VBA (MS-Access) 填写 PDF 表单
【发布时间】:2012-11-01 22:57:59
【问题描述】:

我想从我的 MS-Access 2003 .mdb 项目中填写一份 PDF 表单。 PDF 是使用 Adob​​e LifeCycle Designer ES 8.2 创建的,所有字段都有重要的名称。但是,将运行 PDf 填充功能的用户没有安装 LifeCycle,而只安装了 Adob​​e Reader 9.5(可能很快会迁移到 Adob​​e Reader X,我希望我的代码能有一点面向未来)。

我该如何实现呢?我在网上看到的大多数线程都重定向到官方的 Adob​​e SDK 文档,当你只做 VBA 时,这完全是一团糟。

谢谢。

【问题讨论】:

    标签: vba ms-access pdf pdf-form


    【解决方案1】:

    在合并了几行代码后,终于设法使某些东西工作了。这里是。它适用于在我的 VBA 项目中设置为参考的 Adob​​e Acrobat 9.0 类型库。

    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] 是 Adob​​e LiveCycle Designer 为您的主要 PDF 文档提供的默认名称,而 fieldName[0] 是您的字段名称。如果您有多个具有相同名称的字段,Adobe LiveCycle Designer 会自动添加索引号,以便您轻松循环浏览字段。

    【讨论】:

      猜你喜欢
      • 2013-07-26
      • 2017-04-27
      • 2020-03-29
      • 1970-01-01
      • 2017-06-13
      • 2014-12-13
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      相关资源
      最近更新 更多