7

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

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

谢谢你。

4

1 回答 1

8

在合并了几行代码后,终于设法使某些东西工作了。这里是。它适用于在我的 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 会自动添加索引号,以便您可以轻松地循环浏览您的字段。

于 2012-11-13T15:10:29.477 回答