从 PDF 文件中提取背景图像?

从 PDF 文件中提取背景图像?

我有一个 PDF 文件,其中包含我工作的建筑物的地图,如下所示:

http://www.libsys.und.edu/dev/FloorPlans_All.pdf

原始源文件已丢失,我被要求提取地图图像,最好没有覆盖在它们上面的文本和图标。事实证明,这非常困难。

到目前为止,我已经尝试过以下 GUI 程序:

  • Adobe Reader:允许我选择文本,但不允许选择背景图像
  • FoxIt PDF Viewer:允许我选择文本,但不能选择背景图像
  • Ubuntu 10.10 上的 XPDF:允许我选择文本,但不能选择背景图像

还有以下命令行程序:

  • pdfimages:可以很好地提取表示浴室的图标,但不能提取背景图像
  • pdftohtml:与 pdfimages 相同,但会生成标记不良的 HTML 文档
  • pdfextract:与 pdfimages 相同
  • 转换:成功保存图像,但文本已刻录到图像中

我甚至尝试在文本编辑器中手动打开 PDF,并通过将流对象粘贴到新文件中并将其保存为 .jpg、.png 或 .bmp 扩展名(依次保存)来提取流对象。考虑到我对 PDF 文件的内部结构了解甚少,这种方法不起作用也就不足为奇了。

那么... 有什么方法可以从这个东西中检索地图图像而不获取文本和图标?

答案1

您可以从以下位置下载 XPDF 库http://www.foolabs.com/xpdf/download.html适用于 Linux 和 Windows。然后运行pdfimages -j input.pdf output,您应该会得到output-000.jpgoutput-001.jpg等。此外,请查看http://linuxcommand.org/man_pages/pdfimages1.html以获得更多使用选项。

答案2

好吧,经过 5 分钟的折腾,我的分析是 PDF 比我原先想象的还要奇怪,这说明了一些问题。

不确定您的预算是多少,但使用 Acrobat Pro Extended 9,您可以使用:

A. 工具、高级编辑、修饰文本工具

-Select All
-Right click, Properties
-Text tab
-Select a standard font (e.g. Arial), close
-Hit Delete

B. 工具、高级编辑、修饰对象工具

-选择对象(你可以得到大多数,但不是全部(例如,无法选择学生电脑图标),然后删除

以下是快速清理后的第 1 页的样子: http://dl.dropbox.com/u/7434256/p1test.pdf

答案3

以 Craig H 制作的 PDF 为例,通过 Ghostscript 运行它,对其进行一些优化。在 Windows 上,命令行是:

gswin32c.exe ^
   -o p1test-gs-optimized.pdf ^
   -sDEVICE=pdfwrite ^
   -dPDFSETTIINGS=/prepress ^
    p1test.pdf

在 Linux/Unix/Mac OS X 上执行:

gs \
   -o p1test-gs-optimized.pdf \
   -sDEVICE=pdfwrite \
   -dPDFSETTIINGS=/prepress \
    p1test.pdf

这会将文件大小从 3.000 kByte 减小到大约 60 kByte,而不会丢失内容。然后将其导入 Inkscape(或 InDesign、Illustrator 等)应该会快得多……

答案4

在我用过的 Linux 环境中pdfmod一次性提取所有图片。请参阅https://wiki.gnome.org/Apps/PdfMod或者,对于 Ubuntu 用户,https://apps.ubuntu.com/cat/applications/pdfmod/

要在 Ubuntu 中下载并安装它,只需输入sudo apt-get install pdfmod

  • pdfmod启动 pdfmod GUI(在仪表板或命令行终端中输入)
  • 打开 PDF 文档
  • 选择所有页面(或您想要从中提取图像的任何页面)
  • 编辑菜单项将显示在选定范围内提取尽可能多的图像的选项(export n images,其中 n 为相应数字)。您也可以通过将鼠标悬停在选择上并激活本地菜单(右手用户单击鼠标右键)来访问此命令。
  • 一旦您继续执行此操作,将会打开一个新窗口,您可以在其中选择要保存图像的位置。

希望这可以帮助。

相关内容