从PDF文件中提取vector图像

有一个Linux的命令行工具,将从PDF文件中提取数字,并将其保存为vector格式? 我知道pdfimages,但是这将创build一个位图,这不是我所需要的。

而不是仅用于图像 ,因为你似乎需要,但是

  • pdftocairo

http://poppler.freedesktop.org/

http://www.manpagez.com/man/1/pdftocairo/ (手册页)

能够将PDF页面呈现为其他矢量格式,如PS / EPS / SVG

假设你有一个带矢量化图像的PDF页面,你可以渲染这个页面到SVG,然后只复制你感兴趣的图像

注意: pdftocairo无法呈现多页PDF到多页SVG

如果你需要转换成几个pdf页面,你首先需要选择这个页面范围,然后将pdf页面转换成单个pdf页面

例如(如果我们需要将pdf文件的1-10页转换为svg)

pdftk file.pdf cat 1-10 output 1-10.pdf

pdftk 1-10.pdf burst

for f in *.pdf; do pdftocairo -svg $f; done

最后,用sodipodi或者inkscape,你可以从svg渲染的pdf页面中提取你感兴趣的图像

你认为什么是“数字”? 这是PDF中不存在的概念。 有这么多的工具,可以从PDF文件中提取图像的原因,是因为图像是一个非常明确的实体。

然而,你的“数字”却不太明确。 PDF文件可能包含大量的矢量内容,你不会叫一个数字。 例如,文字可以被抚摸,这将使它成为矢量艺术,因此它可能会与你的数字混淆。 其他装饰元素可以在页面的背景中使用。 文本可以加下划线,这将是一个向量元素…

另一方面,你的“图”可能包含一个文字说明,使事情更加复杂。

由于PDF不具有数字的概念,你必须弄清楚如何在PDF页面上分离一个(可能是因为创建者应用程序总是向它们添加元数据,或者因为它们使用特殊的颜色或…如果你能隔离它们,应该可以修改页面上不相关的东西,并使用其他答案中描述的某些技术将你需要的东西导出为EPS或SVG。

本文介绍了不完全基于命令行的工具gpdfx,inkscape和pdf2svg,但仍然有帮助。