iphone - 处理 iPhone/iPad 上使用 CGPDFScanner 获得的 PDF 文本矩阵 (Tm) 值

标签 iphone search pdf text matrix

我正在尝试解析 pdf 内容以便搜索和突出显示文本。 我设法使用 CGPDF 的东西来查找带有 TJ 和 Tj 运算符的文本,并说出该单词在哪一页。问题在于突出显示。

我关注了许多其他帖子,例如此 Getting text position或者这个 Pdf search .

我知道文本定位的运算符是 Tm(文本矩阵)、TD 和 Td(可能是 T*),但我不知道如何使用这些信息。

当我打印 Tm 值时,我得到一个九位数的整数,我可以假设这是一个 3x3 矩阵。我可以给你输出:

2011-03-23 10:59:07.894 PDFSearch[11035:40b] BT(I) 161361744:

2011-03-23 10:59:07.896 PDFSearch[11035:40b] TM(I) 161361104:

2011-03-23 10:59:07.897 PDFSearch[11035:40b] Tf(I) 161361616:

2011-03-23 10:59:07.899 PDFSearch[11035:40b] TJ: R

2011-03-23 10:59:07.899 PDFSearch[11035:40b] TJ: e

2011-03-23 10:59:07.901 PDFSearch[11035:40b] TJ: t

2011-03-23 10:59:07.901 PDFSearch[11035:40b] TJ: i

2011-03-23 10:59:07.903 PDFSearch[11035:40b] TJ: co

2011-03-23 10:59:07.903 PDFSearch[11035:40b] TJ: l

2011-03-23 10:59:07.905 PDFSearch[11035:40b] TJ: o

2011-03-23 10:59:07.907 PDFSearch[11035:40b] ET(I) 161361872:

知道如何使用它来查找文本定位吗?并用它在 pdf View 上用quartz2D 绘制一个框?

谢谢:)

最佳答案

Tm 运算符有六个参数,因此您需要使用 CGPDFScannerPopNumber 六次,这将获得六个浮点值,您可以使用它们来构造 CGAffineTransform ef 参数对应于 txty,否则字段的名称相同。

请参阅PDF specification有关更多详细信息,特别是有关文本的章节(第 250 页介绍了 Tm 运算符)。

请记住,操作数是从堆栈中弹出的,因此 f 将是您获得的第一个值,a 将是最后一个。

关于iphone - 处理 iPhone/iPad 上使用 CGPDFScanner 获得的 PDF 文本矩阵 (Tm) 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5403610/

相关文章:

iphone - iOS:有条件地加载 View Controller

在 Solr 中搜索多值字段为空或具有特定值的文档

swift - 在研究包中保存电子邮件同意文档(swift 3.1)

html - 如何从 HTML 创建 PDF?

java - 无法读取 iText 生成的 pdf

iphone - 在给定的纬度和经度从 MKMapView 生成 UIImage

iphone - 阅读iOS bundle 信息

iphone - Xcode iOS 管理器提交到应用商店会产生 "The archive is invalid"错误

search - 在 Perl6 中用彩色文本替换 HTML <i> 标签

powershell - 如何使用Powershell定位指定的目录?