Сравните эти продукты для генерации PDF с требованиями Java внутри: iText, Apache PDFBox или FOP? [закрытый]

там были вопросы по этому поводу, но не в последнее время и технологии ушли вперед с тех пор.

требования:

  • создание pdf-документов на основе предопределенного шаблона (я могу использовать pdf-формы или xsl-fo)
  • возможность заполнения текстовых данных
  • уметь заполнить графическими данными (штриховые коды)
  • возможность изменять шаблон pdf в производственной среде без исправления (перекомпиляция)
  • создание pdf-файла для сохранения в базе данных (как blob) и/или печати
  • С открытым исходным кодом / бесплатно

предполагаемые параметры: iText, PDFBox, FOP, что-нибудь еще? Какие рекомендации основаны на вышеуказанных требованиях?

7 ответов


  1. iText; в настоящее время iText является коммерческой библиотекой, последняя версия больше не бесплатна
  2. FOP; я много работал с FOP. Это довольно ресурсоемкий (Java > XML > XSLT > PDF) и сложные PDF-файлы становятся кошмаром ( может привести к XSLTs с 20k+ LoC)
  3. PDFBox; кажется, это лучшая альтернатива, хотя я не работал с ней в больших проектах
  4. еще не проверял летающую тарелку

в заключение, я бы дал PDFBox попытка. В зависимости от ваших требований штрих - кода вам может потребоваться встроить штрих-код (шрифт) в PDF или распространить шрифт своим клиентам-позаботьтесь об этих проблемах.


Я сделал проект с летающей тарелкой http://code.google.com/p/flying-saucer/ который основан на iText. Он бесплатный, простой в использовании, имеет отличную поддержку CSS и имеет приятный открытый исходный код.


Я думаю, что ваши критерии могут быть удовлетворены как iText, так и Apahce FOp, но здесь у вас есть некоторые дополнительные критерии:

  • лицензирование: FOP основан на лицензии Apache и, следовательно, "дружественный" также для коммерческого использования
  • flexbility: низкоуровневый API как iText более гибок чем высокопоставленный FOP
  • визуальные инструменты: есть один дизайнер для FOP здесь.
  • модель программирования: iText основан на API программирования, в то время как FOP требует Шаблон XSLFO и меньше программирования.
  • проприетарный стандарт против. Apache FOP основан на стандарте и, следовательно, не зависит от поставщика, в то время как iText является проприетарным API
  • Performace: говорят, что FOP является более вычислительной интенсивностью. это зависит, конечно, от того, что ваши целевые файлы PDF. Это никогда не было проблемой для меня, используя FOP.

Я бы не использовал PDFBox, это хорошо для чтения и изменения существующего PDF-файла, но создания файла с нуля, используя PDFBox может быть много работы.


Я немного предвзят (коммиттер), но я предлагаю iText.

создание pdf-документов на основе предопределенного шаблона (я могу использовать pdf-формы или xsl-fo)

PDF формы: проверить

возможность заполнения текстовых данных

PDF-формы, проверить. Можно также выполнить программный макет.

уметь заполнить графическими данными (штриховые коды)

проверка. Дали известное местоположение (которое может быть "местоположением этой конкретной аннотации"), iText нарисует штрих-код для вас с учетом символов и значения. Вы можете вывести список поддерживаемых символов из константы, перечисленные здесь.

для такого рода вещей я использую поля кнопок с внешним видом "только значок". "Значок" - это некоторые произвольные инструкции по рисованию PDF или изображение. материал штрих-кода iText создаст PdfTemplate вы можете вставить в кнопку без слишком много беда.

возможность изменять шаблон pdf в рабочей среде без исправления (перекомпиляции)

Если весь ваш макет запечен в шаблон PDF, и ваша информация" штрих-код идет сюда " не жестко закодирована в источник, то вы Золотой.

создание pdf-файла для сохранения в базе данных (как blob) и/или печати

PDF-это PDF-это PDF. Черт, с некоторой дополнительной работой с вашей стороны, вы можете использовать iText для создания файлов PDF/A. "А" - это архив.

С открытым исходным кодом / бесплатно

С Открытым Исходным Кодом: Да. v2.1.7 была последней версией для использования MPL. С 5.x, все выпуски iText были под AGPL. Да, iText перескочил с 2.1.7 на 5.0, чтобы синхронизировать нумерацию версий между iText и iTextSharp.

не совсем" маленький f " бесплатно, но версия 2.1.7 не так уж трудно найти. ОТО, это сиротский приют, без присмотра. Быть информировать потребителей.


Это зависит от того, как именно вы хотите создать PDF. FOP работает из XML, IText позволяет создавать программно из Java.


еще один большой палец вверх для летающей тарелки. Он работает довольно хорошо и прост в использовании, если вы знакомы с html и css.

на самом деле не документировано, как получить доступ к встроенным функциям штрих-кода iTexts. Однако это может быть легко достигнуто. Я поставил здесь короткий учебник:http://andreas.haufler.info/2012/12/generating-barcodes-in-pdfs-with-flying.html


никто не говорит о BFO (Big faceless) хотя это коммерчески