Itextpdf :矩形中的文本和颜色
Itextpdf : text and color in rectangle
是否可以使用 iText 在矩形中设置带有背景颜色的文本?
我有以下代码:
PdfContentByte canvas = writer.getDirectContent();
BaseColor bColor = new BaseColor(0xFF, 0xD0, 0x00);
canvas.setColorFill(bColor);
canvas.fill();
canvas.rectangle(rect.getLeft(), rect.getBottom() - 1.5f, rect.getWidth(), rect.getHeight());
canvas.stroke();
但是颜色好像被忽略了。我做错了什么?
请输入
canvas.setColorFill(bColor);
canvas.fill();
在
之后
canvas.rectangle(rect.getLeft(), rect.getBottom() - 1.5f, rect.getWidth(), rect.getHeight());
同样的问题iText PDF Rectangle fill with color
你做错了顺序。
你需要:
- 更改图形状态(例如填充颜色、描边颜色...)
- 创建路径
- 填充and/or描边路径
您可以切换第 1 步和第 2 步,但第 3 步始终需要放在最后。
所以你应该像这样调整你的代码:
PdfContentByte canvas = writer.getDirectContent();
BaseColor bColor = new BaseColor(0xFF, 0xD0, 0x00);
canvas.setColorFill(bColor);
canvas.rectangle(rect.getLeft(), rect.getBottom() - 1.5f, rect.getWidth(), rect.getHeight());
canvas.fillStroke();
注意这也是错误的:
PdfContentByte canvas = writer.getDirectContent();
BaseColor bColor = new BaseColor(0xFF, 0xD0, 0x00);
canvas.setColorFill(bColor);
canvas.rectangle(rect.getLeft(), rect.getBottom() - 1.5f, rect.getWidth(), rect.getHeight());
canvas.fill();
canvas.stroke();
在这种情况下,矩形会被canvas.fill()
填充,但是不会有边框,因为用rectangle()
方法创建的路径在你填充的时候已经处理过了. canvas.fill();
和 canvas.stroke();
之间没有创建新路径,因此 stroke()
运算符不会执行任何操作。
是否可以使用 iText 在矩形中设置带有背景颜色的文本?
我有以下代码:
PdfContentByte canvas = writer.getDirectContent();
BaseColor bColor = new BaseColor(0xFF, 0xD0, 0x00);
canvas.setColorFill(bColor);
canvas.fill();
canvas.rectangle(rect.getLeft(), rect.getBottom() - 1.5f, rect.getWidth(), rect.getHeight());
canvas.stroke();
但是颜色好像被忽略了。我做错了什么?
请输入
canvas.setColorFill(bColor);
canvas.fill();
在
之后 canvas.rectangle(rect.getLeft(), rect.getBottom() - 1.5f, rect.getWidth(), rect.getHeight());
同样的问题iText PDF Rectangle fill with color
你做错了顺序。
你需要:
- 更改图形状态(例如填充颜色、描边颜色...)
- 创建路径
- 填充and/or描边路径
您可以切换第 1 步和第 2 步,但第 3 步始终需要放在最后。
所以你应该像这样调整你的代码:
PdfContentByte canvas = writer.getDirectContent();
BaseColor bColor = new BaseColor(0xFF, 0xD0, 0x00);
canvas.setColorFill(bColor);
canvas.rectangle(rect.getLeft(), rect.getBottom() - 1.5f, rect.getWidth(), rect.getHeight());
canvas.fillStroke();
注意这也是错误的:
PdfContentByte canvas = writer.getDirectContent();
BaseColor bColor = new BaseColor(0xFF, 0xD0, 0x00);
canvas.setColorFill(bColor);
canvas.rectangle(rect.getLeft(), rect.getBottom() - 1.5f, rect.getWidth(), rect.getHeight());
canvas.fill();
canvas.stroke();
在这种情况下,矩形会被canvas.fill()
填充,但是不会有边框,因为用rectangle()
方法创建的路径在你填充的时候已经处理过了. canvas.fill();
和 canvas.stroke();
之间没有创建新路径,因此 stroke()
运算符不会执行任何操作。