Я знайшов спосіб зробити це в цьому запитанні: Inkscape - центральний малюнок на сторінці через командний рядок / термінал
З "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
Хоча я в цьому, я можу також розмістити сценарій bash, який я зробив для цього:
#!/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-файл у цьому каталозі.