了解 PDF 运算符 - 适用于 iOS 应用程序

2023-12-02

我的任务是为我们公司创建一个 pdf 阅读器应用程序。经过一些研究后,我对 PDF 中的不同运算符感到困惑。我想澄清以下几点:

  • The Tm运算符用作每条线的起点。 (我的理解正确吗?)
  • If the Tm运算符是每行的起点,我如何解析显示的文本only在规定的范围内Tm? e.g.:

     BT
        0 0 1 rg
        /Ti 12 Tf
        1 0 0 1 100 100 Tm
        0 0 Td
        (The quick brown fox ) Tj 0 −13 Td
        (ate the lazy mouse.) Tj
     ET
     //I only want to get the Tj and TJ string being positioned by the Tm
    
  • 据我所知,每 1000 个单位的字形高度和宽度相当于 1 个单位的文本空间。那么,如果字形宽度为 2000,高度为 1060,这是否意味着它的“真实”宽度和高度分别为 2 和 1.06?

现在我知道其中一些问题听起来非常愚蠢,但我真的没有太多时间去研究。因此,如果有人能帮助我理解这一点,我将不胜感激。

NOTE:pdf阅读器应用程序必须包含搜索和突出显示功能、文本选择、注释、书签等。实际上,您可以在当今几乎所有阅读器中找到所有基本功能。我可能会使用第三方库来让我的生活更轻松,但我最大的问题是文本选择功能。所以我真的需要理解这一点。


您需要熟悉PDF规格,附件 A 包含所有运算符的摘要,以及有关参数的更详细文档的链接,因此这可能是一个很好的起点。

The Tm运算符不一定设置每行的起点,它一般设置文本矩阵,基本上相当于一个CGAffineTransform就 Quartz2D 而言。要移动到下一行,文档还可以使用Td, TD, " or T*运营商。 PDF 文档不一定按照屏幕上显示的顺序绘制文本,它们可以在页面上自由移动,并按照它们认为合适的任何顺序放置字形。 PDF实际上并没有“线”的概念,您必须自己从字形的位置推断出这些概念(这对于下标/上标之类的东西可能很棘手)。

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

了解 PDF 运算符 - 适用于 iOS 应用程序 的相关文章

