使用itext生成pdf的文本重叠问题

时间:2011-05-11 11:39:25

标签: java itext

大家好      我在使用itext(Java)生成的pdf文件中有一个标题文本(ARTIST传记(继续))。其中'ARTIST'和'(继续)'是静态文本'传记'是一个动态文本,它将在各方面变化对于从xml中提取的内容。我的问题是,当动态文本长度太长时,它将与'(继续)'文本重叠。如何设置相对于最近的静态文本'(继续)'的动态文本长度。请回复 提前致谢

我显示标题文字的代码是(ARTIST传记(继续)),如下所示

PdfContentByte cb = writer.getDirectContent();
        BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
        cb.setFontAndSize(bf, 18);
        cb.beginText();
        cb.setColorFill(Color.BLACK);
        cb.showTextAligned(PdfContentByte.ALIGN_LEFT,"ARTIST", document.left(), document.top() + 20  , 0);
        cb.resetRGBColorFill();
        cb.endText();
        cb.beginText();
        cb.setColorFill(Color.RED);
        cb.showTextAligned(PdfContentByte.ALIGN_LEFT, strBiography, document.left() + 70, document.top() + 20, 0);
        cb.resetRGBColorFill();
        cb.endText();
        cb.beginText();
        cb.setColorFill(Color.BLACK);
        cb.showTextAligned(PdfContentByte.ALIGN_LEFT,"(Continue)", document.left()+90, document.top() + 20  , 0);
        cb.resetRGBColorFill();
        cb.endText();
        cb.stroke();

1 个答案:

答案 0 :(得分:0)

您可以使用strBiography的正确字体和内容以及Chunk调用getWidthPoint创建Chunk,现在它的大小为点数,当您添加到文档中时,您将了解strBiography的长度并且可以计算“(继续)”的位置