Encontré una forma de hacer esto en esta pregunta: Inkscape - Centrar el dibujo en la página a través de la línea de comando / terminal
Con "foo.svg" como imagen para editar:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit foo.svg
Para editar todas las imágenes svg en el directorio actual:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileClose *.svg
Pero este segundo comando abre un montón de ventanas, lo que hará que su computadora se bloquee si está editando demasiadas imágenes. Solo para Linux , este comando funcionará mejor:
for img in $(ls *.svg) ; do inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; done
Para el comando anterior, si alguno de los archivos son enlaces simbólicos, Inkscape editará el archivo de destino al que apunta el enlace simbólico. Si no desea que Inkscape haga esto, puede filtrar los enlaces simbólicos con este comando:
for img in $(ls *.svg) ; do if [[ $(readlink $img) == "" ]] ; then inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; fi ; done
Mientras lo hago, también podría publicar el script de bash que hice para esto:
#!/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
Lo llamé inkscape-center
y lo ejecuté así:
inkscape-center <file-or-directory>
Toma tantos argumentos como quieras, por lo que puedes hacer algo como esto:
inkscape-center 1st.svg 2nd.svg 3rd.svg 4th.svg
Tenga cuidado : si especifica un directorio en lugar de un archivo, editará todos los archivos svg de ese directorio.