0

我使用 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" />

当前路径具有由 z=closepath 完成的 am=moveto 和 c=curveto 点。接下来 M、C 和 Z 在图中切一个洞。

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

4

1 回答 1

1

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

使用该Fill()方法填充第一个形状。此方法使用非零缠绕数规则来确定是否应填充形状。阅读您的问题,我假设您想使用even-odd rule,在这种情况下您需要使用EoFill()方法而不是Fill()方法。

于 2013-11-01T09:32:50.833 回答