JYR created FOP-3058:
------------------------

             Summary: AFP-Renderer does not honour fill-rule 'nonzero' of SVG 
path.
                 Key: FOP-3058
                 URL: https://issues.apache.org/jira/browse/FOP-3058
             Project: FOP
          Issue Type: Bug
          Components: image/svg, renderer/afp
    Affects Versions: 2.7
            Reporter: JYR
         Attachments: GreenCrossAsAFP.png, GreenCrossAsPDF.png, 
TestWithSVGPath-1.7z

Hi there,

We have just isolated an interesting bug in the AFP renderer.

We are embedding some SVG graphics in a FO file and the AFP renderer does not 
seem to take the "fill-rule" attribute into account.
It seems to ignore the fill-rule 'nonzero' of our path and defaults to 
'evenodd'.

The PDF renderer does honour this fill-rule, but not the AFP renderer.

We have isolated this issue in a test project. Just deflate 
[^TestWithSVGPath-1.7z]. All the necessary files are provided.

This is the correct output of the PDF renderer
!GreenCrossAsPDF.png!

This is the output of the AFP renderer.
!GreenCrossAsAFP.png!

FOP integration:
 * We are calling FOP via java.exe.
 * FOP is configured with an xconf file.

Extract of FO-File
{code:xml}
<fo:instream-foreign-object>
        <svg width="46mm" height="46mm" version="1.1" viewBox="0 0 130.394 
130.394" xmlns="http://www.w3.org/2000/svg";>
                <g font-family="Helvetica,Arial,&quot;Liberation Sans&quot;" 
transform="translate(0 130.394)">
                        <!-- Red background -->
                        <path fill="red" shape-rendering="crispEdges" d="
                                                                M56.693,-73.701 
                                                                h17.008
                                                                v17.008h
                                                                -17.008
                                                                z"/>
                        <!-- Green cross, vertical block first, then horizontal 
-->
                        <path fill="green" fill-rule="nonzero" 
shape-rendering="crispEdges" d="
                                                                M63.543,-70.709
                                                                h 3.307
                                                                v 11.024
                                                                h -3.307
                                                                z
                                                                m-3.858,3.858
                                                                h11.024
                                                                v3.307
                                                                h-11.024
                                                                z
                                                                "/>
                        <!-- 2 Rectangles as workaround for Bug in AFP-Renderer 
-->
                        <!-- <rect x="59.685" y="-66.85" width="11.024" 
height="3.307" fill="powderblue"/> -->
                        <!-- <rect x="63.543" y="-70.709" height="11.024" 
width="3.307" fill="powderblue"/> -->
                </g>
        </svg>
</fo:instream-foreign-object>
{code}
We spotted this bug with FOP version 0.95, but it still occurs with FOP 2.7.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to