2013-11-01 55 views
0

使用iTextSharp.text.pdf.PdfContentByte方法绘制一些从svg到pdf的路径:moveTo,LineTo和CurveTo。它对于简单路径工作正常,但有些路径具有切割正方形。 例如使用iTextSharp在PDF上绘制矢量图形(填充有孔的路径)

<path 
    style="fill:#1034ff;fill-opacity:1;fill-rule:evenodd;stroke:none" 
    d="m 128.5625,106.65625 c -54.285714,37.14286 -54.285714,174.28571 0,260 100,51.42857 434.29464,34.28571 511.4375,0 31.42857,-31.42857 25.71429,-217.14286 0,-260 -31.42857,-34.285714 -460.00893,-42.857143 -511.4375,0 z M 611.4375,232.375 c -1.10965,39.4333 -70.01443,99.97768 -150,71.40625 -78.01486,-27.86748 -164.28571,16.61409 -150,-71.40625 6.31987,-38.93939 67.15729,-71.4375 150,-71.4375 75.65298,0.52477 151.5294,17.08767 150,71.4375 z" 
    id="rect3774" 
    inkscape:connector-curvature="0" 
    sodipodi:nodetypes="cccccssccs" /> 

电流路径具有M =通过MoveTo,以Z = closepath完成C = curveto点。接下来的M,C和Z在图中切出一个洞。

如何使用iTextSharp在PDF中绘制它?如何从现有路径中删除一些内部路径以便通过ContentByte.Fill();填充它?

+0

*我如何使用iTextSharp绘制PDF?* - 您的意思是细节还是您需要Bruno提供的偶数/奇数提示提示? – mkl

+0

是的,我只需要提示EoFill和布鲁诺给我答案。 – JohnJ

回答

1

请看我书第一行figure 14.2的星形。

使用Fill()方法填充第一个形状。该方法使用非零卷绕编号规则来确定是否应填充形状。读你的问题,我假设你想要使用偶数规则,在这种情况下,你需要使用EoFill()方法,而不是Fill()方法。