使用 iText7,如何用矩形填充原本为空的列?

Using iText7, how do I fill an otherwise empty column with a rectangle?

使用 iText7,我希望用以一些文本为首的带边框的矩形来填充本来为空的列。边框方法似乎已经从 iText7 中的 Rectangle 中消失了,我能找到的唯一例子就是使用它们。如果 Rectangle 是正确的方法,我该怎么做?如果不是,正确的做法是什么?

无论好坏,这似乎实现了我的 objective:

AreaBreak   nextArea    = new AreaBreak(AreaBreakType.NEXT_AREA);
document.add(nextArea);
float h = document.getRenderer().getCurrentArea().getBBox().getHeight();
float w = document.getRenderer().getCurrentArea().getBBox().getWidth();
Paragraph endB = new Paragraph(" ");
endB.setHeight(h);
endB.setWidth(w);
SolidBorder b = new SolidBorder(2);
endB.setBorder(b);
document.add(endB); 

请看Chapter 2 of the tutorial "iText 7: Building Blocks"

在本教程中,我们创建一个 Rectangle 对象并将其绘制到 PdfCanvas 对象:

Rectangle rectangle = new Rectangle(36, 650, 100, 100);
pdfCanvas.rectangle(rectangle);
pdfCanvas.stroke();

如何获取PdfCanvas对象?

要么从您自己创建的 PdfPage 对象创建它:

OutputStream fos = new FileOutputStream(dest);
PdfWriter writer = new PdfWriter(fos);
PdfDocument pdf = new PdfDocument(writer);
PdfPage page = pdf.addNewPage();
PdfCanvas pdfCanvas = new PdfCanvas(page);

或者您从 PdfDocument 对象获取现有页面:

PdfCanvas canvas = new PdfCanvas(pdf, pdf.getNumberOfPages());

您可以在 PdfCanvas 对象中使用不同的方法调整线条宽度、虚线图案、线条颜色...。

还有其他绘制矩形的方法,但在您之前的一个问题中,您提到了 ColumnDocumentRenderer。如果您当前的问题是同一上下文的一部分,那么您已经有 Rectangle 个对象,如果您有一个 ColumnDocumentRenderer,您可以访问 PdfCanvas 个对象。您可以轻松地自动化您的应用程序,使其在呈现的每一列周围绘制一个矩形。

当然:既然你没有接受我之前的回答,我的假设可能是错误的。