Tôi có hình ảnh SVG được sản xuất bởi PlantUML, có một số phần vẽ bên ngoài khung vẽ. Nó gây khó khăn cho việc sử dụng những hình ảnh như vậy và tôi cần cắt bản vẽ theo kích thước canvas. Khi tôi tạo các sơ đồ UML bằng các tập lệnh, nó sẽ thực sự hiệu quả khi thực hiện cắt xén ở đó.
Cho đến nay tôi đã thử hai điều: a) thay đổi kích thước canvas để vẽ bằng Inkscape
inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose *.svg
Điều này hoạt động tốt, nhưng tôi cần cắt bản vẽ theo kích thước canvas và thao tác này dường như không có.
b) thay đổi kích thước với rsvg-convert
rsvg-convert image.svg -w 1870 -h 1195 -f svg -o image.svg
Điều này thực sự chính xác đến kích thước mong muốn, nhưng kích thước hình ảnh tăng ~ 10 lần vì hiện tại có một số hình ảnh nhị phân được nhúng vào SVG. Điều này không được chấp nhận đối với tôi.
svg
định dạng là định dạng ascii dựa trên xml, vì vậy cách dễ nhất chỉ là sử dụngsed
hoặc công cụ thao tác văn bản yêu thích của bạn để chèn hoặc sửa đổi một dòng đặt hộp giới hạn. Điều này thậm chí sẽ không chạm vào các nội dung khác của tập tin. Hãy thử thực hiện thủ công một lần trên tệp svg ví dụ (trong trình soạn thảo văn bản) và sau đó dịch hành động của bạn thành tập lệnh.