获取PDFBox中字符的字体高度

2023-11-27

PDFBox的字体类PDFont中有一个方法,名为getFontHeight,听起来很简单。但是我不太理解文档以及参数代表什么。

getFontHeight这将获取字符的字体宽度。

参数:

  • c - 要获取宽度的字符代码。
  • offset - 数组的偏移量。长度
  • 数据的长度。

Returns:宽度以 1000 个文本空间为单位,即 333 或 777

此方法是否适合用于获取 PDFBox 中字符的高度?如果是,如何获取?我可以使用字体高度和字体大小之间的某种关系吗?


我相信标记为正确的答案需要一些额外的澄清。 getHeight() 的每种字体没有“错误”,因此我认为手动猜测每种新字体的系数不是一个好的做法。 我猜它可能适合您的目的,只需使用 CapHeight 而不是 Height。

float height = ( font.getFontDescriptor().getCapHeight()) / 1000 * fontSize;

这将返回与您尝试通过将 Helvetica 的高度修正为 0.865 来获得的值类似的值。但它对于任何字体都是通用的。

PDFBox 文档没有过多解释它是什么。但是您可以查看维基百科 Cap_height 文章中的图像,以更好地了解它的工作原理并选择适合您的特定任务的参数。

https://en.wikipedia.org/wiki/Cap_height

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

获取PDFBox中字符的字体高度 的相关文章

  • Guice 忽略注入构造函数参数上的 @Nullable

    我正在使用 Guice v 3 0 并且有一个值被注入到构造函数中 该值可以为 null 因此我在构造函数中使用 Nullable 来自 javax annotations 注释了该参数 public MyClass Parameter1
  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 如何在 Openfire 中使用 smack

    你好 我计划开发一个可以连接到 gtalk facebook 等的聊天客户端 我决定将 smack API 与 openfire 一起使用 但我需要很少的指导来了解如何将它与 openfire 服务器一起使用 openfire 是否提供了基
  • (Java) App Engine 中的静态文件无法访问

    The 示例文档 http code google com appengine docs java gettingstarted staticfiles html表示您只需将文件放在 war 或子目录 中 并且应该可以从主机访问它们 只要它
  • HAProxy SSL终止+客户端证书验证+curl/java客户端

    我希望使用我自己的自签名证书在 HAProxy 上进行 SSL 终止 并使用我创建的客户端证书验证客户端访问 我通过以下方式创建服务器 也是 CA 证书 openssl genrsa out ca key 1024 openssl req
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • 如何删除日期对象的亚秒部分

    当 SQL 数据类型为时间戳时 java util Date 存储为 2010 09 03 15 33 22 246 如何在存储记录之前将亚秒设置为零 例如 在本例中为 246 最简单的方法是这样的 long time date getTi
  • Java、Spring:使用 Mockito 测试 DAO 的 DataAccessException

    我正在尝试增加测试覆盖率 所以我想知道 您将如何测试 DAO 中抛出的 DataAccessExceptions 例如在一个简单的 findAll 方法中 该方法仅返回数据源中的所有数据 就我而言 我使用 Spring JdbcTempla
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • Java - 从 XML 文件读取注释

    我必须从 XML 文件中提取注释 我找不到使用 JDOM 或其他东西来让它们使用的方法 目前我使用 Regex 和 FileReader 但我不认为这是正确的方法 您可以使用 JDOM 之类的东西从 XML 文件中获取注释吗 或者它仅限于元
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • Lombok @Builder 不创建不可变对象?

    在很多网站上 我看到 lombok Builder 可以用来创建不可变的对象 https www baeldung com lombok builder singular https www baeldung com lombok buil
  • Java 的 PriorityQueue 与最小堆有何不同?

    他们为什么命名PriorityQueue如果你不能插入优先级 它看起来与堆非常相似 有什么区别吗 如果没有区别那为什么叫它PriorityQueue而不是堆 默认的PriorityQueue是用Min Heap实现的 即栈顶元素是堆中最小的
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • ArrayList.clear() 和 ArrayList.removeAll() 有什么区别?

    假如说arraylist定义为ArrayList

