Библиотека генерации 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
- преобразует его с помощью XSLT, выход которого является XML-FO
- использовать Apache ФОП!--2--> для преобразования XML-FO в PDF
Это действительно отличное решение, означает, что я (как программист) больше не должен менять свой код каждый раз, когда мой босс хочет изменить цвет в отчете, моя работа-просто создать "чистый" XML.
обновление: я должен также отметить, что я даю моему боссу доступ к нашему репозиторию SVN с Tortoise SVN, который достаточно прост в использовании, чтобы он мог использовать его без ошибок. Таким образом, он может проверить файлы XSLT прямо в SVN и запустите сборку / развертывание, даже не прерывая меня от моей работы. Очевидно, что рабочий процесс работает только с людьми, которые достаточно точны, чтобы они не делали ошибок и т. д. но в этом случае у нас все получится.
Docmosis позволяет создавать шаблоны в Word или OpenOffice writer-разделение проблем красиво и макет затем в самых знакомых инструментов.
основываясь на моем опыте, я бы предложил вам рассмотреть следующие Java PDF библиотеки для создания отчетов PDF,
- DynamicReports
- Apache в PDF в окне
- iText PDF
- PDF клоун
для вашего требования, я думаю DynamicReports было бы правильным выбором. Я использую динамические отчеты за последние 3 года для всех моих требований к отчетности PDF. С очень меньшим количеством код, вы можете легко создать действительно динамический PDF. Dynamicreports-это оболочка вокруг отчета Jasper. Таким образом, он внутренне использует отчет Jasper.
Я использую JODConverter и мне очень нравится.
то, что мы делаем, это использовать JODReports для генерации динамических OpenOffice.org документы (который внутренне использует FreeMarker). Затем мы преобразуем эти документы в PDF-документы с помощью JODConverter.
Это звучит как много работы, но это не так.
одна из возможностей -
- для создания документов в формате PostScript, а потом
- преобразовать его в pdf с помощью ghostscript (ps2pdf)