You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by Olivier DOREMIEUX <ol...@doremieux.org> on 2011/01/14 09:09:57 UTC
PDF Quality
Hi,
I wasn't too happy with the quality of the generated PDF, especially
because I am generating the PDF from images, so I did play a little bit
with PDJpeg
In public PDJpeg(PDDocument doc, BufferedImage bi) throws IOException {
I did replace :
//ImageIO.write(bi, "jpeg", os);
By
ImageWriter writer = null;
Iterator iter = ImageIO.getImageWritersByFormatName("jpg");
if (iter.hasNext()) {
writer = (ImageWriter) iter.next();
}
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
writer.setOutput(ios);
// Set the compression quality
JPEGImageWriteParam iwparam = new
JPEGImageWriteParam(Locale.getDefault());
iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwparam.setCompressionQuality(1.0f);
// Write the image
writer.write(null, new IIOImage(bi, null, null), iwparam);
writer.dispose();
The quality is much better. I think by default the compression quality
is 0.75
The PDF file is bigger. So maybe we could have a global parameter to set
the desired quality, and use it in iwparam.setCompressionQuality(1.0f);
Hope this help and which that change can be integrated.
Thanks,
Olivier DOREMIEUX