Необходимо добавить xml как XFA в отчет Jasper Report, созданный в формате pdf

У нас есть требование от судов предоставить PDF-файлы, в которых есть встроенные данные в формате xml. Так что xml находится в форме XFA в PDF.

Мы генерируем наш PDF-файл из отчетов Jasper, затем генерируем xml, который мы хотим добавить. Сгенерированный PDF-файл из Jasper Reports не имеет формы XFA для начала импорта xml.

Как мне заставить PDF-файл создать в нем форму XFA, чтобы я мог затем добавить к нему xml данных?


person user1567291    schedule 27.10.2016    source источник
comment
XFA будет объявлен устаревшим в PDF 2.0 (ISO-32000-2), который будет выпущен в 2017 году. JasperReports не поддерживает XFA; Насколько я знаю, PdfBox также не поддерживает XFA. iText поддерживает XFA в том смысле, что позволяет вставлять поток XFA в существующий шаблон, и вы можете использовать XFA Worker для выравнивания этого шаблона. Вы можете создать шаблон XFA с помощью Adobe LiveCycle Designer и заполнить этот шаблон iText. Вы не можете создать шаблон XFA с помощью JasperReports. Я думаю, вы используете неправильные инструменты. Кстати: iText разрабатывает альтернативу XFA. Возможно, вы захотите связаться с нами.   -  person Bruno Lowagie    schedule 28.10.2016
comment
Спасибо @BrunoLowagie. Я бы хотел, чтобы мы могли использовать не XFA, но это не в наших руках. Я оставил ответ, где получил интерактивный PDF-файл, в который я могу передать наш XML и заполнить форму.   -  person user1567291    schedule 29.10.2016
comment
Можете ли вы дать ссылку на точное постановление, заставляющее вас использовать XFA?   -  person mkl    schedule 30.10.2016
comment
мкл, это не обязательно. По сути, именно так судебная система хочет получить PDF. Они уже отклонили наши формы как просто AcroForms или даже встроенный/прикрепленный файл xml. Это ДОЛЖЕН быть XFA, потому что это все, что они принимают.   -  person user1567291    schedule 30.10.2016


Ответы (1)


Спасибо @BrunoLowagie К сожалению, формат/правила того, что мы можем использовать, не в наших руках. PDF определяется судами США. Но коллега смог достать мне копию PDF-файла из системы судов США, который представляет собой «интерактивную» форму XFA, поэтому я смог вставить данные в форму благодаря всей вашей большой работе. сделали с iText.

Используя следующий код. Все взято из вашей замечательной книги.

AcroFields form = stamper.getAcroFields();
XfaForm xfa = form.getXfa();
xfa.fillXfaForm(new ByteArrayInputStream(xmlSchemaStream.toByteArray()));

Для тех, кто читает это в будущем. Если вы хотите добавить XFA в свой PDF-файл с помощью кода Java, ЕДИНСТВЕННЫМ текущим решением является Adobe LifeCycle, само приложение которого доступно ТОЛЬКО в Windows, и вам необходимо установить его, чтобы использовать файлы jar. О, подождите, становится еще лучше, вы включаете клиентские jar-файлы в свое приложение. Это означает, да, как вы уже догадались, вам нужно установить серверное приложение и запустить его в JBoss, Weblogic или Websphere.

Так что, в конце концов, установка, управление и обслуживание такой глупости, как добавление формы XFA в ваш PDF, обойдутся слишком дорого.

person user1567291    schedule 29.10.2016