Fill in a PDF form from VBA (MS-Access)

前端 未结 1 1374
借酒劲吻你
借酒劲吻你 2020-12-29 14:30

I want to fill a PDF form from my MS-Access 2003 .mdb project. The PDF has been created with Adobe LifeCycle Designer ES 8.2, all fields have significant names. However, the

1条回答
  •  暖寄归人
    2020-12-29 15:08

    Finally managed to get something working after merging some lines of code. Here it is. It works with the Adobe Acrobat 9.0 Type Library set as reference in my VBA project.

    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
    

    Note that topmostSubform[0].Page1[0] is the default name that Adobe LiveCycle Designer gives to your main PDF document, while fieldName[0] is the name of your field. If you have multiple fields with the same name, Adobe LiveCycle Designer automatically adds index numbers so you can easily loop through your fields.

    0 讨论(0)
提交回复
热议问题