使用 itext5 将文本添加到 PDF 中的矩形
Adding text to a rectangle in PDF using itext5
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 页面的任何位置。
您的代码存在一些问题,导致文本无法显示。
首先,在添加文本后将矩形添加到 canvas。灰色背景将覆盖绘制的任何文本,将其隐藏。
其次,您的字体对于列边界来说太大了,所以没有显示文本。
您可以放大矩形,文本将显示或减小字体大小。
例如,由于我增加了矩形高度并将 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();
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 页面的任何位置。
您的代码存在一些问题,导致文本无法显示。
首先,在添加文本后将矩形添加到 canvas。灰色背景将覆盖绘制的任何文本,将其隐藏。
其次,您的字体对于列边界来说太大了,所以没有显示文本。 您可以放大矩形,文本将显示或减小字体大小。
例如,由于我增加了矩形高度并将 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();