如何从PDF文件中提取矢量?

Dev*_*she 60 pdf vector-graphics

我有一个带有矢量图像的 PDF 文件。(我从网上下载的,所以我没有任何原件。)

我希望提取矢量,以便我可以将它们叠加在其他一些图像上;在印刷媒体或网站上使用它们。

如何从 PDF 文件中提取特定矢量?

是否有任何软件可以从 PDF 文件中提取矢量?(最好是免费的。)

slh*_*hck 55

您可以使用Inkscape,它是一个免费、开源和跨平台的矢量图形应用程序。它将允许您导入 PDF 文件并选择嵌入的矢量。然后,您可以根据需要编辑它们并进行处理。

Inkscape 网站上提供了详细的文档

请注意,在 Linux 上它需要 X11。还有一个本机 Windows 版本。

或者,您可能想要试用 Adob​​e Illustrator(付费软件)。

  • 在 Linux 上,它需要 X11 - 还有一个原生的 Windows 版本(我只是很好地用于从 PDF 中提取矢量图)。 (2认同)

hac*_*rb9 28

虽然 Inkscape 是一种很棒的方法,但对于那些缺乏 X11 的人来说,您还可以使用命令行中的poppler-utils将 PDF 的各个页面提取为 SVG 格式。例如,仅提取第 30 页:

$ pdftocairo -f 30 -l 30 -svg  somehugemanual.pdf  myextractedpage.svg
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用您最喜欢的矢量编辑器(我的是 Inkscape)将图像与文本隔离开来。

或者,如果您是硬核命令行用户,您可以提取到 EPS(封装后脚本)并用于sed隐藏所有文本(这恰好位于 pdftocairo 的 BT 和 ET 行之间)。就是这样:

$ pdftocairo -f 30 -l 30 -eps  manual.pdf  - | sed '/^BT$/,/^ET$/ d' > myimage.eps
Run Code Online (Sandbox Code Playgroud)

而且,如果你真的很想避免使用 X11,你甚至可以使用 Ghostscript 的eps2eps命令从命令行缩小图像的边界框:

$ eps2eps myimage.eps myimage-bb.eps
Run Code Online (Sandbox Code Playgroud)

我已经测试过了,效果很好。但是,就我个人而言,我发现仅使用 Inkscape 更容易。