Как конвертировать PDF (он содержит только изображения tiff) в изображение JPG в java

Когда я пытаюсь преобразовать PDF (330 КБ содержит 3 изображения в формате TIFF) в изображения JPG, каждое изображение преобразуется в очень большой размер, общий размер изображений превышает 1 МБ. Как можно уменьшить размер обратно до 330 КБ с хорошим или высоким качеством изображения JPG?

Извлечение каждой страницы PDF и передача в jpgwriter.

PDPage pages = document.getPage(page);
BufferedImage bim = pdfRenderer.renderImage(page);
ImageWriter jpgWriter = 
ImageIO.getImageWritersByFormatName("jpg").next();
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
jpgWriteParam.setCompressionQuality(0.7f);

ImageOutputStream outputStream = createOutputStream(); 
jpgWriter.setOutput(outputStream);
IIOImage outputImage = new IIOImage(image, null, null);
jpgWriter.write(bim, outputImage, jpgWriteParam);
jpgWriter.dispose();

person Sampath    schedule 26.03.2020    source источник
comment
Только не конвертируйте в JPEG.   -  person Olivier    schedule 26.03.2020
comment
Отвечает ли это на ваш вопрос? Pdf для изображения с использованием java   -  person Nazir    schedule 26.03.2020
comment
Нет, я пробовал с BufferedImage с DPI и без него. pdfRenderer.renderImage(страница) pdfRenderer.renderImageWithDPI(страница, 72f) pdfRenderer.renderImageWithDPI(pge, 72f, ImageType.RGB)   -  person Sampath    schedule 26.03.2020
comment
Если это черно-белые сканы текста, то конвертировать их в JPEG действительно ужасная идея, потому что такие изображения обычно сжаты CCITT Fax G4 (которое вы ошибочно идентифицируете как tiff), и это обычно лучше всего. Все, что вы можете сделать, это поиграть с setCompressionQuality.   -  person Tilman Hausherr    schedule 26.03.2020


Ответы (1)


У нас есть новые методы и поставщики услуг, которые предоставляют эту функцию как SAAS. PDF4me лучший среди них. Вы можете легко сделать это с помощью их библиотеки JAVA. См. https://developer.pdf4me.com/docs/api/basic-functionality/create-image/, чтобы получить библиотеку и использовать ее в JAVA.

--Спасибо

person Abins Chittilappillly James    schedule 27.03.2020