![PdfBox 2.0.0 在页面的指定位置写入文本](https://linux22.com/image/881116/PdfBox%202.0.0%20%E5%9C%A8%E9%A1%B5%E9%9D%A2%E7%9A%84%E6%8C%87%E5%AE%9A%E4%BD%8D%E7%BD%AE%E5%86%99%E5%85%A5%E6%96%87%E6%9C%AC.png)
我刚刚从 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); 并且可以正常工作。