Ich habe SVG-Bilder von PlantUML, die einige Teile der Zeichnung außerhalb der Leinwand haben. Es macht es schwierig, solche Bilder zu verwenden, und ich muss die Zeichnung auf Leinwandgröße zuschneiden. Da ich sowieso UML-Diagramme mit Skript erstelle, wäre es sehr effizient, dort auch ein Zuschneiden durchzuführen.
Bisher habe ich zwei Dinge ausprobiert: a) Ändern Sie die Größe der Leinwand, um mit Inkscape zu zeichnen
inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose *.svg
Dies funktioniert gut, aber ich muss die Zeichnung auf Leinwandgröße zuschneiden, und dieser Vorgang scheint nicht verfügbar zu sein.
b) Ändern Sie die Größe mit rsvg-convert
rsvg-convert image.svg -w 1870 -h 1195 -f svg -o image.svg
Dadurch wird genau auf die gewünschte Größe zugeschnitten, aber die Bildgröße erhöht sich um das Zehnfache, da jetzt einige Binärbilder in SVG eingebettet sind. Das ist für mich nicht akzeptabel.
svg
Das Format ist ein XML-basiertes ASCII-Format. Der einfachste Weg ist daher,sed
eine Zeile, die den Begrenzungsrahmen festlegt , mit Ihrem bevorzugten Textbearbeitungswerkzeug einzufügen oder zu ändern. Dies würde nicht einmal den anderen Inhalt der Datei berühren. Versuchen Sie es einmal manuell in einer Beispiel-SVG-Datei (in einem Texteditor) und übersetzen Sie dann Ihre Aktionen in ein Skript.