2

我在这个问题上很迷茫。我已经阅读了几乎所有关于它的帖子,如果有人能将我推向正确的方向,我将非常感激。

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

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

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

[(X)-24.2524(X)-24.2524(X)-24.2524(Y)-24.2524(Y)-24.2524]TJ

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

我研究了有用的 PDFKitten 代码。

任何帮助将不胜感激。

4

1 回答 1

6

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

[(X)-24.2524(X)-24.2524(X)-24.2524(Y)-24.2524(Y)-24.2524]TJ

例如,在PDF 1.7 Specification的“9.4.3 Text-Showing Operators”部分中进行了解释。运营商的描述TJ是:

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

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

于 2012-09-17T18:39:45.547 回答