我尝试在图像中创建矩形,当我尝试使用坐标创建矩形时 两个矩形一个接一个地放置。
以下是我如何创建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);
答案 0 :(得分:1)
请查看Rectangles
示例,了解如何创建类似rectangles.pdf的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作为边框宽度,白色作为边框颜色。
它没有比这更简单。