iOS PDF到纯文本解析器

DIJ*_*DIJ 2 pdf text extract ios cgpdf

我对这个问题很感兴趣.我在这里几乎阅读了关于它的每一篇文章,如果有人能在正确的方向上推动我,我将非常感激.

我有一个PDF,我想提取它的文本,我只对文字和空格感兴趣.我已经设置了CGPDFScanner和它的回调方法.我所读到的是,就提取文本而言,我只需要考虑4个运算符TJ,Tj,qout(')和doubleqout(").

我想我还需要跟踪文本空间,以便能够确定字母是组合在一起形成一个单词还是应该用空格分隔.但我不知道如何做到这一点.

在PDF中,所有文本都采用格式

[(X)-24.2524(X)-24.2524(X)-24.2524(Y)-24.2524(Y)-24.2524]TJ
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚(使用PDF规范)这些数字的含义.SO上有人说你不应该害怕PDF规范,但坦率地说,我发现它们不容易阅读/理解.

我研究过有用的PDFKitten代码.

任何帮助将不胜感激.

Mar*_*n R 6

我不能给你建议如何从PDF中提取单词,但格式为

[(X)-24.2524(X)-24.2524(X)-24.2524(Y)-24.2524(Y)-24.2524]TJ
Run Code Online (Sandbox Code Playgroud)

例如,在PDF 1.7规范的 "9.4.3文本显示操作符"部分中进行了解释.TJ运营商的描述是:

显示一个或多个文本字符串,允许单独的字形定位.数组的每个元素应该是字符串或数字.如果元素是字符串,则此运算符应显示字符串.如果是数字,运营商应按该数量调整文本位置; 也就是说,它应翻译文本矩阵Tm.数字应以文本空间为单位的千分之一表示.

所以数字是调整字母之间的距离.