СофтХабрахабр

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

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

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

LibrePDF/OpenPDF

forked from rtfarte/OpenPDF

2. forked from kulatamicuda/iText-4.

2. forked from daviddurand/iText-4.

2. forked from ymasory/iText-4.

2. Все форки ведут историю от одной версии iText 4. Сами разработчики iText перешли на AGPL и сконцентрировались над созданием пятой версии, чтобы более успешно продавать коммерческий софт. 0, которая вышла восемь лет назад и стала последней версией под свободной лицензией. Но свободный проект тоже не погиб, а продолжил развитие силами всего сообщества.
За прошедшее время библиотека в некоторых отношениях улучшена, исправлено несколько багов. К настоящему времени они доросли до версии iText 7. Если при генерации PDF-файлов вам требуется какая-то конкретная функциональность, то предложите патч и реализуйте эту функцию для всех. Хотя изменения не слишком значительные, но разработка продолжается, и внести свой вклад может каждый.

2. С момента старой «оригинальной» версии 4. 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 лежит набор низкоуровневых API, которые реализуют все криптографические алгоритмы. Поддержка криптобиблиотек Bouncy Castle весьма полезна. Есть поддержка стандартных высокоуровневых криптографических API платформ Java и C#.

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

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

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

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

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»