是否有任何库可以帮助从可与 PHP 一起使用的矩形区域中提取 pdf 中的文本

Rao*_*har 0 php pdf pdf-to-html pdftotext

我正在寻找一些(最好是免费的)库,可以帮助从指定的矩形区域中提取 PDF 文本,该区域由左、上、宽和高参数指定。它应该可以在 Linux 系统上与 PHP 一起使用。你能推荐一个这样的图书馆和一个工作示例吗?

Kur*_*fle 5

命令行

PHP 也可以使用外部命令行工具。所以如果这对你来说是一个选择......

如果您使用命令行pdftotext——但只有 Poppler 版本,而不是 XPDF 版本!-- 您有这些可选的 CLI 参数:

  -x : 裁剪区域左上角的 x 坐标
  -y : 裁剪区域左上角的 y 坐标
  -W :以像素为单位的裁剪区域宽度(默认为 0)
  -H : 裁剪区域的高度,以像素为单位 

一个工作示例:

首先,让我们使用 Ghostscript 从 Bash 手册页创建一个 PDF:

man -t bash | gs -o man-bash.pdf -sDEVICE=pdfwrite -
Run Code Online (Sandbox Code Playgroud)

接下来,让我们从中提取一些文本。使用宽度 200、高度 100 和左上角(200,200){you 在此处从左上角计算为定位于(0,0)}:

kp@mbp:~$ pdftotext -f 1 -l 1 -x 200 -y 200 -W 200 -H 100 man-bash.pdf -
 
 Shell 和 Ut 的一致实现
 标准 1003.1)。Bash 可以配置为 POS
 
 描述中记录的acter shell选项
 外壳被调用。此外,bash解释
 
 选项存在,然后从 s 读取命令

请注意我的使用-f(用于˚F IRST页)和-l(用于AST页)。如果您不使用它,pdftotext将为多页 PDF 的每一页打印相应的文本区域。

与此屏幕截图进行比较:

带有 Bash 手册页的 PDF 屏幕截图,突出显示选定的矩形

看起来它按预期工作,不是吗?

图书馆

波普勒

Poppler 也可以用作库。但是我对这种方法没有任何经验(对 PHP 也没有太多经验)。

TET

如果您找不到满足您要求的免费库,请查看从 PDF 中提取文本的最佳工具TET,文本提取工具包。TET 是PDFlib.com产品系列的一部分。

PDFlib.com 是 Thomas Merz 的公司。如果您不认识他的名字:Thomas Merz 是“PostScript and PDF Bible”的作者之一。

TET 的第一个化身是图书馆。那个可能可以做你想做的一切,包括页面上每个元素的位置信息。

pdflib.com 还提供了该技术的另一种化身,即AcrobatTET 插件。第三个版本是PDFlib TET iFilter。这是一个用于 Windows 桌面的独立工具。这两者都是免费的(如啤酒),可用于私人、非商业目的。

TET 比 Adob​​e 自己的文本提取要好得多。它为我提取了其他工具(包括 Adob​​e 的)只吐出垃圾的文本。

试一试。