如何获取使用“文本数字”的字体的升序或降序高度

2024-01-04

我对文本数字有疑问(参见维基百科 http://en.wikipedia.org/wiki/Text_figures)在使用以下命令创建的 PDF 文档中itextsharp.

基线和数字最低点之间的距离(例如9) 与字体的正常下降高度不同。

使用下面的代码我可以计算字体的下降部分的高度:

var fontSize = 60;
var fontPath = @"CorpusGothic-Condensed.otf";
var font = BaseFont.CreateFont(fontPath, BaseFont.CP1252, BaseFont.EMBEDDED);
var descentHeight = font.GetFontDescriptor(BaseFont.DESCENT, fontSize)

我现在的问题是:
是否有可能获得带有文本数字的字体中数字的下降或上升高度,如维基百科页面上所示?


字体包含上升部分和下降部分的一般值。这是您在自己的代码示例中获得的值。

然而,每个字形也有其自己的尺寸。字母 h 的字形比字母 g 的字形具有更高的上升部分和更低的下降部分。

就在四个小时前,我回答了这个问题如何计算元素的高度? https://stackoverflow.com/questions/24549267/calculate-element-height-itext(使你的问题重复)。

这是我写的:

If bf is a BaseFont实例,那么你可以使用:

float ascent = bf.getAscentPoint("Some String", 12);
float descent = bf.getDescentPoint("Some String", 12);

当我们使用 12 的字体大小时,这将返回基线以上的高度和基线以下的高度。您可能知道,字体大小指示平均高度。这不是实际高度。这只是我们合作的一个数字。

总高度将为:

float height = ascent - descent;

请注意,提供字符串(在您的情况下例如“9”)是不够的。您还需要传递字体大小(在我的例子中为 12pt)来获取上升部分和下降部分的点值。

Remark:如果您使用的是 iTextSharp,请替换get with Get在我提到的方法中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取使用“文本数字”的字体的升序或降序高度 的相关文章

随机推荐

  • IE 11 于 22 年 6 月终止生命后,VBA 互联网控制功能还会起作用吗?

    正如标题所问 我使用的某些工具依赖于带有 Internet Control 的 VBA 代码来进行网页抓取和控制 IE 页面 随着 IE11 明年即将终止 有谁知道这将如何影响 VBA 中的 Internet 控制或者它是否仍然有效 试图弄
  • PHP - 具有相对路径的 include() 或 require() 在 Windows 上不起作用,即使附加 __DIR__ 也是如此

    我在这里阅读有关 PHP 使用 include 或 required 与相对路径时出现的问题 我看到的所有解决方案都是附加DIR 我目前正在 Windows 上工作 即使错误消息显示了当前值DIR 那么相对路径似乎是作为字符串添加的 而不是
  • 使用 Twig 使两个数组相交

    我有两个想要相交的数组 我得到了这两个数组 转储 数组1 array 6 0 gt array 2 id gt int 121 text gt string 3 uno 1 gt array 2 id gt int 122 text gt
  • 如何测量 SQL 填充因子值

    通常 当我在表上创建索引时 我通常会猜测Fill Factor应基于对表的使用方式 多次读取或多次写入 的有根据的猜测 有没有更科学的方法来判断更准确Fill Factor value 您可以尝试运行大量实际操作并查看 IO 队列以了解不同
  • Visual Studio 2008 中的 .NET 2.0 安装项目

    我开发了一个针对 net 2 0 的 win forms 应用程序 所有这些都在 Visual Studio 2008 sp1 中 我这样做是因为我并不真正需要应用程序中的 3 0 功能 我不希望客户在可以安装半大型框架的情况下必须安装一个
  • Kotlin:Kotlin 脚本 (.kts) 无法使用常规代码?

    在我的库的代码库中 我有这个包函数 fun sayHello println Hello there 该函数在包中定义org jire pomade 我想在一个 kts像这样的文件 sayHello 不幸的是 我似乎无法让除了 Kotlin
  • 在从 VSTS 进行新部署之前删除 Azure 上的文件和文件夹

    作为 VSTS 中构建过程的一部分 我想在新部署之前从我的 Azure 站点中删除所有文件和文件夹 除了少数几个 我的猜测是 使用 Azure Powershell 脚本将是一个好主意 我更喜欢制作内联脚本 我使用 Azure 资源管理器作
  • 如何使用 useEffect() 更改 React-Hook-Form defaultValue?

    我正在创建一个页面 供用户使用 React Hook Form 更新个人数据 加载分页后 我使用useEffect获取用户当前的个人数据并将其设置为表单的默认值 我将获取的值放入defaultValue of
  • libvlc_new 始终返回 NULL

    我尝试做教程示例 https wiki videolan org LibVLC Tutorial libvlc 的工作 我通过安装了vlc SDKsudo apt install libvlc dev并链接到它 lvlc 编译和链接完成时没
  • 在移动 Safari 中忽略 Overflow-x 值

    我们将body和可滚动元素上的overflow x值设置为隐藏 但移动Safari会忽略这些值 在桌面上 溢出值工作正常 相关代码 body overflow x hidden width 320px height 100 min heig
  • 如何修复状态为“已拒绝”的 dig 命令?

    我需要帮助修复被拒绝的状态 我看了一下named conf一切看起来都很好 我什至改变了allow query to any 它曾经是localhost dig xxx com ns1 xxx com lt lt gt gt DiG 9 8
  • C++中的时差

    有谁知道如何计算 C 中的时间差 以毫秒为单位 我用了difftime http linux die net man 3 difftime但它对于我想要测量的东西来说没有足够的精度 我知道这是一个老问题 但 C 0x 有一个更新的答案 有一
  • 如何避免在 GEKKO 中创建许多二进制切换变量

    我通过最小化数千个方程来求解 14 个变量IMODE 3 in GEKKO 每个方程都是真实响应与 P 样条模型预测之间的平方误差 i e 惩罚 B 样条 eq i m Minimize y true i spline coeffs kno
  • Python:如何创建函数?例如f(x) = ax^2

    我想要对函数进行某种引用 但我不知道是否需要使用def f x or a lambda某种 例如我想print f 3 并让它输出9a 或者这不是 python 的工作原理 第二个问题 假设我有一个工作函数 我如何返回degree of i
  • Excel VBA 在 Windows 10 中回答 Internet Explorer 11 下载提示?

    我正在尝试自动下载 csv 文件http www nasdaqomxnordic com http www nasdaqomxnordic com使用 Excel 2010 VBA 和 Internet Explorer 如何使用 保存 自
  • 如何消除 iPad 应用程序主窗口上的圆角?

    我见过一些 iPad 应用程序填满屏幕 例如 Stanza 或在状态栏下方形成方形角 例如 iPod 播放器顶部有方形角 底部看不出来 有人知道这是怎么做到的吗 默认情况下 顶层 UIWindow 似乎应用了一个剪切区域 因为我放置在该窗口
  • 显示网络浏览器设置

    使用不同的网络浏览器及其版本号字符串以及无数的配置列表确实很痛苦 我想知道是否有人想出了一个网页 可以将浏览器设置转储到浏览器 以便可以保存并转发给开发人员 Thanks 像这样的东西吗 http mybrowserinfo com det
  • 预期是二维数组,却得到一维数组,而是错误

    我得到的错误为 ValueError 需要 2D 数组 却得到 1D 数组 array 45000 50000 60000 80000 110000 150000 200000 300000 500000 1000000 如果数据具有单个特
  • 委托、Lambda 和 LINQ,天哪!

    作为一名相当初级的开发人员 我遇到了一个突出我经验不足和知识漏洞的问题 如果这里的序言太长 请原谅 我发现自己参与的一个项目需要学习许多 对我而言 新技术 其中包括 LINQ 用于该项目的 OBJECTS 和 XML 等 到目前为止我读到的
  • 如何获取使用“文本数字”的字体的升序或降序高度

    我对文本数字有疑问 参见维基百科 http en wikipedia org wiki Text figures 在使用以下命令创建的 PDF 文档中itextsharp 基线和数字最低点之间的距离 例如9 与字体的正常下降高度不同 使用下