Как конвертировать XDP в PDF в Adobe LiveCycle ES3 через HTTP REST-запрос

У меня есть: сервер LiveCycle (ES3, JBOSS), верстак, конструктор. Используя LC Desginer, я конвертирую PDF в XDP - теперь это шаблон. Теперь мне нужно конвертировать этот XDP-файл в PDF. Итак, я думаю, мне нужно как-то вызвать сервер LiveCycle по HTTP-запросу, в теле этого запроса я могу отправить тело документа XDP. Все что мне нужно от LC это просто PDF.

Выглядит как простая задача, но я не могу найти никакой информации, как это сделать. Я вижу много примеров, как сделать это в Java, но мне не нужна Java, мне нужно сделать это через HTTP (конечная точка REST или SOAP, если это невозможно).

Может быть, мне нужно создать какое-то "приложение" в Workbench? Если да, есть ли пошаговая документация? Или, может быть, кто-то может объяснить мне, как это сделать. Может быть, в ES3 Server уже есть встроенное приложение - я думаю, что это очень распространенный и простой случай.

UPD: я открыл работу в Одессе по этому вопросу, обещаю опубликовать решение здесь, чтобы поделиться знаниями с сообществом

2 ответа

Решение

Как и было обещано, вот как решить эту проблему:

  1. Недостаточно просто вставить PDF в LiveCycle Designer. Вам точно нужно оформить форму в LC Designer. Вы можете использовать свой PDF в качестве шаблона, но для всего, что вы хотите выполнить с помощью пользовательских данных, вам нужно добавить объекты в LC Designer (взгляните на меню "Вставить", попробуйте таблицу или текстовое поле) и добавьте данные Подключение на вкладке "Просмотр данных". Я думаю, что это довольно легкий шаг для профессионалов, но новичкам может потребоваться некоторое время. Сохраните результаты своей работы как, например, Template.xdp файл.
  2. Также у вас теперь есть пример файла XML - источника данных. Давайте назовем это DataSource.xml
  3. Теперь мы можем установить LiveCycle Server. Лучшим для LC ES3 является RHEL 5.5 (мы потратили около 2 дней, чтобы найти правильную комбинацию ОС и настроек). Вам понадобится умный системный администратор (или просто опытный в Adobe LiveCycle:))
  4. Сервер работает, вы можете видеть веб-интерфейс, поэтому давайте создадим приложение в Adobe LiveCycle Workbench ES3. Добавьте приложение с новым именем и добавьте процесс к этому приложению. Чтобы описать все этапы процесса, потребуется много слов, просто взгляните на скриншоты результата (и обратите внимание также на переменные):шаг 1шаг 2шаг 3

  5. Теперь самая простая часть - вызвать это приложение по HTTP-запросу. Но мы не можем просто отправить обычный запрос POST в Adobe LiveCycle:) Мы должны отправить содержимое 2 файлов (Template.xdp а также DataSource.xml) так как multipart/form-data и имена частей являются именами входных переменных (в моем примере это xmlTemplate а также xmlData). И не забудьте заголовок авторизации с базовыми учетными данными.

  6. В ответе вы получите тело документа в кодировке base64.

Спасибо Thierry Stortenbeker за это приложение и за помощь и терпение.

Да, вы должны создать приложение LC, используя инструментальные средства. Вот как это сделать:

  1. Создайте новое приложение в рабочей среде, используя File -> New -> Application.
  2. Создайте новый процесс, используя контекстное меню приложения.
  3. Удалите действие формы renderPDF из действия и назовите его "renderPDFForm".
  4. Выберите действие формы renderPDF, чтобы добавить переменные, используя нижнюю панель переменных.
  5. Добавьте переменную типа "Документ" и назовите ее "inputXDP". Мы будем использовать это для передачи файла xdp. Отметьте его как "входную" переменную.
  6. Добавьте переменную типа "Документ" и назовите ее "outPDF". Отметьте его как "выходную" переменную.
  7. Теперь дважды щелкните действие renderPDFForm, это откроет редактор свойств с левой стороны.
  8. Разверните раздел "Ввод", если он еще не расширен. Убедитесь, что "Форма" подбирается из переменной. Затем выберите "inputXDP" из выпадающего списка.
  9. Разверните раздел "Вывод", если он еще не расширен. Убедитесь, что "Rendered Form" выбран из переменной. Затем выберите переменную "outPDF" из выпадающего списка.
  10. Теперь разверните свое приложение, щелкнув правой кнопкой мыши меню приложения.

Вот и все. Вы готовы к работе. Теперь сохраните процесс и дважды щелкните "начальную точку по умолчанию", чтобы получить остальную часть URL-адреса, где будет открыт этот сервис. Остальные URL должны выглядеть http://localhost:8080/rest/services/RestFormRender/renderForm:1.0, Здесь RestFormRender - это имя приложения, а renderForm - имя процесса. Теперь выполните вызов GET/POST для этого URL-адреса REST и укажите байты XDP в параметре запроса "inputXDP".

Другие вопросы по тегам