查找各种Arial字体大小的字符宽度(以像素为单位)

Loc*_*e12 2 c# pdf string char pdfsharp

我有一个程序,使用C#中的PDFsharp手动生成PDF.虽然它相当繁琐但我必须使用它并接近完成任务.只剩下一个问题.

问题:我想知道如何在Arial中找出给定字符大小的给定字符的宽度.

我无法想出更精确的文本包装方法.现在,一个以像素为单位定义框的宽度,然后继续在该框中写出一个字符串.我只是猜测可以装在盒子里的弦的最大长度,并且有时会出现一些视觉上的奇怪现象.

有帮助吗?

谢谢

adr*_*nks 7

我不确定你的问题是否想要一种方法来专门使用PDF#来测量字符串的大小,或者只是一种通用方法.

一般来说.Net,你可以使用类的MeasureText方法TextRenderer(来自Windows窗体):

TextRenderer.MeasureText("some text", new Font("Arial", 1.0f, FontStyle.Regular))
Run Code Online (Sandbox Code Playgroud)

这将返回一个Size包含的实例Width=12, Height=2.


Je *_*not 5

在具有字距调整等的True Type字体的日子里,没有单个字符宽度.字符串"VA"的宽度可能小于字符串"V"和"A"的宽度之和.如果单个字符是起点,则总结宽度 - 但最后您必须测量完整的字符串.

PDFsharp包含执行此换行的XTextFormatter类(包含完整源代码).它可以根据具体要求进行调整.它用于gfx.MeasureString(token, this.font).Width测量字符串的宽度.