gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:36 26 4
gpt4 key购买 nike

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

  • Tm 运算符用作每行的起点。 (我的理解对吗?)
  • 如果 Tm 运算符是每一行的起点,我如何解析在指定的 Tm显示的文本>?例如:

     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?

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

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

最佳答案

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

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

关于ios - 了解 PDF 运算符 - 适用于 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com