Извлечение изображений TIFF из PDF без декодирования - PullRequest
0 голосов
/ 06 ноября 2018

С помощью iText 5 я хотел бы извлечь все изображения TIFF из заданного файла PDF и сохранить их как файлы TIFF. Примеры и другие посты ( 1 , 2 ) используют следующий метод:

  1. Создать PdfImageObject из потока PDF, который в строке 189 декодирует поток изображения (если имеется соответствующая реализация фильтра).
  2. Вызов PdfImageObject#getImageAsBytes(), который возвращает JPEG (оригинал), PNG (перекодированный) или TIFF (в случае 8 бит на пиксель).

В результате изображение TIFF с глубиной цвета 1 бит преобразуется в формат PNG, а это не то, что мне нужно.

Другой подход заключается в вызове PdfImageObject#getBufferedImage(), который декодирует изображение на шаге (2) в растр, а затем снова кодирует его как TIFF, используя ImageIO.write(bufferedImage, "tiff", file).

Как видно, это неэффективно. Другое решение, показанное в этой публикации , демонстрирует, как сохранить закодированный поток изображений TIFF в файл, добавив к нему заголовок TIFF - это решение, которое я ищу.

Может ли тут помочь iText?

1 Ответ

0 голосов
/ 22 июля 2019

PDF-изображения , а не TIFF.

Однако

PDF-файлы могут содержать изображения, использующие методы сжатия, которые также используются в TIFF, например Flate, CCITT, LZW, JPEG.

...