我刚刚从 PdfBox 1.8 升级到 2.0.0,发现两者之间存在很大差异。之前,我在现有 pdf 页面上写文本时使用的是 drawString。在 2.0.0 中,draw string 已被弃用,但 showText 在块文本中不起作用。
我的代码在1.8中:
contentStream.beginText()
contentStream.moveTextPositionByAmount(250, 665)
contentStream.drawString("1 2 3 4 5 6 7 8 9 1 0")
contentStream.endText()
我的代码是 2.0
PDDocument newPdf=null
newPdf=PDDocument.load(sourcePdfFile)
PDPage firstPage=newPdf.getPage(0)
PDPageContentStream contentStream = new PDPageContentStream(newPdf, firstPage, PDPageContentStream.AppendMode.APPEND,true,true)
contentStream.setFont(pdfFont, fontSize)
contentStream.beginText()
contentStream.lineTo(200,685)
contentStream.showText("John")
contentStream.endText()
但它不起作用......
有人知道我该如何像 1.8 中那样写文本吗
答案1
有点晚了,但不允许在文本块中使用 contentStream.lineTo(200,685)。您可以使用 contentStream.newLineAtOffset(200, 685); 并且可以正常工作。