Java PDFbox中的计算字符串宽度似乎只对字符计数?

Java PDFbox中的计算字符串宽度似乎只对字符计数?,java,pdfbox,Java,Pdfbox,我有以下问题。我尝试在PDFbox中计算字符串的宽度,使其在矩形中居中。现在我的问题是,我得到的12和32的宽度相同,但是1比3小,所以我的文本是12,没有居中。我如何解决这个问题 谢谢 来自: 在某些字体中,数字的宽度确实相同。例如,在MSWord中尝试不同的字体。因此,12和32的宽度相同这一事实可能是正确的。没有人有办法解决我的问题吗?考虑到这个问题是从2012年开始的,要求OP“尝试”一些东西似乎很幼稚;你真的认为OP还在处理那个5岁的问题吗?我不做年龄歧视。所有问题都是平等的。你认为有

我有以下问题。我尝试在PDFbox中计算字符串的宽度,使其在矩形中居中。现在我的问题是,我得到的12和32的宽度相同,但是1比3小,所以我的文本是12,没有居中。我如何解决这个问题

谢谢

来自:


在某些字体中,数字的宽度确实相同。例如,在MSWord中尝试不同的字体。因此,12和32的宽度相同这一事实可能是正确的。

没有人有办法解决我的问题吗?考虑到这个问题是从2012年开始的,要求OP“尝试”一些东西似乎很幼稚;你真的认为OP还在处理那个5岁的问题吗?我不做年龄歧视。所有问题都是平等的。你认为有些问题比其他问题更平等吗?当然,一个人可以回答老问题,甚至可以给出被其他人接受的好答案,甚至可能最终被接受。不过,我认为天真的是,OP仍然对这个问题非常感兴趣,更不用说研究它了。不过,只有到那时,OP才有可能在这个问题上有所尝试。因此,在我看来,让他尝试一些东西似乎很幼稚。此外,OP的问题几乎没有详细说明问题是由字体还是OP的代码引起的;如果他感兴趣,他会添加一些代码等。我一直在寻找一些从PDFontDescriptor到PTs的单位转换公式,这就像一个魅力!我很想知道magic 1000是从哪里来的,如果可能的话,最后一行公式背后的整个逻辑。根据文档,字符串的宽度用1/1000单位的文本空间表示。乘以它,我们就能回到积分上。
PDFont font = PDType1Font.HELVETICA_BOLD; // Or whatever font you want.
int fontSize = 16; // Or whatever font size you want.
float width = font.getStringWidth(text.substring(start,i)) / 1000 * fontSize;