Библиотека генерации PDF для Java [закрыто]

Я знаю, что об этом спрашивали раньше, но я все еще не решил, какую структуру генерации PDF использовать для моего текущего проекта.

мои требования

  • на лету генерация PDF-документов (в основном бланки заказов, счета-фактуры)
  • на основе Java
  • простой макет
  • должна быть с открытым исходным кодом
  • легко изменить макет

многие люди, кажется, используют iText, но у меня есть некоторые проблемы (помимо измененной лицензии) относительно разделения проблем: в контексте HTML есть хорошая поддержка MVC, где я обычно придерживаюсь Spring MVC и FreeMarker для разделения логики и макета. Я немного беспокоюсь, что с iText вы в конечном итоге смешиваете код и макет.

Я знаю, что Apache FOP может быть решением здесь, но опять же я нахожу XSLT утомительным для работы, и я читал, что FOP может быть медленным, когда дело доходит до огромного throuput многих документы?

Я тоже считал JasperReports, но, насколько я понимаю, это больше подходит для отчетов, содержащих табличные наборы данных, а не отдельные документы, такие как счета-фактуры, которые требуют много форматирования макета?

какие мысли по этому поводу?

6 ответов


дайте JasperReports попробовать. Использовать iReport создать .файлов jrxml. JapserReports может обрабатывать сложные макеты. Для тех частей отчета, основанных на различных запросах, рассмотрим использование вложенных отчетов, встроенных в основной отчет.

Как и решение @Adrian Smith, этот подход отделит редактирование макета отчета от источника данных.


я реализовал хорошее решение, где мое программное обеспечение создает независимый от формата" чистый " XML-файл, Затем я даю своему боссу XSD, и он помещает его в Altova StyleVision где он может WYSIWYG проектные отчеты, основанные на данных, которые он вырывает из XSD. Это программное обеспечение производит XSLT. Итак моя программа:

Это действительно отличное решение, означает, что я (как программист) больше не должен менять свой код каждый раз, когда мой босс хочет изменить цвет в отчете, моя работа-просто создать "чистый" XML.

обновление: я должен также отметить, что я даю моему боссу доступ к нашему репозиторию SVN с Tortoise SVN, который достаточно прост в использовании, чтобы он мог использовать его без ошибок. Таким образом, он может проверить файлы XSLT прямо в SVN и запустите сборку / развертывание, даже не прерывая меня от моей работы. Очевидно, что рабочий процесс работает только с людьми, которые достаточно точны, чтобы они не делали ошибок и т. д. но в этом случае у нас все получится.


Docmosis позволяет создавать шаблоны в Word или OpenOffice writer-разделение проблем красиво и макет затем в самых знакомых инструментов.


основываясь на моем опыте, я бы предложил вам рассмотреть следующие Java PDF библиотеки для создания отчетов PDF,

  1. DynamicReports
  2. Apache в PDF в окне
  3. iText PDF
  4. PDF клоун

для вашего требования, я думаю DynamicReports было бы правильным выбором. Я использую динамические отчеты за последние 3 года для всех моих требований к отчетности PDF. С очень меньшим количеством код, вы можете легко создать действительно динамический PDF. Dynamicreports-это оболочка вокруг отчета Jasper. Таким образом, он внутренне использует отчет Jasper.


Я использую JODConverter и мне очень нравится.

то, что мы делаем, это использовать JODReports для генерации динамических OpenOffice.org документы (который внутренне использует FreeMarker). Затем мы преобразуем эти документы в PDF-документы с помощью JODConverter.

Это звучит как много работы, но это не так.


одна из возможностей -

  • для создания документов в формате PostScript, а потом
  • преобразовать его в pdf с помощью ghostscript (ps2pdf)