Itext 如何将着色图案添加到自定义形状

Itext 如何将着色图案添加到自定义形状,itext,Itext,我用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.clos

我用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
BaseColor.BLUE
的阴影填充。我就是找不到一种方法用iText来实现这一点?

我创建了一个名为的示例,它使用从粉色到蓝色的着色图案填充正在绘制的三角形,如下图所示:

如您所见,您需要创建一个
PdfShading
对象。我创建了一个从坐标
(x,y)
到坐标
(x+侧,y)
的从粉色到蓝色不等的轴向着色。使用此轴向着色,可以创建
PdfShadingPattern
,该模式可用作
setShadingFill()
方法的参数,以设置
画布的填充颜色


请参阅以获取完整的源代码。

这正是我想要的,非常好。非常感谢
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();