gpt4 book ai didi

java - PDFBOX 无法找到包含特定字符的像素数

转载 作者:行者123 更新时间:2023-12-02 03:31:02 25 4
gpt4 key购买 nike

我正在使用 PDFBOX 创建 PDF。在 pdfbox 中是否有任何函数可以给出以像素为单位的字体大小?例如字母 Aa 将占用不同的打印空间。显然,A 会比 a 占用更多像素。如何找到应该包含一个字符或一个单词的像素数?

最佳答案

首先,像素的概念有点模糊。通常,文档具有一定的大小,例如英寸/厘米等

PDFBox 的 javadoc 显示 PDFont 有几种方法来确定字符串或字符的宽度。例如,看看这些页面:

getStringWidth(String text)

getWidth(int code)

getWidthFromFont(int code)

这些单位是 Em 的 1/1000 。另请参阅此 page .

完整示例:

float fontSize = 12;
String text = "a";

PDRectangle pageSize = PDRectangle.A4;
PDFont font = PDType1Font.HELVETICA_BOLD;


PDDocument doc = new PDDocument();
PDPage page = new PDPage(pageSize);
doc.addPage(page);

PDPageContentStream stream = new PDPageContentStream(doc,page);
stream.setFont( font, fontSize );

// charWidth is in points multiplied by 1000.
double charWidth = font.getStringWidth(text);
charWidth *= fontSize; // adjust for font-size.

stream.beginText();
stream.moveTextPositionByAmount(0,10);

float widthLeft = pageSize.getWidth();
widthLeft *= 1000.0; //due to charWidth being x1000.

while(widthLeft > charWidth){
stream.showText(text);
widthLeft -= charWidth;
}

stream.close();
// Save the results and ensure that the document is properly closed:
doc.save( "example.pdf");
doc.close();

关于java - PDFBOX 无法找到包含特定字符的像素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38094347/

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