我在here上发现了一条关于如何从MS Access填写可填写PDF的帖子。
这是一个用于填写可填写PDF的Visual Basic代码。我一直在使用Excel来执行此功能,并希望将我的数据库迁移到Access并仍然保持相同的功能。我已经弄清楚如何将我的VB代码添加到按钮,但是当我点击它给我和错误。任何可以给予的帮助都将不胜感激。
我有Adobe Acrobat X Pro和MS Access 2010.我的PDF文件是用word创建的,然后转换为PDF文件,我知道所有的字段名称,因为我创建了它们。 PDF文档保存为c:\ CX.pdf,它有9页,文档上的一些字段名称示例为:“工厂名称”,“工作站位置”,“安装者或所有者”。我的MS Access数据库字段的名称相同。
Option Compare Database
Private Sub Command105_Click()
Dim FileNm, gApp, avDoc, pdDoc, jso
FileNm = "c:\CX.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("CX[0].Page1[0].Plant_Name[0]").Value = "Plant_Name"
jso.getField("CX[0].Page1[0].Station_Location[0]").Value = "Station_Location"
jso.getField("CX[0].Page1[0].Installer_or_Owner[0]").Value = "Installer_or_Owner"
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
End Sub
它给了我错误“找不到对象”,现在它没有给我错误,但它仍然没有写入PDF。
答案 0 :(得分:0)
这有点旧,但从长远来看它对我有所帮助。我确实搞清楚了什么是错的。 “找不到对象”表示代码无法找到PDF字段,因此您无法为“getFeild()”返回的对象分配任何内容。最可能的罪魁祸首是该领域的“路径”是不正确的。尝试只输入字段名称,您可能需要将数据导出到FTF文件并在记事本中读取文件以查找字段名称。
字段名称将如下所示
T/(FeildName)v/(FeildValue)
实际返回对象后,您将能够为其分配值。