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();
这是我的代码,这里我试图在矩形中添加文本。它没用!创建了矩形,但文本没有显示在pdf页面的任何地方。
答案 0 :(得分:1)
您的代码存在一些问题,导致文字无法显示。
首先,在添加文本后将矩形添加到画布。灰色背景将覆盖任何绘制的文本,将其隐藏起来。
其次,您的字体大小对于列边界而言太大,因此不会显示任何文本。 您可以使矩形变大,文本将显示或减小字体的大小。
例如,以下内容应该有效,因为我增加了矩形高度并将canvas.rectangle()调用移到了ColumnText.go()之前:
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();