[ 
https://issues.apache.org/jira/browse/PDFBOX-2141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14039959#comment-14039959
 ] 

Petr Slaby commented on PDFBOX-2141:
------------------------------------

My observation was that the coordinates arriving to the AxialShadingContext in 
getRaster() were not what the shading expects. Not applying the transform to 
the graphics fixed it. 

The problem will be that, regardless of whether the transform is applied to the 
graphics or to the glyphs, the coordinates arriving to getRaster() are always 
the same. However, the transform applied to the cords field in the constructor 
of AxialShadingContext is the one that was set to the graphics, i.e. it is a 
different one if the graphics was transformed. 

> Shading not applied to text
> ---------------------------
>
>                 Key: PDFBOX-2141
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2141
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 1.8.5, 1.8.6, 2.0.0
>            Reporter: Petr Slaby
>            Priority: Minor
>         Attachments: 000004_ShadingPatternTextPDF.pdf, PDFBOX-1917.pdf-1.png, 
> PDFBOX-1917.pdf-1.png-diff.png, PDFBOX-1917.pdf-9.png, 
> PDFBOX-1917.pdf-9.png-diff.png, PDFBOX-2135.pdf-2.png, 
> PDFBOX-2135.pdf-2.png-diff.png, PageDrawer.writeFont.java.patch
>
>
> The attached PDF draws a text filled with horizontal shading going from red 
> to blue. When rendered via PDFBox, the text is completely filled with red. 
> The problem is that AxialShadingContext#getRaster() gets called with 
> positions that completely fell outside of the range stored in its coords[] 
> field. The fix seems to be to set glyph transform rather than graphics2d 
> transform in PageDrawer#writeText() as shown in the attached patch.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to