SVG 1.1 được xuất bởi công cụ draw.io quá "hiện đại" để hiển thị chính xác theo Batik, Cairo, qiv hoặc thậm chí FireFox hiện tại: dường như không có phần tử nào hỗ trợ phần tử < foreignObject>. Tuy nhiên WebKit không hiển thị đúng cách, do đó, để chuyển đổi SVG thành hình ảnh chất lượng cao, tôi sử dụng công cụ "wkhtmlto ..." từ http://wkhtmltopdf.org.
wkhtmltoimage
tạo ra đầu ra ở độ phân giải màn hình và --zoom
chuyển đổi các dòng được chia tỷ lệ và văn bản khác nhau dẫn đến cắt (mặc dù mở cùng SVG trong Chrome và thu phóng được thực hiện chính xác). Vì vậy, thay vào đó tôi đang sử dụng wkhtmltopdf
để tạo ra một pdf trung gian sau đó render đó như là một hình ảnh có độ phân giải cao với GhostScript:
wkhtmltopdf callbacks.svg callbacks.pdf
gs -sDEVICE=pnggray -sOutputFile=callbacks.png -dBATCH -dNOPAUSE -r900 callbacks.pdf
EDIT: một nhược điểm đi qua một trang Mô tả Format là các tập tin hình ảnh được sản xuất có thể có biên giới rất lớn. Bạn có thể thử nghiệm với kích thước và bố cục giấy để giảm thiểu điều này hoặc chỉ tự động cắt chúng, ví dụ: với ImageMagick:
convert callbacks.png -trim callbacks.png
EDIT: FireFox 49.0.2 (tháng 11 năm 2016) hiện đang hiển thị chính xác SVG. Chưa thử lại Cairo hay Batik. sample draw.io file
Nguồn
2014-04-16 09:46:36
"tốt" khá chủ quan, tôi khuyên bạn nên cập nhật câu hỏi nêu rõ yêu cầu của bạn, tính năng svg bạn cần, cách bạn cần sử dụng thư viện, v.v. –
Bạn có nghĩa là trình kết xuất màn hình hay PDF/bitmap renderer? Bất kỳ tùy chọn ngôn ngữ lập trình nào? – halfer
Có, trình kết xuất màn hình để tạo các hình ảnh raster điển hình theo định nghĩa SVG chuẩn. Về sở thích ngôn ngữ, tôi đang sử dụng python để tạo SVG, nhưng tôi không gắn với bất kỳ ngôn ngữ nào cho phần SVG. – rubenafo