iText - 手动修改PDFWriter#Vertical Alignment

时间:2010-03-07 23:01:58

标签: java pdf itext

我使用iText(java)遇到了一个问题,尽管数小时都在查看文档..

我使用的大部分代码都是通过Document#API跟踪(通过PDFWriter实例)当前的Y位置。但是,我们需要使用API​​的PdfContentByte部分将一些Java2d插入到文档中,但这样做似乎绕过了跟踪Verticle写入的逻辑。因此,下次我使用Document API时,它会覆盖手动插入的内容。我想通过在N个单元上手动移动光标来模仿Document#API的行为(N是PDFContentByte API插入的元素的高度),这样当我再次使用Document对象时,bingo,它光标位于正确的位置。我可以看到存在获取游标的方法;

PdfWriter#getVerticalPosition(boolean);

但不是一个设置它?!

1 个答案:

答案 0 :(得分:0)

当您向文档添加段落,表格等时,PdfWriter返回的垂直位置由writer类自动处理。 如果要添加自定义图形,则必须通过保存绘制的最后一个图形的位置来手动处理垂直位置。 如果必须在绝对位置绘制图形,而不考虑通过Paragraph对象添加的文本,这很简单。 但是如果你想要将图形的位置与高级对象(Paragraph,pdfTable等)同步,你必须处理iText事件。