使用 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
个对象。您可以轻松地自动化您的应用程序,使其在呈现的每一列周围绘制一个矩形。
当然:既然你没有接受我之前的回答,我的假设可能是错误的。
使用 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
个对象。您可以轻松地自动化您的应用程序,使其在呈现的每一列周围绘制一个矩形。
当然:既然你没有接受我之前的回答,我的假设可能是错误的。