本文介绍了如何使用PDFBox居中文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题非常简单:如何使用 PDFBox 将PDF文本居中?

My question is very simple: how can I center a text on a PDF, using PDFBox?

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

I don't know the string in advance, I can't find the middle by trial. The string doesn't always have the same width.

我需要:


  • 一种可以使文本居中的方法,例如 addCenteredString(myString)

  • 一种可以给我宽度的方法字符串的像素。然后我可以计算中心,因为我知道PDF的尺寸。

欢迎任何帮助!

推荐答案

好的,我自己找到了答案。以下是如何在页面上居中显示某些文字:

Ok, I found the answer myself. Here is how to center some text on a page:

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居中文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-16 18:33