Java 使用itext5向PDF中的矩形添加文本

Java 使用itext5向PDF中的矩形添加文本,java,pdf,itext,rectangles,Java,Pdf,Itext,Rectangles,这是我的代码,这里我尝试在矩形中添加文本。没用!矩形已创建,但文本未显示在pdf页面上的任何位置。代码中有几个问题导致文本无法显示 首先,在添加文本后将矩形添加到画布。灰色背景将覆盖绘制的任何文本,并将其隐藏 其次,您的字体大小对于列边界来说太大,所以不会显示文本。 您可以将矩形放大,文本将显示或缩小字体大小 例如,我增加了矩形高度,并将canvas.rectangle调用移动到ColumnText.go之前,因此以下操作应该有效: PdfContentByte canvas = writer.

这是我的代码,这里我尝试在矩形中添加文本。没用!矩形已创建,但文本未显示在pdf页面上的任何位置。

代码中有几个问题导致文本无法显示

首先,在添加文本后将矩形添加到画布。灰色背景将覆盖绘制的任何文本,并将其隐藏

其次,您的字体大小对于列边界来说太大,所以不会显示文本。 您可以将矩形放大,文本将显示或缩小字体大小

例如,我增加了矩形高度,并将canvas.rectangle调用移动到ColumnText.go之前,因此以下操作应该有效:

PdfContentByte canvas = writer.getDirectContent();
Rectangle rect = new Rectangle(0, 805, 594, 820);
rect.setBorder(Rectangle.BOX);
rect.setBorderWidth(1);
rect.setBackgroundColor(BaseColor.GRAY);
rect.setBorderColor(BaseColor.GREEN);

ColumnText ct = new ColumnText(canvas);
ct.setSimpleColumn(rect);
Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18,Font.BOLD);

ct.addElement(new Paragraph("Your Text Goes here!! ",catFont));
ct.go();
canvas.rectangle(rect);

document.newPage();
document.close();

谢谢@Palmr,它正在工作,我将文本大小从18减少到10,它工作了!!!
Rectangle rect = new Rectangle(0, 780, 494, 820);
rect.setBorder(Rectangle.BOX);
rect.setBorderWidth(1);
rect.setBackgroundColor(BaseColor.GRAY);
rect.setBorderColor(BaseColor.GREEN);
canvas.rectangle(rect);

ColumnText ct = new ColumnText(canvas);
ct.setSimpleColumn(rect);
Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD);
ct.addElement(new Paragraph("Your Text Goes here!! ", catFont));
ct.go();