Использование листа Excel или файла .csv для автоматического обновления информации о форме в Acrobat - PullRequest
0 голосов
/ 12 ноября 2018

Я хотел бы заполнить поля формы в PDF автоматически, читая из листа Excel.

Например, если у меня есть поле в документе PDF с именем "Адрес", и у меня есть лист Excelв той же папке с ячейкой, содержащей «Адрес», я бы хотел, чтобы поле в pdf автоматически обновлялось, если кто-то изменяет ячейку адреса в листе Excel.

Я знаю, что вы можете импортировать Excelлист в Acrobat Pro вручную, но я хотел бы, чтобы это происходило автоматически при открытии документа.

Я изучал использование JavaScript в Acrobat, но не могу понять, как его использовать для этого приложения.

Если я не дал понять, пожалуйста, не стесняйтесь спрашивать, и я постараюсь уточнить.

Приветствия

1 Ответ

0 голосов
/ 13 ноября 2018

В Excel я бы настроил событие onChange для ячейки, содержащей адрес. Если значение ячейки меняется, вы можете вызвать acrobat и заполнить форму новым значением. Прикрепленный код подпрограммы vbs / vba, необходимый в xls, чтобы заполнить форму в формате pdf.

Справку и справочную информацию вы найдете в разделе Adobe Acrobat SDK, IAC. Удачи, Рейнхард

fileIn = "D:\Test2.pdf"              '// state the full path of the file to open
xlsCellValue = "newAddress"        '// value you want to set

Set App = CreateObject("AcroExch.App")     '// start Adobe Acrobat
App.Show                           '// show Acrobat or comment out for hidden mode

Set AVDoc = CreateObject("AcroExch.AVDoc") '// connect to Ac Viewer
if AVDoc.Open(fileIn,"") then              '// Open a file into viewer
    Set PDDoc = AVDoc.GetPDDoc             '// Get the Doc opened in the viewer
    set jso = PDDoc.GetJSObject            '// Connect to Acrobat JS
    set xf = jso.getField("Address")        '// get field object
    xf.value = xlsCellValue             '// set field value
    jso.app.alert(xf.value)         '// Display new value in a MsgBox
    PDDoc.save 1, fileIn            '//save the file
end if

App.CloseAllDocs                  '// close active documents
App.exit
...