Запись изображений с высоким разрешением (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 с другой стороны встраивает исходное изображение и масштабирует его. Таким образом, при распечатке с высоким разрешением первый обеспечивает только низкодисперсное, менее разрешенное изображение, в то время как последний позволяет выводить изображение с более высоким разрешением.

Другие вопросы по тегам