Экспорт данных формы PDF в XML с использованием Javascript

Я сделал интерактивный PDF-файл с InDesign, содержащий несколько текстовых полей и кнопку. Когда эта кнопка нажата, я хочу, чтобы она извлекала значения из текстовых полей и помещала их в файл XML. Итак, эта кнопка должна вызывать действие «Экспорт данных формы» с расширением файла *.xml. Я думал, что это можно сделать с помощью javascript (на вкладке действий в свойствах кнопки), но я не могу его найти.

У меня Adobe Acrobat Pro 10, и я работаю на Mac.

Я уже пробовал следующие коды:

this.saveAs("../Test.xml" , "com.adobe.acrobat.xml-1-00");

а также

var name = getField("name").value;
var jobId = getField("jobId ").value;
var fieldsToSubmit = ['name', 'jobId'];

this.submitForm
({
               aFields: fieldsToSubmit,
               cSubmitAs: 'XML',
               cPath: "../"
});

Этот последний работает, если я использую cURL вместо cPath с определенным адресом электронной почты. Но это не совсем то, что мне нужно. Файл XML должен быть отправлен в локальное хранилище, например «/users/MyDocuments/Folder/filename.xml».

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно? Или это невозможно?

С уважением

Мишель


person user3156776    schedule 01.04.2014    source источник
comment
В методе submitForm() нет аргумента cPath, поэтому cPath не работает.   -  person Max Wyss    schedule 02.04.2014
comment
Я тоже это понял :) но неужели нет альтернативы?   -  person user3156776    schedule 08.04.2014
comment
Аргумент пути — cURL; вы можете попробовать это с протоколом file: (нет гарантии, что он работает), но лучше использовать метод exportAsXML() или exportAsXFDF().   -  person Max Wyss    schedule 08.04.2014


Ответы (2)


Поскольку вы хотите записать экспортированный файл данных в файловую систему (вместо отправки в службу), submitForm() не совсем подходит.

Ближе всего мне приходит на ум экспорт в формате XFDF. XFDF — это XML-представление FDF, собственного формата данных форм PDF. Затем XFDF можно легко преобразовать в то, что вам нужно.

Другой подход заключается в создании содержимого XML-файла и записи его в объект данных, который затем можно экспортировать.

Последний даст сразу же пригодный для использования результат, но потребует больше программирования.

Для обоих методов настоятельно рекомендуется ознакомиться с документацией Acrobat JavaScript, которая является частью Acrobat SDK, которую можно загрузить с веб-сайта Adobe.

person Max Wyss    schedule 02.04.2014

У-у-у! Я нашел это!

var url = "mailto:[email protected]?subject=My Subject&body=Here is my form data.";
this.submitForm({cURL: url, cSubmitAs: "XFDF"})

Я изменил решение, предоставленное для «XFDF»:

https://kbpdfstudio.qoppa.com/send-email-with-pdf-form-data-using-javascript-submitform/

Все, что я сделал, это заменил "XDFL" на "XML".
Магия JavaScript!

javascriptкнопкаотправитьэлектронная почтаxml xfdfform-dataэкспортmailtopdfattachmentполятекстовые поляextractобобщитьданныеacrobat

person Richard Montoya    schedule 05.10.2019
comment
Вопрос был о сохранении, а не об отправке электронного письма. - person RalfFriedl; 05.10.2019