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

标签 pdf graphics inkscape

我想从论文中提取一些 pdf 图像以供演示之用。在 Windows 中,Adobe Illustrator 工作得很好,但我现在必须在 Debian 机器中执行此任务。

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

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

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

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

最佳答案

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

有一个工具叫做

pdftocairo,包含在poppler-utils

语法:

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

pdftocairo 能够在输出中生成光栅和矢量格式,在最后一种格式之间,它能够转换单个 pdf 页面的内容(如果您有多页 pdf 文档,您首先需要在其单个 pdf 页面中分解(例如使用 pdftk),将其分解为:

  • -ps : generate PostScript file
  • -eps : generate Encapsulated PostScript (EPS)
  • -svg : generate a Scalable Vector Graphics (SVG) file

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

正在恢复:

如果您有多页 PDF

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

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

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

关于pdf - 使用 Inkscape 从 pdf 中提取矢量图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12084742/

相关文章:

java - 使用 pdfbox 获取表单字段值

php - 如何使用 Inkscape 将 SVG 字符串转换为 jpg

vector - 如何在 Inkscape 中制作模糊

perl - 用 Perl 制作 PDF 报告?

java - 在PDF的每一页附加水印图像

pdf - PDF裁剪框中的坐标指的是什么尺寸?

math - 有没有数学方法来创建图形?

python - 将自定义图像导入 graphics.py

web-applications - 如何为我的Web应用程序项目找到好的图形设计师?

php - 在一行中运行多个 inkscape 命令