PDFBox uses Java AWT RenderingHints before converting a PDF page to a BufferedImage object. Of the eleven options RenderingHints offers, PDFBox uses only three, as follows, and can be checked at PDFBox’s PDFRenderer class.
KEY_INTERPOLATION
The INTERPOLATION hint controls how image pixels are filtered or resampled during an image rendering operation.
PDBox uses the VALUE_INTERPOLATION_NEAREST_NEIGHBOR, the color sample of the nearest neighboring integer coordinate sample in the image is used.
KEY_RENDERING
The RENDERING hint is a general hint that provides a high level recommendation as to whether to bias algorithm choices more for speed or quality when evaluating tradeoffs.
PDFBox uses the VALUE_RENDER_QUALITY, rendering algorithms are chosen with a preference for output quality.
KEY_ANTIALIASING
The ANTIALIASING hint controls whether or not the geometry rendering methods of a Graphics2D object will attempt to reduce aliasing artifacts along the edges of shapes. A typical antialiasing algorithm works by blending the existing colors of the pixels along the boundary of a shape with the requested fill paint according to the estimated partial pixel coverage of the shape.
PDFBox uses the VALUE_ANTIALIAS_OFF, rendering is done without antialiasing.
The other RenderingHints keys available are:
KEY_DITHERINGKEY_TEXT_ANTIALIASINGKEY_TEXT_LCD_CONTRASTKEY_FRACTIONALMETRICSKEY_ALPHA_INTERPOLATIONKEY_COLOR_RENDERINGKEY_STROKE_CONTROLKEY_RESOLUTION_VARIANT
If you want to modify the default PDFBox values or use other RenderingHints keys, you should create a new RenderingHints object and set it into PDFRenderer with its setRenderingHints method.
RenderingHints r = new RenderingHints(null);
r.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
r.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
r.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
PDFRenderer pdfRenderer = new PDFRenderer(document);
pdfRenderer.setRenderingHints(r);