[ https://issues.apache.org/jira/browse/PDFBOX-2302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14124561#comment-14124561 ]
John Hewson commented on PDFBOX-2302: ------------------------------------- That's interesting, this comment suggests that Cairo's anti-aliasing shares the same limitations as Java 2D's: {quote} The problem of seams between adjacent fills is a well known limitation of cairo. There has been plenty written about it on the cairo list [1][2]. It is caused by the incremental antialiasing used by cairo. There is no simple fix. It is inherent in the design [3]. There have been various work arounds suggested (eg full scene antialiasing) but they are all slow and resource intensive. {quote} > Make better use of RenderingHints > --------------------------------- > > Key: PDFBOX-2302 > URL: https://issues.apache.org/jira/browse/PDFBOX-2302 > Project: PDFBox > Issue Type: Improvement > Components: Rendering > Affects Versions: 2.0.0 > Reporter: John Hewson > Assignee: John Hewson > Priority: Minor > Fix For: 2.0.0 > > Attachments: PDFBOX-1691-FORIS-HV.pdf-2.png, > PDFBOX-1691-FORIS-HV.pdf-2.png, PDFBOX-1691-FORIS-HV2-200dpi.png, > PDFBOX-1691-FORIS-HV2-good.png, PDFBOX-1691-FORIS-HV2-poor.png, > PDFBOX-1794-vattenfall1.jpg, PDFBOX-1794-vattenfall1_before.jpg, > bugzilla8677511.jpg, bugzilla8677511_before.jpg, example-striped.pdf, > example-striped.pdf-1.png, mori-cvpr01.pdf > > > PageDrawer doesn't make effective use of Java 2D's RenderingHints. The > situation now is a little odd due to code having been moved around and copied > and pasted. Most of the time we're not making use of higher quality > renderings which are available to us. > Some examples of strangeness: > - drawTilingPattern sets VALUE_FRACTIONALMETRICS_ON, yet this applies only to > AWT fonts > - drawGlyph2D sets VALUE_ANTIALIAS_ON but strokePath and fillPath set it to > VALUE_ANTIALIAS_OFF > - drawBufferedImage sets KEY_INTERPOLATION to > VALUE_INTERPOLATION_NEAREST_NEIGHBOR which is the lowest quality image > scaling method > - shadingFill sets VALUE_ANTIALIAS_OFF (but that might make more sense > because we're Paint-ing these ourselves, OTOH if the canvas is buffered > already for anti-aliasing do we save anything by disabling it?) > - drawPage sets VALUE_ANTIALIAS_ON but this is always overridden by the > various drawing methods > Currently we're missing out on anti-aliasing for paths (other than glyphs) > and we're getting low-quality resizing of images, which makes Type 3 fonts > look particularly ugly. Setting the appropriate rendering hints would improve > this greatly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)