我想从一篇论文中提取一些pdf图像用于演示。在windows中,Adobe Illustrator工作得很好,但我现在必须在Debian框中执行此任务。
我在网上找到的两个流行的解决方案是使用
- pdfimage
- Inkscape
pdfimage不能满足我的需求,因为我想要矢量图形(pdf)而不是jpgs,所以我更喜欢使用Inkscape,但它并没有按预期工作。我希望我可以像使用Illustrator一样,使用一些选择器工具来拖动一个框并选择里面的所有东西,但Inkscape中的工具都不起作用。
如果我使用"选择和转换对象"工具(黑色箭头),整个pdf页面都会被选中,而我只想要一小部分;如果我使用"按节点编辑路径"工具(带有一些节点的黑色三角形箭头),我一次只能选择一个对象。拖放(即使按下了shift键)也不起作用。
我想知道是否有办法绕过这一点,或者Debian中是否有更好的工具可以实现这一点?谢谢
在我看来,我可以建议从pdf 中获取矢量图像的方法
有一种叫做的工具
pdftocairo,包含在poppler utils中
- http://poppler.freedesktop.org/
语法:
pdftocairo [options] <PDF-file> [<output-file>]
pdftocairo能够在输出中生成光栅和矢量格式,最后,它能够将单个pdf页面的内容转换为:
- -ps:生成PostScript文件
- -eps:生成封装的PostScript(eps)
- -svg:生成可缩放矢量图形(svg)文件
适合您需求的最佳输出格式可能是svg,因此在转换pdf页面后,您可以使用任何svg应用程序(例如,使用inkscape或旧的sodipodi)打开此svg,选择您想要提取的矢量元素并保存
恢复:
如果您有MULTIPAGE PDF
您首先将此多页pdf拆分为单个页面(创建该单页的文件夹)
pdftk file.pdf burst
然后使用pdftocairo将任何pdf页面转换为svg
for f in *.pdf; do pdftocairo -svg $f; done
您可以使用pdftk拆分多页pdf文件,然后使用inkscape使用命令行将pdf转换为svg文件,例如
inkscape --without-gui --file=input.pdf --export-plain-svg=output.svg