将文本添加到现有PDF / A文档时,只要文本没有加下划线,一切正常 . 如果是这样,我得到一个例外:
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:919)
at com.itextpdf.text.pdf.PdfContentByte.moveTo(PdfContentByte.java:904)
at com.itextpdf.text.pdf.PdfDocument.writeLineToContent(PdfDocument.java:1615)
at com.itextpdf.text.pdf.ColumnText.go(ColumnText.java:1160)
at com.itextpdf.text.pdf.ColumnText.go(ColumnText.java:993)
at com.itextpdf.text.pdf.ColumnText.go(ColumnText.java:981)
at com.itextpdf.text.pdf.ColumnText.showTextAligned(ColumnText.java:1400)
at com.itextpdf.text.pdf.ColumnText.showTextAligned(ColumnText.java:1418)
at de.arbeitsagentur.kiwi.common.drucken.itext.PdfUtils.stampVerworfen(PdfUtils.java:97)
这是代码:
PdfReader reader = new PdfReader(inputStream);
PdfStamper stamp = new PdfStamper(reader, outputStream);
PdfContentByte over = stamp.getOverContent(1);
over.beginText();
BaseFont bf = BaseFont.createFont(FONT, BaseFont.WINANSI, true);
Font font = new Font(bf, 14, Font.BOLD | Font.UNDERLINE);
Phrase phrase = new Phrase("Hello World!", font);
ColumnText.showTextAligned(over, Element.ALIGN_LEFT, phrase, 67, 727, 0);
如果省略Font.UNDERLINE,则没有问题 .
我的iText版本是5.5.13