iText-无边框的圆形矩形
有没有可能有一个没有边框的圆形矩形?下面的代码创建圆形矩形和边框大小为0f和1f的矩形。对于roundRectangle,当线宽设置为0f时,仍有可见边框,但对于边框为0f的矩形,情况并非如此 以下是我正在使用的代码:iText-无边框的圆形矩形,itext,border,Itext,Border,有没有可能有一个没有边框的圆形矩形?下面的代码创建圆形矩形和边框大小为0f和1f的矩形。对于roundRectangle,当线宽设置为0f时,仍有可见边框,但对于边框为0f的矩形,情况并非如此 以下是我正在使用的代码: magazine = new Document(PageSize.LETTER,0,0,0,0); pdfw = PdfWriter.getInstance(magazine, new FileOutputStream("out.pdf")); magaz
magazine = new Document(PageSize.LETTER,0,0,0,0);
pdfw = PdfWriter.getInstance(magazine, new FileOutputStream("out.pdf"));
magazine.open();
canvas = pdfw.getDirectContent();
canvas.rectangle(0,0,600,750);
canvas.setColorFill(BaseColor.ORANGE);
canvas.fillStroke();
canvas.setColorStroke(BaseColor.BLACK);
canvas.setColorFill(BaseColor.GRAY);
canvas.setLineWidth(1f);
llx = 100;
lly = 100;
wid = 100;
hei = 100;
canvas.roundRectangle(llx,lly, wid, hei, 10);
canvas.fillStroke();
llx = 100;
lly = 210;
wid = 100;
hei = 100;
canvas.rectangle(llx,lly, wid, hei);
canvas.fillStroke();
canvas.setColorStroke(BaseColor.BLACK);
canvas.setColorFill(BaseColor.WHITE);
canvas.setLineWidth(0f);
llx = 210;
lly = 100;
wid = 100;
hei = 100;
canvas.roundRectangle(llx,lly, wid, hei, 10);
canvas.fillStroke();
llx = 210;
lly = 210;
wid = 100;
hei = 100;
canvas.rectangle(llx,lly, wid, hei );
canvas.fillStroke();
在PDF中绘制直线和形状时,使用路径构造操作符。以下方法引入了一个
re
(矩形)操作符来构造矩形
canvas.rectangle(0,0,600,750);
iText还提供了方便的方法。例如:以下方法引入了一个序列m
(移动到),l
(行到),c
(曲线到),。。。操作员:
canvas.roundRectangle(llx,lly, wid, hei, 10);
一旦构建了路径,就可以使用路径绘制操作符实际绘制某些内容。iText有不同的fill()
,stroke()
和fillStroke()
变体
您正在使用此方法:
canvas.fillStroke();
这意味着使用填充颜色填充路径,并使用笔划颜色笔划路径。在您的问题中,您表示只希望填充路径(您希望为圆角矩形内的内容着色);您不希望对其进行笔划(不希望绘制圆角矩形的边框)
这很容易实现。只需将fillStroke()
替换为fill()
:
现在,您将只填充圆角矩形,而不绘制其边框
mkl的评论:
线宽为0表示可以以设备分辨率渲染的最细线条:1设备像素宽
这是正确的。一种常见的误解是,将线条宽度更改为0意味着调用stroke()
时不会绘制线条。如果你不想看到一条线,解决方法很简单:不要划它。对于边框为0f的矩形来说,这是错误的,因为线宽为0表示可以以设备分辨率渲染的最细的线:1设备像素宽,参见规范。
canvas.fill();