我使用 iText 绘制了一个等边三角形,如下所示
canvas.setColorStroke(BaseColor.BLACK);
int x = start.getX();
int y = start.getY();
canvas.moveTo(x,y);
canvas.lineTo(x + side,y);
canvas.lineTo(x + (side/2), (float)(y+(side*Math.sin(convertToRadian(60)))));
canvas.closePathStroke();
我希望在这个形状中使用多种颜色渐变,即用阴影填充它,其中包括BaseColor.PINK
and BaseColor.BLUE
。我只是找不到使用 iText 执行此操作的方法?
我创建了一个名为阴影填充 http://itextpdf.com/sandbox/objects/ShadedFill填充您正在绘制的三角形,使用从粉红色到蓝色的阴影图案,如图所示阴影填充.pdf http://itextpdf.com/sites/default/files/shaded_fill.pdf:
PdfContentByte canvas = writer.getDirectContent();
float x = 36;
float y = 740;
float side = 70;
PdfShading axial = PdfShading.simpleAxial(writer, x, y,
x + side, y, BaseColor.PINK, BaseColor.BLUE);
PdfShadingPattern shading = new PdfShadingPattern(axial);
canvas.setShadingFill(shading);
canvas.moveTo(x,y);
canvas.lineTo(x + side, y);
canvas.lineTo(x + (side / 2), (float)(y + (side * Math.sin(Math.PI / 3))));
canvas.closePathFillStroke();
如您所见,您需要创建一个PdfShading
目的。我创建了一个从坐标上从粉红色到蓝色变化的轴向阴影(x, y)
到坐标(x + side, y)
。通过这种轴向阴影,您可以创建一个PdfShadingPattern
可以用作的参数setShadingFill()
方法来设置填充颜色canvas
.
See 阴影填充 http://itextpdf.com/sandbox/objects/ShadedFill获取完整的源代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)