- PVSM.RU - https://www.pvsm.ru -

Свободные библиотеки для создания и редактирования файлов PDF

Неделю назад состоялся релиз свободной библиотеки для генерации pdf-файлов версии OpenPDF 1.1.0 [1], самый значительной апгрейд этой библиотеки за последнее время.

OpenPDF — это Java-библиотека для создания и редактирования файлов PDF, которая распространяется под двойной лицензией LGPL/MPL. Библиотека основана на форке iText. В реальности у неё такая история:

LibrePDF/OpenPDF

forked from rtfarte/OpenPDF

forked from kulatamicuda/iText-4.2.0

forked from daviddurand/iText-4.2.0

forked from ymasory/iText-4.2.0

Все форки ведут историю от одной версии iText 4.2.0, которая вышла [2] восемь лет назад и стала последней версией под свободной лицензией. Сами разработчики iText перешли на AGPL и сконцентрировались над созданием пятой версии, чтобы более успешно продавать коммерческий софт. К настоящему времени они доросли до версии iText 7 [3]. Но свободный проект тоже не погиб, а продолжил развитие силами всего сообщества.

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

С момента старой «оригинальной» версии 4.2.0 сделаны следующие изменения.

  • компиляция с поддержкой Java 8
  • в случае неожиданного окончания файла PDF выбрасывается исключение IOException, а не PDFNull
  • принят патч для исправления NPE в XFA Form (метод escapeSom)
  • принята функциональность UnembedFontPdfSmartCopy от Vicente Alencar
  • принята функциональность RTF Footer от ubermichael
  • исправление совместимости для поддержки более свежих криптографических библиотек Bouncy Castle (1.54)
  • некоторые исправления NPE и «подкрученная» поддержка фреймворка Maven

OpenPDF — удобный способ внедрить в свой проект генерацию документов PDF, в том числе с криптографической цифровой подписью. Это готовый и бесплатный модуль, пригодный для использования в электронном документообороте. И такую систему можно использовать, например, с сертификатами для подписи PDF [4], чтобы сертифицировать и утверждать PDF-документы. Или интегрировать с сервисом облачных подписей Digital Signing Service [5] от GlobalSign. Хотя последний уже работает, например, с решением для подписи документов Adobe Sign [6] в облаке Adobe Document Cloud.

Поддержка криптобиблиотек Bouncy Castle [7] весьма полезна. В основе архитектуры Bouncy Castle лежит набор низкоуровневых API, которые реализуют все криптографические алгоритмы. Есть поддержка стандартных высокоуровневых криптографических API платформ Java и C#.

Программные интерфейсы Java API от Bouncy Castle в версии 1.53 включали в себя около 400 тыс. строк кода и поддерживали большое количество алгоритмов, в том числе базовую генерацию сертификатов X.509, работу провайдера JCE/JCA, PKCS#10, PKCS#12, S/MIME, OpenPGP, DTLS, TLS, OCSP, TSP, CMP, CRMF, DVCS, DANE, EST, сертификаты Attribute Certificate (AC), которые используются для связывания дополнительной информации с сертификатом открытого ключа.

Нужно заметить, что кроме OpenPDF существуют и другие свободные библиотеки для генерации PDF. Например, есть ещё veraPDF [8] или замечательная библиотека Apache PDFBox [9]. Последняя активно поддерживается и обладает богатым набором функций:

  • Извлечение текста Unicode из файлов PDF.
  • Слияние нескольких файлов или разбиение одного PDF на части.
  • Извлечение данных из форм PDF или заполнение их.
  • Валидация PDF на соответствие стандарту PDF/A-1b.
  • Печать PDF через стандартные Java API.
  • Сохранение в виде изображений, таких как PNG или JPEG.
  • Создание PDF с нуля, с внедряемыми шрифтами и иллюстрациями.
  • Цифровая подпись PDF.

Так что в наше время вовсе необязательно использовать проприетарные инструменты для создания или редактирования PDF. Для этого есть много свободных альтернатив.

Автор: GlobalSign_admin

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/286117

Ссылки в тексте:

[1] OpenPDF 1.1.0: https://github.com/LibrePDF/OpenPDF/releases/tag/1.1.0

[2] вышла: https://github.com/ymasory/iText-4.2.0

[3] iText 7: https://itextpdf.com/

[4] сертификатами для подписи PDF: https://www.globalsign.com/en-in/pdf-signing/

[5] Digital Signing Service: https://www.globalsign.com/en/digital-signatures/

[6] Adobe Sign: https://acrobat.adobe.com/us/en/sign.html

[7] Bouncy Castle: https://www.bouncycastle.org/

[8] veraPDF: https://github.com/verapdf

[9] Apache PDFBox: https://pdfbox.apache.org/

[10] Источник: https://habr.com/post/417277/?utm_campaign=417277