如何使用pdf框创建新线并打破特定长度的线

问题描述 投票:0回答:1

我想让我的输出像这样

      lorem ipsum dolor
sit amet

我已经尝试过这段代码:

contentStream.beginText()
contentStream.setFont(font, 12)
contentStream.moveTextPositionByAmount(80, 160)
contentStream.drawString(addressOffice)
contentStream.newLineAtOffset(-30, -15)
contentStream.drawString(addressOffice)
contentStream.endText()

但这并没有解决我的问题,因为它只是为新行放置了相同的值,如下所示:

       lorem ipsum dolor sit amet
lorem ipsum dolor sit amet

addressOffice 是一个值参数。

groovy pdfbox
1个回答
0
投票

好的,正如评论中指出的那样,您的问题是在两行代码中重复参数

addressOffice
。因此它会将字符串写入两次。这是在 groovy 中解决这个问题的方法。

contentStream.beginText()
contentStream.setFont(font, 12)
contentStream.moveTextPositionByAmount(80, 160)
contentStream.drawString(addressOffice[0..10])
contentStream.newLineAtOffset(-30, -15)
contentStream.drawString(addressOffice[12..-1])
contentStream.endText()

范围(即 0..10)按范围索引分割字符串。 0 是字符串的开头,10 紧接在“lorem ipsum”之后。下一个范围跳过空白并在“dolor sat amet”处拾取,-1 告诉 Groovy 我们想要字符串的结尾。

当然,这些索引与您的输入字符串密切相关,通常您需要某种方法以编程方式确定分割点(即 10 和 12),但鉴于提供给我们的信息,我们无法为您回答。

© www.soinside.com 2019 - 2024. All rights reserved.