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
изменить словарную статью для этого конкретного ресурса.