iText 7 pdfSweep и JPX-кодированное составное изображение (сжатый MRC PDF)

У меня есть сжатый MRC PDF (изображения в кодировке JPX), который я не могу отредактировать с помощью iText 7 pdfSweep, так как генерируется исключение ImageReadException.

Caused by: org.apache.commons.imaging.ImageReadException: Can't parse this format.
at org.apache.commons.imaging.Imaging.getImageParser(Imaging.java:731)
at org.apache.commons.imaging.Imaging.getImageInfo(Imaging.java:703)
at org.apache.commons.imaging.Imaging.getImageInfo(Imaging.java:637)
at com.itextpdf.pdfcleanup.PdfCleanUpFilter.processImage(PdfCleanUpFilter.java:343)
... 13 more

Знаете ли вы какие-либо обходные пути или решение этой проблемы? Очевидным обходным решением было бы заменить jp2 (jpx) в PDF другим форматом изображения и выполнить редактирование этого измененного PDF, однако в этом случае преимущества сжатия MRC теряются, не говоря уже об общей скорости такого преобразование, а затем редактирование.

1 ответ

Решение

(Разработчик iText здесь)

Как видите, iText использует org.apache.commons обрабатывать изображения. В прошлом у нас были некоторые проблемы с известными ошибками в этой внешней библиотеке. Возможное решение состоит в том, чтобы раскошелиться org.apache.commons спроектировать, внедрить исправление и отправить запрос на получение.

Таким образом, все выиграют, и изменение будет автоматически включено в iText также.

Конечно, если вы являетесь платящим клиентом, то сообщение об этой проблеме через службу поддержки iText может побудить нас выполнить запрос на получение.

Что касается обходного пути, я думаю, что вы уже предложили подходящую идею.

  • обработать все изображения
  • преобразовать их в другой формат (при необходимости)
  • передать измененный документ в pdfSweep

Более подробно (шаг 1 и 2)

используя IEventListener вы можете получить базовый BufferedImage данного ресурса, и вы можете использовать ByteArrayOutputStream а также ImageIO перекодировать ваше изображение в стандартную JPG или PNG. Вы можете использовать iText изменить словарную статью для этого конкретного ресурса.

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