使用Inkscape从pdf中提取矢量图形

Yan*_*ang 12 pdf graphics inkscape

我想从论文中提取一些pdf图像用于演示目的.在Windows中,Adobe Illustrator工作正常,但我现在必须在Debian框中执行此任务.

我在网上找到的两种流行解决方案正在使

pdfimage不符合我的需求,因为我想要矢量图形(pdf)而不是jpgs所以我更喜欢使用Inkscape,但它不能按预期工作.我希望我可以使用一些选择器工具来拖动一个框并像我通常使用Illustrator一样选择内部的所有内容,但Inkscape中没有任何工具可以工作.

如果我使用"选择和变换对象"工具(黑色箭头),则选择整个pdf页面,而我只需要一小部分; 如果我使用"按节点编辑路径"工具(带有一些节点的黑色三角形箭头),我一次只能选择一个对象.拖放(即使按下shift键)也不起作用.

我想知道是否有办法解决这个问题,或者Debian中是否有更好的工具来实现相同的目标?谢谢.

Din*_*ngo 18

在我的拙见中,我可以建议我用来从pdf 获取矢量图像的方式

有一个叫做的工具

pdftocairo,包含在poppler-utils中

句法:

pdftocairo [options] <PDF-file> [<output-file>]
Run Code Online (Sandbox Code Playgroud)

pdftocairo能够在输出中生成光栅和矢量格式,在这些格式之间,它能够转换单个pdf页面的内容(如果你有一个多页 pdf文档,你首先需要在它的单个pdf页面中爆炸它,例如pdftk),进入:

  • -ps:生成PostScript文件
  • -eps:生成Encapsulated PostScript(EPS)
  • -svg:生成可缩放矢量图形(SVG)文件

您需要的最佳输出格式可能是svg,因此在转换pdf页面后,您可以使用任何svg应用程序打开此svg(例如使用inkscape或旧的sodipodi),选择要提取并保存的向量元素

RESUMING:

如果你有一个MULTIPAGE PDF

  1. 您首先将此多页pdf拆分为单页(为此单页创建一个文件夹)

    pdftk file.pdf burst
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后使用pdftocairo将任何pdf页面转换为svg

    for f in *.pdf; do pdftocairo -svg $f; done
    
    Run Code Online (Sandbox Code Playgroud)

  • 你可能需要**组合**才能选择单个项目 (2认同)

小智 12

您可以使用pdftk拆分多页pdf文件,然后使用inkscape使用命令行将pdf转换为svg文件,例如

inkscape --without-gui --file=input.pdf --export-plain-svg=output.svg
Run Code Online (Sandbox Code Playgroud)