如何裁剪 SVG?

如何裁剪 SVG?

如何从 SVG 文件裁剪所有空白空间,特别是从命令行?

我有几个格式化为标准 A2 信函文档大小的 SVG 文件,我需要批量裁剪它们,以便它们的视图框与其内容的最小边界框相同。

我可以使用 Inkscape 中的“调整页面大小以选择”选项来执行此操作,但我没有看到任何从命令行访问此功能的方法。

答案1

尝试:

inkscape --batch-process \
  --verb "EditSelectAll;FitCanvasToSelection;FileSave;FileQuit" \
  filename.svg

在 Mac OS 下,以下命令行有效:

inkscape -g --verb="FitCanvasToDrawing;FileSave;FileQuit" filename.svg

请注意,如果我提供三个不同的--verb选项(其他答案推荐),它不起作用(可能只执行了最后一个动词)。

答案2

看起来“调整页面大小以适应选择”选项可以通过命令行使用!请在此处查看:https://shkspr.mobi/blog/2013/03/inkscape-cropping-svg-files-on-the-command-line/

inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileQuit *.svg

FileClose用于旧版本的 Inkscape。)

答案3

仅对于新inkscape版本,这有效:

inkscape --actions "select-all;fit-canvas-to-selection" --export-overwrite input.svg

这将覆盖该文件。您可以使用选项-o <new_file>创建新文件。

答案4

因为当搜索“crop SVG”时会出现这个页面,所以我认为值得更新它。

请注意,Inkscape 1.1 中已删除动词,应改用动作。也可以仅使用导出选项来实现裁剪。对于 Inkscape >= 1.0,这将是:

inkscape --batch-process --export-area-drawing --export-plain-svg \
    --export-filename=/path/to/output.svg /path/to/input.svg

使用 Inscape <1.0:

inkscape --without-gui --export-area-drawing \
    --export-plain-svg=/path/to/output.svg /path/to/input.svg

请注意,即使这不使用 GUI,由于 Inkscape 的实现方式,这仍然需要很多可用的东西(例如总线系统,可写主页,X 服务器等)并且在受限环境中无法工作。

相关内容