如何从PDF文件中提取图像

stu*_*ack 58 windows-7 pdf extract processing images

我目前使用 Foxit 的 PDF 阅读器,最近我从互联网上下载了一张图片,但它在一个 PDF 文件中。如何提取此图像?

操作系统为 Windows 7。

Kur*_*fle 81

如果您下载适用于 Windows 的 XPDF(此处),您会在其中找到一些 .exe 文件。您无需“安装”即可运行它们。pdfimages.exe像这样使用:

pdfimages.exe -help
Run Code Online (Sandbox Code Playgroud)

这将显示帮助屏幕。

pdfimages.exe ^
    -j ^
    c:\path\to\your.pdf ^
    c:\path\to\where\you\want\images\prefix\
Run Code Online (Sandbox Code Playgroud)

这会将所有 JPEG 提取为前缀 00N.jpg,并将所有其他图像提取为前缀 00N.ppm(便携式 PixMap)。

[ ComFreek 编辑:请注意目标路径中的尾部斜杠,如果您不想将所有图像提取到其父目录中,这很重要。] --
{ KurtPfeifle 编辑:我不同意 ComFreek 的评论,但请离开它让读者自己测试并找出结果的差异。我的原始参数,不使用尾部斜杠,..\prefix将作为用于提取文件的图像名称的前缀。}

pdfimages.exe ^
    -j ^
    -f 11 ^
    -l 13 ^
    c:\path\to\your.pdf ^
    c:\path\to\where\you\want\images\prefix\
Run Code Online (Sandbox Code Playgroud)

与之前相同,但将图像提取限制为第 11 页('f' = first)到第 13 页('l' = last)。


更新:

与此同时,我更喜欢Poppler 的版本pdfimages-- 特别是因为它获得了这个新功能:添加-list到命令行以便仅列出(而不是提取)PDF 中包含的图像,以及它们的一些属性。例子:

pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf

  页码类型宽度高度颜色补偿 bpc enc interp 对象 ID
  -------------------------------------------------- -------------------
     7 0 图像 581 838 rgb 3 8 jpeg 没有 39 0
     7 1 图像 4 4 RGB 3 8 图像编号 40 0
     7 2 图像 314 332 rgb 3 8 jpx 无 44 0
     7 3 图像 358 430 rgb 3 8 jpx 无 45 0
     7 4 图像 4 4 RGB 3 8 图像编号 46 0
     7 5 图像 4 4 RGB 3 8 图像编号 47 0
     7 6 图像 4 6 RGB 3 8 图像编号 48 0
     7 7 图像 596 462 rgb 3 8 jpx 无 49 0
     7 8 图像 4 6 RGB 3 8 图像编号 50 0
     7 9 图像 4 4 RGB 3 8 图像编号 51 0
     7 10 图像 8 10 RGB 3 8 图像编号 41 0
     7 11 图像 6 6 RGB 3 8 图像编号 42 0
     7 12 图像 113 27 rgb 3 8 jpx 无 43 0
     8 13 图像 582 839 灰色 1 8 jpeg no 2080 0
     8 14 图像 344 364 灰色 1 8 jpx 无 2079 0

注意再次:这个版本pdfimages是poppler的一个(从XPDF请问一个没有(还)支持这一新功能?),以及版本必须是v0.20.2或更高版本。

  • 注意:XPDF 不像前一段时间从它分叉的 [poppler 库](http://poppler.freedesktop.org/) 那样积极维护。Poppler 也提供了`pdfimages`,有些人可能更喜欢使用它。 (4认同)
  • 我知道这是旧的,但只是想分享如果有人正在寻找 Windows 二进制文件,您可以在这里获得它 http://blog.alivate.com.au/poppler-windows/ (4认同)
  • @BurhanKhalid:预构建的二进制文件在这里:http://sourceforge.net/projects/poppler-win32/ (2认同)
  • @KurtPfeifle 不幸的是,那些根本不包含任何 exe 文件。 (2认同)

Den*_*aia 12

您可以尝试将 PDF 导入Inkscape,然后从那里开始工作。Inkscape 一次只能打开一页,但可以让您完全控制页面内容。您将能够很容易地从 PDF 中提取和操作矢量图形。

但是,如果您想从 PDF 中提取光栅图像,我很确定pdfimages从 XPDF 中提取更容易(但在学习如何从 SVG 文件中提取嵌入图像后,您仍然可以尝试使用 Inkscape )。


小智 6

如果不需要图像的原始像素分辨率,快速方法是按 ALT 和打印屏幕按钮。然后选择将图像粘贴到您想要的位置。

保留分辨率的另一种方法是在图像编辑程序(例如 Adob​​e Photoshop)中打开 PDF 并在其中使用它。


nix*_*xda 5

无需安装任何软件,您可以切换到已内置此功能的PDF-XChange Viewer (选择便携式版本

  • 将所有或选定的页面导出为图像
  • 输出格式:PNG、JPG、TIFF、BMP
  • 选择 DPI、压缩级别、灰度
  • 可以将多页保存为多页 TIFF

    在此处输入图片说明

    在此处输入图片说明
    点击放大


请注意,虽然此方法将整个 PDF 页面转换为图像,但如果您想从包含混合内容(图像 + 文本)的 PDF 页面中提取图像以仅获取图像,则使用 Sumatra PDF 的@Laurenz 解释的方法更胜一筹。

  • 您需要“选择 DPI”这一事实违背了目的。您正在调整光栅图像(像素阵列)的大小,并且光栅图像的任何大小调整都会导致质量和信息的损失。 (3认同)
  • @MarkSeemann 我无法关注。“不安装任何软件”在这种情况下意味着有一个便携式版本可用。根据定义,无法“安装”便携式软件。您只需下载、解压缩并启动它。 (2认同)

Den*_*aia 5

MuPDF是一个新的(创建于 2006 年)多平台(桌面和移动)PDF 查看器,在 AGPL 许可证下发布。它由Ghostscript的同一个人维护。

它包含一个用于从 PDF 中提取图像的命令行工具:

mutool extract [options] file.pdf [object numbers]
Run Code Online (Sandbox Code Playgroud)

extract 命令可用于从 PDF 中提取图像和字体文件。如果命令行上没有给出对象编号,则将提取所有图像和字体。

-p password
       Use the specified password if the file is encrypted.

-r     Convert images to RGB when extracting them.
Run Code Online (Sandbox Code Playgroud)


Lau*_*enz 5

Sumatra PDF是一款快速、轻量级的开源 PDF 阅读器,可以将图像直接复制到剪贴板,无需任何重新光栅化。