随机推荐

  • Android,如何通过广播接收器接收主页按钮点击?

    在我的应用程序中 当用户通过单击注销按钮或按主页按钮关闭应用程序退出应用程序时 我需要向服务器发送注销请求 按钮没有问题 结果符合我的预期 问题是如何获得主页按钮 根据我的研究 不可能使用onKeyDown int keyCode KeyE
  • C# EWS - 已发送电子邮件的标识 - InternetMessageId

    我正在开发一个门票系统 我需要将票证 邮件 发送到电子邮件地址列表 并通过电子邮件接收有关此电子邮件 票证的答复 是否可以从我发送的新票证 电子邮件中获取 InternetMessageId 谢谢你 确保在发送消息时使用SendAndSav
  • 使用python的urllib2和Beautifulsoup爬取维基百科时删除html标签

    我正在尝试抓取维基百科以获取一些用于文本挖掘的数据 我正在使用 python 的 urllib2 和 Beautifulsoup 我的问题是 有没有一种简单的方法可以从我阅读的文本中删除不必要的标签 例如链接 a 或 span 对于这种情况
  • bash -c 变量未分配

    我正在尝试执行以下命令 bash c var test echo var 并且只打印一个空行 如果我执行相同的命令而不bash c var test echo var test 分配给的值 var正在打印 有人可以解释为什么我不能在第一个示
  • 什么是 ScalaSignature?

    将 Scala 文件反编译为 Java 代码时 经常会遇到带有以下注释的类ScalaSignatures 这些似乎只有一个注释值 一个经过某种编码的字符串 为什么 Scala 编译器创建如此奇怪的构造 而不是使用自定义的Attribute是
  • Blackberry 中的“尝试访问安全 API”错误

    当我在 Blackberry 9530 上安装 alx 文件时 收到错误 尝试访问安全 API 但是 我已经成功签署了该应用程序 可能需要 3 种类型的签名 RBB RCR RRT 我不确定它们各自的含义 但您需要使用它们 我认为您可能只安
  • Android:原始资源是否存储在本地文件系统上?

    我正在分析 APK 并在应用程序的 res raw 目录中看到一组 txt 资源 在模拟器上安装应用程序后 我希望在 data data app files 目录中看到相同的文件 但它们似乎不存在 原始资源存储在哪里 原始资源是在应用程序运
  • 在 Spring-boot 中运行 JSF 时出现 NoClassDefFoundError

    我正在尝试使用 primefaces 进行 Spring boot 工作 我按照这个例子https github com Zergleb Spring Boot JSF Example 我尝试将其从 gradle 移至 Maven 因为项目
  • Excel 中用户定义的 IFS 函数的 VBA 代码

    我们公司使用的是Excel 2016的打包版本 而不是Office 365版本 我最近了解到新版本中存在的 IFS 函数 它似乎非常有用 我在网站上以 VBA 形式找到了 CONCATENATEIF 函数 我想知道是否有办法以相同的方式在我
  • 如何将现有项目转换为 angular-cli?

    我刚刚尝试过ng2 admin而且看起来很棒 所有的功能都非常好 我怎样才能将这个项目转换为angular cli 我尝试过ng init 但它覆盖了现有的代码app文件夹 我怎样才能将这个项目转换为angular cli没有任何影响 只需
  • 如何使标准模式和怪异模式一样有效?

    以下 Html 在 FireFox 或 IE7 8 中非常适合我 带或不带样式标签 Should work in Quirks Mode br
  • Java中有计算阶乘的方法吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我还没找到 我错过了什么 我知道阶乘方法是初学者的常见示例程序 但是 拥有一个可供重用的标准实现不是很有用吗 我也可以将这种方法与标准类型 例如 int long 以及 BigIntege
  • PHP:MySQL 查询无故重复更新

    下面的代码首先是客户端代码 然后是类文件 由于某种原因 deductTokens 方法调用了两次 从而对帐户收取双倍费用 我整夜都在编程 所以我可能只需要第二双眼睛 if action place order if REQUEST unli
  • 是否可以更改 UITextView 和 UITextField 中单个单词的颜色

    是否可以更改 UITextView 和 UITextField 中单个单词的颜色 如果我输入了一个前面带有符号的单词 例如 word 它的颜色可以更改吗 是的 你需要使用NSAttributedString为此 找到在这里运行应用程序 扫描
  • 如何使用不同的视图进行 django 注册?

    我一直在尝试让 django registration 使用视图 RegistrationFormUniqueEmail 并遵循此解决方案django 注册问题 我已将 urls py 设置为 from django conf urls i
  • 在 mysqli fetch_assoc( ) PHP 中保留换行符

    我尝试使用以下代码从 MySQL 数据库获取所有行 sql SELECT FROM myTable result conn gt query sql while row result gt fetch assoc output row ec
  • Android:获取所有发送的短信? (发件箱)

    我正在编写一个应用程序来备份所有短信 已经研究了一段时间 我刚刚意识到我用来检索短信的方法只能获取我收到的短信 收件箱 是否有可能以任何方式获得发件箱 如果它不在 Android API 中 是否可以通过某种方式从默认短信应用程序获取它 即
  • 如何在 Android 上设置日志文件最大大小

    我正在使用 microlog4android 来记录到文件 问题是如何设置最大文件大小 microlog4android FileAppender 类有两个方法 getLogSize 始终返回 1 和clear 当日志达到一定大小时我可以清
  • 是否可以更改 Wicket 活动指示器的颜色?

    情况 我正在与 Wicket s 合作IndicatingAjaxButton 我在黑色背景的页面上设置了按钮 当用户按下按钮时 按钮的活动指示灯会熄灭并旋转 直到系统准备好继续前进 问题 由于黑色背景 指示器看起来很糟糕 由于指示器的一部
  • 了解 PDF 运算符 - 适用于 iOS 应用程序

    我的任务是为我们公司创建一个 pdf 阅读器应用程序 经过一些研究后 我对 PDF 中的不同运算符感到困惑 我想澄清以下几点 The Tm运算符用作每条线的起点 我的理解正确吗 If the Tm运算符是每行的起点 我如何解析显示的文本on