我使用iTextSharp.text.pdf.PdfContentByte方法绘制从svg到pdf的一些路径:moveTo,LineTo和CurveTo。它适用于简单路径,但有些路径有切割方块。 例如
<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和c = curveto由z = closepath完成的点。接下来M,C和Z在图中切出一个洞。
如何使用iTextSharp以PDF格式绘制它?如何通过ContentByte.Fill();?
从现有路径中剪切一些内部路径以填充它答案 0 :(得分:1)
请查看我书中figure 14.2第一行的星形。
使用Fill()
方法填充第一个形状。此方法使用非零绕组编号规则来确定是否应填充形状。阅读您的问题,我假设您要使用奇偶规则,在这种情况下,您需要使用EoFill()
方法而不是Fill()
方法。