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.
Попробуйте выполнить рендеринг в синхронизированном блоке и посмотрите, сохраняется ли проблема.