java—在itext7中,如何在不覆盖当前内容的情况下插入visa持有者?

niknxzdl  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(444)

我正在使用itext 7.0.0。我正在写一份pdf文件,最后插入一个包含姓名/日期/签名的部分,如下所示:

但是,在某些情况下,最后一节会覆盖已存在的节,例如:

下面是如何插入姓名/日期/签名矩形:

private fun placeVisa(document: Document): Document {
        val pdfCanvas = PdfCanvas(document.pdfDocument.getPage(document.pdfDocument.numberOfPages))
        val width = 200f
        val height = 100f
        val rectangle = Rectangle((document.pdfDocument.defaultPageSize.width - width) * 0.95f, // x position
                height / 2, // y position
                width, // actual width
                height) // actual height
        pdfCanvas.rectangle(rectangle)
        pdfCanvas.stroke()
        val canvas = Canvas(pdfCanvas, document.pdfDocument, rectangle)
        val rectangleContent = Paragraph(Text("Name, date and signature :"))
        rectangleContent.marginLeft = 5f
        canvas.add(rectangleContent)
        return document

如果有内容,如何使其不被覆盖?

eni9jsuy

eni9jsuy1#

我选择了另一种方法来解决我的问题。
我构建了一个包含一列和一个单元格的表,而不是绘制一个矩形。
设置单元格的高度,使表格绘制的矩形足够大;设置表格的宽度,使其足够大。
最后,我在右边添加了一个水平对齐。

val table = Table(1)
val cell = Cell(1,1)
cell.add("Name, date and signature :")
cell.height = 75f
table.setWidth(200f)
table.addCell(cell)
table.setHorizontalAlignment(HorizontalAlignment.RIGHT)
document.add(table)

相关问题