Java библиотеки для работы с PDF
Сейчас уже, слава Богу, не надо объяснять людям преимущества формата PDF. А так как формат этот очень распространённый, то и Java-программистам надо с ним как-то работать. И естественно, не городить свои костыли, а пользоваться существующими наработками. Это и есть небольшой перечень того, что доступно "нахаляву".FOP
FOP - это инструмент для XSL-форматирования, написанный на Java. Он используется в связке с XSLT для преобразования документов XML в формат PDF.Сайт проекта.
PDF Box
PDFBox - библиотека для работы с PDF из Java. Эта библиотека даёт доступ ко всем компонентам PDF документа и позволяет создавать новые документы и работать с существующими документами, в частности доставать из них текст. В комплект поставки входят несколько утилит командной строки для работы с PDF.Сайт проекта.
gnujpdf
gnujpdf - это Java пакет (gnu.jpdf.*), лицензированный под LGPL. У него есть простой интерфейс для создания PDF файлов и их печати при помощи классов, наследующих от java.awt.Graphics и java.awt.PrintJob. Классы PDF пишут в выходной поток в формате PDF вместо обычного формата объекта Graphics, но вызовы методов такие же, как если запись велась на canvas обычного приложения или аплета.Сайт проекта.
jPod
jPod - это уже многофункциональная библиотека для манипулирования PDF и отображения таких документов. Поддерживается работа на разных уровнях абстракции, дописывание информации в уже существующие файлы, работа с разными шрифтами, в том числе и TrueType, чтение из немного неправильных файлов.Сайт проекта.
PDFjet
PDFjet - это коммерческая библиотека для работы с PDF на платформах Java и .NET. Но при этом у неё есть и версия с открытым кодом, у которой есть такие возможности:- Функции рисования: точки, лини, многоугольники, овалы, кривые Безье, звезды, сложные линии и фигуры.
- Текст: поддержка Юникода, установка определённых межзнаковых интервалов, внутренние гиперссылки.
- Добавление к документам изображений следующих форматов: PNG, JPEG и GIF.
iText
iText - библиотека для создания PDF файлов на лету. Кроме неперечисленных у этой библиотеки есть такие возможности:- Использование PDF в web - передача их браузеру;
- создание файлов динамически из XML и баз данных;
- использование интерактивных возможностей PDF (те же гиперссылки);
- добавление сносок, номеров страниц, "водяных знаков";
- разрезание, соединение и другое манипулирование страницами PDF документов;
- добавление цифоровой подписи к файлу PDF.
PJX
PJX - библиотека общего назначения для работы с PDF документами на Java. С поддежкой чтения, разнообразного комбинирования, преобразования и создания PDF документов.Сайт проекта.
JPedal
JPedal - библиотека для работы с PDF из Java, разрабатываемая с 1999 года. За это время были реализованы следующие возможности:- Поддержка различных шрифтов;
- поддержка различных простанств цветов: DeviceRGB, CalRGB, DeviceGRAY, CalGRAY, ICC, DeviceCMYK и DeviceN;
- чтение из файлов tiff, jpg и gif;
- экспорт текста из целого документа, отдельной страницы, из отдельной области страницы по координатам этой области или из таблиц; также можно достать информацию о шрифте и метаданные;
- можно достать любое изображение из PDF с автоматическим преобразованием;
- просмотр, редактирование и экспортирование данных из интерактивных PDF форм;
- механизм поиска по документу с опциональным ограничением страниц для поиска.
UPD:К сожалению, далеко не все возможности доступны в версии с открытым исходным кодом. Кроме нее полезно будет использовать тесно связанную библиотеку для рендеринга изображений JBIG - тоже с открытым кодом.
Сайт проекта.
PDF Clown
PDF Clown для Java (PDF Jester) - это библиотека для чтения, манипулирования и создания PDF файлами с поддержкой различных уровней абстракции.Сайт проекта.
PDF Renderer
Это уже узкоспециализированный инструмент для отображения документов PDF средствами Java2D. Как правило это подразумевает отображение на компоненте JPanel из Swing, но возможно отображение и на других реализациях Graphics2D.Сайт проекта.
ICEpdf
Исходный код этой библиотеки был открыт относительно недавно (на момент написания статьи), но благодаря тёмному проприетарному прошлому набор возможностей уже весьма богат:- Простая интеграция с любыми Java клиентами, полный контроль над конфигурацией, доступной функциональностью и пользовательским интерфейсом;
- малое статическое и динамическое потребление памяти;
- использование на любой реализации Java платформы - нет необходимости в интеграции с каким-то платформо- или архитектурно-зависимым кодом;
- встраиваемость в качестве просмотроващика PDF;
- преобразование PDF в изображения на лету (PNG, JPEG, GIF) - например, на веб-сервере;
- полнофункциональный, эффективный и робастный парсер;
- поддержка всех видов шрифтов;
- оптимизация для различных платформ заменой используемых шрифтов;
- поддержка постепенной загрузки документов - возможность отображение первой страницы, когда весь документ еще не загрузился;
- поддержка Adobe Standard Security (стандарт безопасности Adobe) для защищённых паролем документов (40 или 128-битное шифрование при помощи RC4 или AES);
- и еще множество других функций...
На этом пока всё. Если кто-то пользуется чем-то бесплатным - то милости прошу в комментарии, пополним список. Ну а для чего это надо - например, если использовать что-нибудь из перечисленного в связке с библиотекой для работы с файлами Word, то можно написать своё приложение из разряда самых востребованных у студентов - для конвертации "из pdf в word" и обратно.
Основано на подборке отсюда.
Комментариев нет:
Отправить комментарий