[ 
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)

Reply via email to