JPedal getPageAsImage() возвращает неполные изображения

У меня есть куча файлов PDF, созданных iText, которые я хочу преобразовать в изображения. Я использую JPedal для этого, и это работает в 99% случаев, но иногда изображения неполные. Это означает, что содержимое форм или таблиц отсутствует или если страница содержит только изображение (отсканированное изображение страницы), полученное изображение будет полностью пустым.

Я заметил, что это происходит, только если файл PDF содержит отсканированные страницы. Это не совсем А4, как остальная часть документа.

Я попытался прочитать файлы с помощью iText, создать новый во временном байтовом массиве, который содержит только страницы формата A4, и передать его JPedal. Также я установил выравнивание в true. Но ничего не изменилось.

Есть идеи, что вызывает эту проблему?

РЕДАКТИРОВАТЬ: я использую jpedal-lgpl.jar в версии 4.70. Я искал более свежий пакет и нашел версию 4.92b23. Благодаря этому содержимое форм конвертируется правильно, но отсканированные страницы остаются пустыми, а их части выглядят так, как показывают старые телевизоры, когда у них нет сигнала.

Я бы хотел использовать новейшую версию, но не могу найти ссылку для скачивания. Решения IDR прекратили публиковать версию lgpl?

2 ответа

Вы использовали функцию выравнивания iText или jPedal?

"Классическая" версия jpedal LGPL остановилась с версии 4.92b23. Первая версия, не выпущенная под LGPL, была 4.93 и позже 5.0. Автор удалил его полностью из sourceforge некоторое время назад, что противоречит идее open source imho, но это уже другая история...

Однако, в зависимости от используемой версии Java, существует новый LGPL JPedal. Вместо Swing/AWT он использует JavaFX, но вы по-прежнему можете преобразовывать изображения, как раньше. Так что, если вы можете использовать Java 1.8, вы можете использовать эту версию LGPL и посмотреть, решит ли это вашу проблему...

Обновление: чтобы исправить проблемы с вашими формами, вы также можете сгладить с помощью jpedal: -Dorg.jpedal.flattenForm=true (или же System.setProperty("org.jpedal.flattenForm","true");)

Последняя возможность, которая приходит на ум, - это поиграть с другими опциями jpedal: https://www.idrsolutions.com/jpedal/support/jvm-flags/

У вас есть возможность предоставить такой проблемный файл PDF для анализа?

Мы платим клиенту JPedal и столкнулись с некоторыми проблемами с потоками некоторое время назад. Проблема была решена довольно быстро с помощью IDR.

Попробуйте выполнить рендеринг в синхронизированном блоке и посмотрите, сохраняется ли проблема.

Другие вопросы по тегам