In dieser Frage habe ich einen Weg gefunden, dies zu tun: Inkscape - Zeichnen auf Seite über die Befehlszeile / das Terminal zentrieren
Mit "foo.svg" als zu bearbeitendem Bild:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit foo.svg
So bearbeiten Sie alle SVG-Bilder im aktuellen Verzeichnis:
inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileClose *.svg
Aber dieser zweite Befehl öffnet eine Menge Fenster, die Ihren Computer zum Absturz bringen, wenn Sie zu viele Bilder bearbeiten. Für Linux nur , wird dieser Befehl besser funktionieren:
for img in $(ls *.svg) ; do inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; done
Wenn es sich bei dem obigen Befehl um Symlinks handelt, bearbeitet Inkscape die Zieldatei, auf die der Symlink verweist. Wenn Sie nicht möchten, dass Inkscape dies tut, können Sie mit diesem Befehl alle Symlinks herausfiltern:
for img in $(ls *.svg) ; do if [[ $(readlink $img) == "" ]] ; then inkscape --verb=EditSelectAll --verb=AlignHorizontalCenter --verb=AlignVerticalCenter --verb=FileSave --verb=FileQuit $img ; fi ; done
Während ich dabei bin, könnte ich genauso gut das Bash-Skript posten, das ich dafür erstellt habe:
#!/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
Ich habe es so genannt inkscape-center
und ausgeführt:
inkscape-center <file-or-directory>
Es sind so viele Argumente erforderlich, wie Sie möchten, sodass Sie Folgendes tun können:
inkscape-center 1st.svg 2nd.svg 3rd.svg 4th.svg
Vorsicht - Wenn Sie anstelle einer Datei ein Verzeichnis angeben, wird jede SVG-Datei in diesem Verzeichnis bearbeitet.