从PDF提取嵌入式图像


165

在开始使用Ubuntu之前,我使用Nitro PDF阅读器自动从PDF文件提取图像。有用于Linux的PDF阅读器吗?

我希望能够比拍摄快照时更快/更轻松地提取图像。


您还记得NitroPDF对矢量图像的处理能力吗?能pdfimages比NitroPDF更好/更差吗?
莱奥波尔德·赫兹(LéoLéopoldHertz),2016年


2
@ funky-future显然,这两个问题是重复的,但您的重复目标只有两个答案,并且这两个答案之一是垃圾邮件答案,因此,应将重复的方向反向,以免该问题被假人锤打。
卡雷尔

Answers:


196

采用 pdfimages

pdfimages 是PDF图像提取工具,可将PDF文件中的图像保存为PPM,PBM,JPEG或JPEG 2000文件格式。

它是poppler-utils软件包的一部分,您需要安装它。

用法: pdfimages [options] <PDF-file> <image-root>

示例:以下内容从PDF文件中提取所有图像,并将它们保存为JPEG格式。

pdfimages -j in.pdf /tmp/out

将PDF文件in.pdf中的图像保存在文件中/tmp/out-000.jpg(或/tmp/out-000.pbm;请参见下文)/tmp/out-001.jpg等。


pdfimages 手册页说明:

-j:  Normally, all images are written as PBM (for monochrome images) or PPM for
     non-monochrome images) files. With this option,  images in DCT format are
     saved as JPEG files. All non-DCT images are saved in PBM/PPM format as usual.

8
有一个以原始格式提取图像的解决方案会很好。重新编码JPEG并不是很理想。
基督教徒

32
来自手册页的-all Write JPEG, JPEG2000, JBIG2, and CCITT images in their native format. CMYK files are written as TIFF files. All other images are written as PNG files. This is equivalent to specifying the options -png -tiff -j -jp2 -jbig2 -ccitt.
@Christian

2
请注意,该-all开关仅在最新的poppler-utils版本中受支持。例如,如果您仍然在12.04,您将无法访问此选项
Glutanimate

1
如果您不能使用-allPNM格式的go。它们是无损的,您可以将图像后处理为例如PNG。
Tomasz Gandor

1
@Christian,用于$ pdfimages -list <PDF-file>检查“ enc”列中的原始格式,因此您不必将图像重新编码为另一种格式。
何塞·巴拉卡特

24

我经常为此使用Inkscape。加载页面,然后删除所有其他内容。好处是您可以在SVG中获取矢量图像并根据需要对其进行修改。


某些PDF只能使用Inkscape内部导入正确导入(poppler / cairo导入或pdfimage无法正确解析)。一旦导入,复制和粘贴图像到一个新的文件,并调整页面选择graphicdesign.stackexchange.com/a/21638/95041
sdaffa23fdsf

对我来说没问题,那是最好的解决方案,请注意您必须一次选择一页!
Jimmy Olano

5

我有一个双列PDF文件,其中包含用LaTeX创建的嵌入图像,其中原始图像作为EPS提供。我尝试基于提出了建议的解决方案pdfimages,但是很遗憾,它没有返回任何图像。后来我尝试使用Inkscape,但是它生成的SVG图像失真了,也没有运气将它们导出为EPS。

适用于我们的软件是MasterPdfEditor

这是程序

  • 使用Master PDF Editor打开文件
  • 使用编辑工具(Alt + 1)选择需要提取的图像
  • 复制该图(Ctrl + C)
  • 单击图像周围的虚线框,然后检出右侧栏(对象检查器),然后单击“ Geomerty”。在那里您可以看到选择的大小
  • 创建一个新文件(Ctrl + N)。它将提示您提供页面大小。提供图像的确切大小并创建新文件
  • 现在有点棘手:粘贴图像(Ctrl + V)。该图像可能不会显示在新文件中。使用箭头将其移动,直到能够对其进行跟踪。
  • 使用箭头使图像在新页面中居中
  • 另存为PDF

结果是非常高质量的,但是该软件不是免费的。有一个演示版,它“允许您尝试所有功能”,但附带“在输出文件上添加水印”。坦率地说,我在生成的PDF中没有发现任何水印。


这是Ask Ubuntu ...我们在这里喜欢开源,您的解决方案是一个开源商业解决方案...与已经被认可的答案相比,这有什么好处呢?(同时为-1)
Fabby

3
@Fabby谢谢您的反馈。我不知道 askubuntu.com上有这样的规定吗?但是,一旦打开Ubuntu软件中心,您就会获得有关非免费应用程序的建议。
Pantelis Sopasakis '16

不,没有“规则”,这就是为什么我没有投票删除该答案的原因,但是有更好的免费工具(例如免费啤酒言论自由),这只是一种意见。
Fabby

1
+1。我使用过ImageMagick命令行,但这对于寻找GUI的人来说是一个有趣的解决方案。
rpmcruz

2
它对某些人有效,足够了。别当纳粹...。我不知道谁是我们。你可以只为自己说话。+1的答案
sdaffa23fdsf

4

您也可以尝试pdfmod。它是一个GUI(图形界面),可以提取图像并进行其他基本的pdf操作。


嗯,对我来说似乎有点马车。插入主要包含紫罗兰色图像的PDF并获得绿色图像。
DBX12

2

如果您需要的是pdf / eps格式的裁剪图像,请使用pdfmod(根据“待办事项”的建议)提取包含该图像的页面。

然后,pdfcrop您可能会通过反复试验正确设置边距来裁剪:

pdfcrop --margins "-15 -50 0 -140" extracted_page.pdf

1

我使用pdfimages这是一个命令行工具,对我来说非常有用。它非常易于使用,您可以使用--help选项来了解有关其用法的更多信息。我使用Ubuntu,并且已预装。如果您的pdf文件已加密或受密码保护,则可以使用其他选项,因此此工具非常有效。您可以在此处阅读 有关pdfimages的更多信息


4
在发布您的答案之前,请阅读其他答案。请注意还有其他内容。
edwin

好的,很抱歉:)我想发布我的信息,因为它具有有关受密码保护的pdf文件的一些信息,我解释说该工具具有此选项,另外我还发布了一个链接,该链接是有关此工具的教程。
jetbird13

如果您获得足够的声誉,则可以评论他人的答案或对其进行投票。
edwin

1

使用pdfimages时,提取的图像可能分为两个或更多部分。将它们重新组合在一起而无需担心提取格式的一种简单方法是将零件导入LibreOffice Draw,通过图像裁剪对话框进行裁剪,放置零件,调整页面大小并以您喜欢的任何格式导出。


1

如果要使用pdfviewer从pdf裁剪图像,可以尝试okular。它可以裁剪png或jpeg格式的任何内容(文本或图像)。如果要从pdf中提取png格式的图像,则可以使用pdftohtml用最少的命令来完成。它将pdf转换为html加图像。在这里您可以找到一个示例-https://www.youtube.com/watch?v=CG1rf7k3xo8。如果要从pdf中提取许多图像,建议您尝试一下。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.