如何使用PDFBox居中文本

我的问题很简单:如何使用来将文本放在PDF上居中PDFBox

我事先不知道字符串,我无法通过试用找到中间的字符串。字符串的宽度并不总是相同。

我需要:

  • 一种可以使文本居中的方法,例如 addCenteredString(myString)
  • 一种可以给我像素宽度的字符串的方法。然后,我可以计算出中心,因为我知道PDF的尺寸。

欢迎任何帮助!

回答:

好的,我自己找到了答案。这是在页面上居中放置文本的方法:

String title = "This is my wonderful title!"; // Or whatever title you want.

int marginTop = 30; // Or whatever margin you want.

PDDocument document = new PDDocument();

PDPage page = new PDPage()

PDPageStreamContent stream = new PDPageContentStream(document, page);

PDFont font = PDType1Font.HELVETICA_BOLD; // Or whatever font you want.

int fontSize = 16; // Or whatever font size you want.

float titleWidth = font.getStringWidth(title) / 1000 * fontSize;

float titleHeight = font.getFontDescriptor().getFontBoundingBox().getHeight() / 1000 * fontSize;

stream.beginText();

stream.setFont(font, fontSize);

stream.moveTextPositionByAmount((page.getMediaBox().getWidth() - titleWidth) / 2, page.getMediaBox().getHeight() - marginTop - titleheight);

stream.drawString(title);

stream.endText();

stream.close();

以上是 如何使用PDFBox居中文本 的全部内容, 来源链接: utcz.com/qa/421259.html

回到顶部