我正在尝试解析 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
。 e
和 f
参数对应于 tx
和 ty
,否则字段的名称相同。
请参阅PDF specification有关更多详细信息,特别是有关文本的章节(第 250 页介绍了 Tm
运算符)。
请记住,操作数是从堆栈中弹出的,因此 f
将是您获得的第一个值,a
将是最后一个。
关于iphone - 处理 iPhone/iPad 上使用 CGPDFScanner 获得的 PDF 文本矩阵 (Tm) 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5403610/