Запись изображений с высоким разрешением (DPI) в PDF
Я видел код для извлечения изображений на основе изображения DPI с использованием PDFBox, как показано ниже
PDDocument document = PDDocument.load(path);
PDFImageWriter writer = new PDFImageWriter();
boolean success = writer.writeImage(document, "jpg", "", 1, 1,
"C:\\Image Quality\\150", BufferedImage.TYPE_INT_RGB, 150);
return document;
В приведенном выше коде я могу указать разрешение изображения (150) при извлечении изображения из PDF. С более высоким разрешением я получаю взамен большее изображение.
Теперь я хочу обратить вспять это означает, что нужно указать разрешение /dpi изображения при записи изображения в PDF, но следующий код не предоставляет такие параметры для указания DPI? Кто-нибудь может направить меня туда, где мне не хватает
PDPageContentStream contentStream = null;
contentStream = new PDPageContentStream(document, userPage);
contentStream.drawImage(img, 60, 60);
contentStream.close();
Пожалуйста, укажите, где я могу передать параметр разрешения /DPI (поскольку размер изображения превышает размер страницы pdf) при записи изображения в PDF?
Спасибо,
1 ответ
В ответ на ваш предыдущий вопрос вам сказали, что dpi вряд ли имеет значение в контексте PDF.
Как уже было сказано, вы можете достичь своей цели, используя метод PDPageContentStream.drawXObject(PDXObject xobject, float x, float y, ширина float, высота float)
Изменение размера (т.е. уменьшение частоты дискретизации) изображения в его исходной форме с последующим использованием drawImage внедряет уменьшенное изображение.
Использование drawXObject с другой стороны встраивает исходное изображение и масштабирует его. Таким образом, при распечатке с высоким разрешением первый обеспечивает только низкодисперсное, менее разрешенное изображение, в то время как последний позволяет выводить изображение с более высоким разрешением.