[英]Rectangle Overlapping in IText Pdf Generating
我试图像图像中那样创建矩形,当我尝试使用坐标创建矩形时,两个矩形又一个接一个地放置。
这是代码如何创建Rectangle的代码。
当我给出两个矩形的坐标时,它们要一个接一个地生成,我希望它们像图像中那样重叠。
PdfWriter writer= PdfWriter.getInstance(document, new FileOutputStream(filename));
document.open();
PdfContentByte cb = writer.getDirectContent();
Rectangle rect,rect1;
rect = new Rectangle(p1,p2,p3,p4); // CO-ORDINATES OF RECTANGLE
rect.setBorder(Rectangle.BOX);
cb.rectangle(rect);
请看一下“ Rectangles
示例,以了解如何创建看起来像矩形的PDF:
创建矩形时,需要矩形的左下角和右上角的坐标。 例如:
float llx = 36;
float lly = 700;
float urx = 200;
float ury = 806;
您已经知道需要一个PdfContentByte
实例来绘制第一个矩形:
PdfContentByte canvas = writer.getDirectContent();
Rectangle rect1 = new Rectangle(llx, lly, urx, ury);
rect1.setBackgroundColor(BaseColor.LIGHT_GRAY);
rect1.setBorder(Rectangle.BOX);
rect1.setBorderWidth(1);
canvas.rectangle(rect1);
为了清楚起见,我定义了背景色,并将边框宽度设置为1 pt。
现在,当你想添加重叠在你的问题中所述相同的方法,额外的矩形,你需要改变llx
和ury
值。 那是基础数学。 例如:
Rectangle rect2 = new Rectangle(llx + 60, lly, urx, ury - 40);
rect2.setBackgroundColor(BaseColor.DARK_GRAY);
rect2.setBorder(Rectangle.BOX);
rect2.setBorderColor(BaseColor.WHITE);
rect2.setBorderWidth(0.5f);
canvas.rectangle(rect2);
为了确保您看到差异,我现在使用了另一种背景色,并将边框宽度定义为0.5 pt,将边框颜色定义为白色。
没有比这更简单的了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.