随机推荐

  • 从二进制 dll 文件中删除 C++ 类名

    我在 Visual Studio 2010 下有一个 C 项目 它编译成 dll 我在我的项目中定义了几个私有的特定于实现的类 例如CMyClass 该类不是从 dll 或任何接口函数导出的 但是 当我检查生成的dll文件时 其中存储了一个
  • 更改子视图控制器

    我有一个视图控制器 当我按下按钮时 会出现一个子视图控制器 这工作得很好 但如果我按下其中的下一个按钮来执行两步登录 我想将此子视图控制器更改为另一个子视图控制器 任何想法 因为从主视图控制器我知道如何显示孩子 但从孩子我不知道该怎么做 如
  • 布尔运算符与按位运算符

    我很困惑何时应该使用布尔运算符和按位运算符 and vs or vs 有人可以告诉我何时使用其中一种以及何时使用其中一种会影响我的结果吗 以下是一些指导原则 布尔运算符通常用于boolean值 但通常使用按位运算符integer value
  • 如何在windowmanager中添加tinymce列表框值

    我打开一个窗口管理器并添加一个文本字段和列表框 editor windowManager open title Insert caption body type textbox name text label text multiline
  • iPhone 在运行时创建 SQLite 数据库?

    我发现的大多数 sqlite 示例都讨论首先从命令行创建 db 文件 然后将其添加到您的应用程序中 对于我的项目 我希望能够在应用程序第一次启动时创建数据库 然后将其保存到用户沙箱中的数据库文件中 有没有办法做到这一点 您可以在应用程序启动
  • Angularjs 在应用程序启动时启动 http 请求的合适时机

    我两天前刚刚开始学习 Angularjs 一个问题困扰了我两天 我需要在应用程序启动时向服务器发出 http 请求以获取一些数据 但我找不到合适的时机来执行此操作 我试过做一个controller 这称为 http get 但这不起作用 如
  • 如何从存储过程返回多行? (Oracle PL/SQL)

    我想创建一个带有一个参数的存储过程 它将根据参数返回不同的记录集 有什么方法可以做到这一点 我可以从普通 SQL 中调用它吗 以下是如何构建一个返回结果集的函数 该结果集可以像表一样进行查询 SQL gt create type emp o
  • 微软语音识别平台

    我使用 System Speech 用 C 编写了一个用于语音识别的应用程序 该应用程序在 Windows 7 上运行良好 不过 我正在创建可在 Windows 2003 x86 上运行的相同应用程序 我的编程环境 Windows 7 x6
  • Django 如何将 npm 模块与静态/模板一起使用

    我最近添加了npm添加到我的项目中 以便更好地跟踪我的 js 依赖项 以前我刚刚 git 克隆到我的 static vendor 文件夹 我还添加了gulp 但现在只让它做 hello world 的事情 它看起来很简单 它可以监视文件 缩
  • 有没有办法使用 Python 访问 OS X wi-fi 数据? (例如信号强度)

    我只是好奇是否可以使用任何 Python 工具来轮询 OS X 中的 Wi Fi 信号强度 我的大多数搜索都只是生成适用于 Linux 的 Python 工具 但没有找到适用于 OS X 的 Python 工具 如果没有 是否有其他方法可以
  • 使用 AdMob 展示我自己的广告?

    我已将 AdMob 集成到我的应用程序中 是否可以使用 Admob 展示我自己的广告 如果没有 那么最好的选择是什么 是的 Ad Mob 允许您选择使用 自家广告活动 选项 话虽这么说 如果通过 使用 Admob 展示我自己的广告 你的意思
  • 在 C++ 中实现模拟非确定性有限自动机的代码

    我正在做自动机理论的作业 我必须确定确定性有限自动机的转换函数是否接受一个单词 我有这个输入文件 6 8 0 2 2 5 0 0 a 0 1 a 1 1 b 1 2 c 1 3 c 3 4 d 4 4 d 4 5 d 3 aaabcccc
  • SQL注入无法正常工作

    我正在尝试在我的本地主机上为安全测试项目创建的虚拟网站上执行 SQL 注入 我尝试输入字符串 OR 进入用户名和密码字段 这样它应该绕过它并显示登录正确 但相反它显示登录失败 任何有助于理解为什么 SQL 注入不起作用的帮助
  • 如何通过react js中的map方法仅访问一项

    我的问题可能不清楚 但这是我的问题 这是我使用 map 方法从数组中获取的卡片 并在每张卡片上显示每个项目 我已经触发了 编辑 按钮 以便它显示隐藏的文本 只想在一张卡片中看到它 但是 当我仅单击一张卡片时 所有卡片都会显示该隐藏消息 你能
  • CakePHP 2.x:Model::afterFind() 上的 $primary 标志实际上有用吗?

    CakePHP 的Model afterFind 回调看起来像 afterFind array results boolean primary false 根据文档 The primary参数指示当前模型是否是查询发起的模型 或者该模型是否
  • javascript数组映射方法中的Break语句[重复]

    这个问题在这里已经有答案了 可能的重复 如何像调用break一样短路Array forEach 有没有办法让我在满足条件后可以突破数组映射方法 我尝试了以下抛出 Illegal Break Statement Error 这是我随机想到的一
  • getSubscription 返回空订阅

    我是 Service Worker 和 GAE 的新手 我能够注册 Service Worker 但无法订阅 PushManager 出现订阅 null 错误 找到下面的代码以供参考 serviceWorkerRegistration pu
  • PHP 在 html 页面中显示 html 电子邮件

    我正在构建一个 PHP 电子邮件邮箱脚本 我如何使 html 电子邮件像 gmail hotmail 中那样清晰地显示 如果我只是回显它 它会影响整个页面布局 我可以使用 iframe 但这肯定不是最好的解决方案 如果您正在寻找 最佳解决方
  • 字符串太长时会被截断

    我试图从我们的服务器获取 JSON 响应 当字符串长度达到大约 5525 个字符时 响应字符串似乎总是被截断 HttpClient httpClient new DefaultHttpClient HttpPost post new Htt
  • 获取PDFBox中字符的字体高度

    PDFBox的字体类PDFont中有一个方法 名为getFontHeight 听起来很简单 但是我不太理解文档以及参数代表什么 getFontHeight这将获取字符的字体宽度 参数 c 要获取宽度的字符代码 offset 数组的偏移量 长