14

我想从论文中提取一些 pdf 图像用于演示目的。在 Windows 中,Adobe Illustrator 工作得很好,但我现在必须在 Debian 盒子中执行此任务。

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

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

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

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

4

2 回答 2

20

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

有一个工具叫

pdftocairo,包含在poppler-utils中

句法:

pdftocairo [options] <PDF-file> [<output-file>]

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

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

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

恢复:

如果您有多页 PDF

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

    pdftk file.pdf burst
    
  2. 然后使用pdftocairo将任何 pdf 页面转换为svg

    for f in *.pdf; do pdftocairo -svg $f; done
    
于 2012-08-23T06:32:19.403 回答
13

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

inkscape --without-gui --file=input.pdf --export-plain-svg=output.svg
于 2013-05-12T15:00:44.850 回答