我试图解析pdf内容,以搜索和突出文本。我设法用CGPDF的东西找到文本与TJ和Tj运算符,并说在哪个页面上的单词是。问题在于突出显示。
我跟踪了许多其他的帖子,比如这个获取文本位置或者这个Pdf搜索。
我知道文本定位的操作符是Tm (文本矩阵)、TD和Td (T*可能),但我不知道如何使用这些信息。
当我打印Tm值时,我得到一个9位整数,我可以假设这是一个3x3矩阵。我可以给你输出:
2011-03-23 10:59:07.894 PDFSearch11035:40b BT(I) 161361744: 2011-03-23 10:59:07.896 PDFSearch11035:40b TM(I) 161361104: 2011-03-23 10:59:07.897 PDFSearch11035:40b Tf(I) 161361616: 2011-03-23 10:59:07.899 PDFSearch11035:40b TJ: R 2011-03-23 10:59:07.899 PDFSearch11035:40b TJ: E 2011-03-23 10:59:07.901 PDFSearch11035:40b TJ: T 2011-03-23 10:59:07.901 PDFSearch11035:40b TJ: I 2011-03-23 10:59:07.903 PDFSearch11035:40b TJ: co 2011-03-23 10:59:07.903 PDFSearch11035:40b TJ: L 2011-03-23 10:59:07.905 PDFSearch11035:40b TJ: O 2011-03-23 10:59:07.907 PDFSearch11035:40b及(I) 161361872:
知道如何用它找到文本定位吗?然后用它在pdf视图上用quartz2D来显示一个盒子?
谢谢:)
发布于 2011-08-13 12:14:19
Tm操作符有6个参数,因此您需要使用CGPDFScannerPopNumber 6次,这将得到6个可以用来构造CGAffineTransform的浮点值。e和f参数对应于tx和ty,否则字段名相同。
有关更多详细信息,请参阅PDF规范,特别是关于文本的章节(第250页涵盖Tm操作符)。
请记住,操作数是从堆栈中弹出的,因此f将是您获得的第一个值,a将是最后一个值。
发布于 2011-08-13 12:05:43
查看PDFKitten,开源项目,它们解析所有的TJ、Tj、TM和其他容器来计算屏幕上的文本位置。这并不完美,但只是个开始。在pdfs中搜索可能很棘手,有很多方法可以生成pdf显示文本,其中有些甚至根本不是字体。
https://stackoverflow.com/questions/5403610
复制相似问题