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

в 8:37, , рубрики: api, Bouncy Castle, LibrePDF, open source, OpenPDF, PDFBox, pkcs#12, veraPDF, Блог компании GlobalSign, генерация pdf, Софт

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

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, которая вышла восемь лет назад и стала последней версией под свободной лицензией. Сами разработчики iText перешли на AGPL и сконцентрировались над созданием пятой версии, чтобы более успешно продавать коммерческий софт. К настоящему времени они доросли до версии iText 7. Но свободный проект тоже не погиб, а продолжил развитие силами всего сообщества.

За прошедшее время библиотека в некоторых отношениях улучшена, исправлено несколько багов. Хотя изменения не слишком значительные, но разработка продолжается, и внести свой вклад может каждый. Если при генерации 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, чтобы сертифицировать и утверждать PDF-документы. Или интегрировать с сервисом облачных подписей Digital Signing Service от GlobalSign. Хотя последний уже работает, например, с решением для подписи документов Adobe Sign в облаке Adobe Document Cloud.

Поддержка криптобиблиотек Bouncy Castle весьма полезна. В основе архитектуры 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 или замечательная библиотека Apache PDFBox. Последняя активно поддерживается и обладает богатым набором функций:

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

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

Автор: GlobalSign_admin

Источник


* - обязательные к заполнению поля