Saya memiliki gambar SVG yang diproduksi oleh PlantUML, yang memiliki beberapa bagian gambar di luar kanvas. Itu membuatnya sulit untuk menggunakan gambar seperti itu dan saya perlu memotong gambar ke ukuran kanvas. Ketika saya menghasilkan diagram UML dengan skrip, saya akan sangat efisien untuk melakukan pemotongan di sana.
Sejauh ini saya sudah mencoba dua hal: a) mengubah ukuran kanvas untuk menggambar dengan Inkscape
inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose *.svg
Ini berfungsi dengan baik, tapi saya perlu memotong gambar ke ukuran kanvas dan operasi ini sepertinya tidak tersedia.
b) mengubah ukuran dengan rsvg-convert
rsvg-convert image.svg -w 1870 -h 1195 -f svg -o image.svg
Ini benar-benar memotong ke ukuran yang diinginkan, tetapi ukuran gambar meningkat ~ 10 kali karena sekarang ada beberapa gambar biner yang tertanam dalam SVG. Ini tidak dapat diterima untuk saya.
sumber
svg
format adalah format ascii berbasis xml, jadi cara termudah seharusnya hanya menggunakansed
atau alat manipulasi teks favorit Anda untuk menyisipkan atau memodifikasi garis yang menetapkan kotak pembatas. Ini bahkan tidak akan menyentuh konten file lainnya. Coba lakukan secara manual sekali pada contoh file svg (dalam editor teks) dan kemudian terjemahkan tindakan Anda menjadi skrip.Jawaban:
Saya menemukan cara yang salah untuk melakukannya dengan menggunakan proposal orion. Dengan asumsi
$svg_file_name
adalah variabel yang berisi jalur file ke gambar SVG.Pertama kita perlu lebar dan tinggi gambar
PlantUML menghasilkan diagram sebagai satu kelompok (tag
<g>
), mari kita tempatkan persegi panjang ukuran kanvas di atas kelompok ituSekarang buka gambar dengan inkscape, pilih semua dan klip grup dengan persegi panjang
Dengan Inkscape terbaru kita harus keluar dari Inkscape alih-alih menutup file
sumber