Какие типы изображений поддерживает iText?

99
23 апреля 2021, 23:10

Я хочу добавить PNG-изображение в PDF-файл, но я знаю, что PDF не поддерживает PNG-файлы. Значит ли это, что я не могу использовать PNG-файлы в iText?

Answer 1

iText поддерживает изображения форматов JPEG, JPEG2000, GIF, PNG, BMP, WMF, TIFF, CCITT и JBIG2. Это не значит, что эти типы изображений также поддерживаются в PDF. Если определенный тип изображения (например, PNG) не поддерживается в PDF, iText конвертирует его в тот тип изображения, который определен в спецификации PDF.

• Изображения формата JPEG хранятся в iText в исходном виде. Можно взять потоковое содержимое Image XObject формата JPEG, скопировать его в файл, и у вас получится правильное изображение в формате JPEG. Следующий фильтр позволяет распознать эти изображения: /DCTDecode.

• Формат JPEG2000 поддерживается с версии PDF 1.5. Название фильтра — JPXDecode.

• PDF поддерживает изображения со сжатием LZW (оно используется для GIF-изображений), но iText декодирует GIF-изображения в изображения RAW. Если создать Image с помощью iText и указать путь к GIF-файлу, то в PDF-файле получится изображение с фильтром /FlateDecode.

• Изображения в формате PNG не поддерживаются в PDF-файлах, поэтому iText декодирует PNG-изображения в RW. Если пространство цветов изображения DeviceGray и имеет 1 бит на компонент, то будут использованы метод сжатия CCITT и фильтр /CCITTFaxDecode. В обратном случае будет использован фильтр /FlateDecode.

• BMP-файлы хранятся в группе сжатых пикселей с использованием фильтра /FlateDecode.

• С форматом WMF ситуация особая. Если вставить WMF-файл в PDF-документ с помощью iText, то iText конвертирует изображение в синтаксис PDF. iText создаст объект Form XObject вместо добавления Image XObject.

• Когда данные изображения кодируются с использованием факсимильного стандарта CCITT, используется фильтр /CCITTFaxDecode. Это обычно монохромные изображения с одним битом на пиксель.

• Помимо этого, в iText могут обрабатываться TIFF-файлы. В зависимости от параметров TIFF-файлов iText решает использовать /CCITTFaxDecode, /FlateDecode или даже /DCTDecode в качестве фильтра.

• Для JBIG2 используется фильтр /JBIG2Decode.

Обычно с форматом изображений сложности не возникают. Класс Image сам выбирает правильный метод сжатия. Дополнительная информация. PDF-файлы поддерживают прозрачность, однако стоит помнить, что прозрачные изображения не поддерживаются в PDF. Одно изображение, содержащее прозрачные области, может быть конвертировано в два разных изображения.

  1. Непрозрачное изображение.
  2. Маска изображения. Все это происходит в самом PDF-файле. Если добавить прозрачное изображение в PDF-файл, то его нельзя будет оттуда экспортировать. Придется выгружать два изображения: непрозрачную версию и маску.
READ ALSO
No IDEA annotations attached to the JDK

No IDEA annotations attached to the JDK

No IDEA annotations attached to the JDK 18 (D:\Program Files\Java\jdk1

97
Как самым простым способом передать объект из MongoDB в Angular?

Как самым простым способом передать объект из MongoDB в Angular?

В интернете просмотрел уже кучу всего и про Angular, и про NodeJS с Express, и про MongoDB, но вот как объединить их вместе без танцев с бубном не могу отыскатьЯ...

77
Обрезать число после второго знака после запятой

Обрезать число после второго знака после запятой

Нужно обрезать число поле второго знака после запятой, но в зависимосити от локали разделитель может быть разный

100
AJAX при коде ответа 200 (ок) заходит в error, а не в success

AJAX при коде ответа 200 (ок) заходит в error, а не в success

При этом, вот что выводится в консоли

86