.svg
在命令行上
裁剪文件很简单:$ inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose *.svg
我需要做相反的事情。我想将绘图放入64 x 64
点画布(已在所有.svg
文件中设置)。不幸的是,Inkscape 没有提供FitDrawingToCanvas
命令。此外,配件应保持图纸的纵横比。
如果重要的话:我正在使用 Ubuntu raring。
.svg
在命令行上
裁剪文件很简单:$ inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose *.svg
我需要做相反的事情。我想将绘图放入64 x 64
点画布(已在所有.svg
文件中设置)。不幸的是,Inkscape 没有提供FitDrawingToCanvas
命令。此外,配件应保持图纸的纵横比。
如果重要的话:我正在使用 Ubuntu raring。
我在这个问题中找到了一种方法:Inkscape - Center Drawing to Page via Command Line/Terminal
使用“foo.svg”作为要编辑的图像:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit foo.svg
要编辑当前目录中的所有 svg 图像:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileClose *.svg
但是第二个命令会打开大量的窗口,如果您编辑太多图像,这会使您的计算机崩溃。仅适用于Linux,此命令会更好地工作:
for img in $(ls *.svg) ; do inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; done
对于上述命令,如果任何文件是符号链接,Inkscape 将编辑符号链接指向的目标文件。如果您不希望 Inkscape 执行此操作,可以使用以下命令过滤掉任何符号链接:
for img in $(ls *.svg) ; do if [[ $(readlink $img) == "" ]] ; then inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; fi ; done
#!/bin/bash
# inkscape-center <file-or-directory>...
_analyse() {
if [ -d "${1}" ] ; then
_centerAll "${1}" ;
else
_center "${1}" ;
fi
}
_centerAll() {
cd "${1}" ;
for img in $(ls "*.svg") ; do
_filterSyms "${img}" ;
done
}
_filterSyms() {
if [[ $(readlink "${1}") == "" ]] ; then
_center "${1}"
fi
}
_center() {
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit "${1}"
}
for arg ; do
_analyse "${arg}" ;
done
我调用它inkscape-center
并像这样运行它:
inkscape-center <file-or-directory>
它需要尽可能多的参数,因此您可以执行以下操作:
inkscape-center 1st.svg 2nd.svg 3rd.svg 4th.svg
小心- 如果你指定一个目录而不是一个文件,它将编辑该目录中的每个 svg 文件。
您可以使用viewBox来完成您想要的。我不知道是否有办法在 Inkscape 中执行此操作,但由于 SVG 是一种标准格式,并且可能有另一种工具可以完成您想要的工作。快速搜索“svg 命令行工具”发现了一些有趣的结果,包括这个用于创建 CSS 图标的结果。
第二种选择是用您选择的语言编写自己的工具来执行此操作。基本要点是将 viewBox 设置为文档的高度,然后将文档的宽度和高度设置为想要的。最后,设置 preserveAspectRatio 属性。
以下是上述修改在最初为 744x1052 的文档上的样子。
<svg
width="64"
height="64"
viewBox="0 0 744 1052"
preserveAspectRatio="xMinYMin slice"