gpt4 book ai didi

java - 如何使用 PDFBox 使文本居中

转载 作者:IT老高 更新时间:2023-10-28 20:55:15 47 4
gpt4 key购买 nike

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

事先不知道字符串,试了也找不到中间。字符串并不总是具有相同的宽度。

我需要:

  • 一种可以使文本居中的方法,例如 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();
PDPageContentStream 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);
// Deprecated, only before 2.0:
// stream.moveTextPositionByAmount((page.getMediaBox().getWidth() - titleWidth) / 2, page.getMediaBox().getHeight() - marginTop - titleHeight);
// From 2.0 and beyond:
stream.newLineAtOffset((page.getMediaBox().getWidth() - titleWidth) / 2, page.getMediaBox().getHeight() - marginTop - titleHeight);
stream.drawString(title);
stream.endText();
stream.close();

关于java - 如何使用 PDFBox 使文本居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6507124/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com