Я хочу добавить PNG-изображение в PDF-файл, но я знаю, что PDF не поддерживает PNG-файлы. Значит ли это, что я не могу использовать PNG-файлы в iText?
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. Одно изображение, содержащее прозрачные области, может быть конвертировано в два разных изображения.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
No IDEA annotations attached to the JDK 18 (D:\Program Files\Java\jdk1
В интернете просмотрел уже кучу всего и про Angular, и про NodeJS с Express, и про MongoDB, но вот как объединить их вместе без танцев с бубном не могу отыскатьЯ...
Нужно обрезать число поле второго знака после запятой, но в зависимосити от локали разделитель может быть разный
При этом, вот что выводится в консоли