在文本对象内不允许使用路径构造或绘图操作符

时间:2015-01-14 05:54:41

标签: java itextsharp itext

当我尝试使用 itextpdf-5.5.4.jar 绘制一条线时,使用以下代码(PdfContentByteobject

contentByte.moveTo(55, 755)。这是抛出异常

com.itextpdf.text.exceptions.IllegalPdfSyntaxException: Path construction or drawing operators aren't allowed inside a text object.
    at com.itextpdf.text.pdf.PdfContentByte.moveTo(PdfContentByte.java:776)
    at DemoS.TextPostion.createPdfHeader(TextPostion.java:652)
    at DemoS.TextPostion.fillCelldata(TextPostion.java:352)
    at DemoS.TextPostion.createPDF(TextPostion.java:175)
    at DemoS.TextPostion.main(TextPostion.java:128)

但是相同的代码可以正常使用 itextpdf-5.0.6.jar 任何建议? 如何使用itextpdf-5.0.6.jar完成相同的工作。

1 个答案:

答案 0 :(得分:1)

正如 mkl 在评论中提到的那样,在绘制线之前,我们首先结束这个并且在绘制之后开始文本对象。像 -

...
contentByte.endText();
contentByte.moveTo(50, 637);
contentByte.lineTo(5400, 637);
contentByte.stroke();
contentByte.beginText();

但如果您使用中风并在beginText()之后拨打contentByte.stroke(),请务必小心。

这解决了我的问题。