Có một công cụ dòng lệnh linux miễn phí để chuyển đổi SVG sang PDF và / hoặc một số định dạng bitmap thường được sử dụng (ví dụ PNG) không?
Có một công cụ dòng lệnh linux miễn phí để chuyển đổi SVG sang PDF và / hoặc một số định dạng bitmap thường được sử dụng (ví dụ PNG) không?
Câu trả lời:
Imagemagick là tuyệt vời khi đầu ra rasterized (pixelated) là những gì bạn muốn (hoặc ít nhất là chấp nhận được), nhưng là một lựa chọn tồi, vì nó nhúng một cách hiệu quả vào pdf một phiên bản rasterized của bất cứ điều gì bạn đang cố gắng chuyển đổi. Điểm chung của svg / pdf là nó có thể được vector hóa, do đó kích thước nhỏ hơn, trong khi vẫn mượt mà ở bất kỳ độ phân giải nào.
Vì vậy, tôi chắc chắn sẽ khuyên bạn nên sử dụng Inkscape hoặc CarioSVG . Sau đó có một số tiện ích dòng lệnh một cách chính xác cho mục đích này ( svg2pdf
, svg2ps
và svg2png
). Khó khăn duy nhất là về cơ bản nó chỉ là một quả trứng trăn, vì vậy nếu bạn không có môi trường trăn được thiết lập và không đủ hiểu biết (hoặc không quan tâm đủ) để thiết lập, thì tùy chọn đó là không đi. Tôi đã cố gắng, nhưng có vấn đề khi thiết lập yêu cầu libcairo
(không phải là tôi đã cố gắng quá nhiều).
Inkscape là tuyệt vời, nhưng cli là một chút vụng về nếu bạn muốn chỉ là một lệnh nhỏ nhanh chóng để làm tất cả công việc cho bạn. Tôi tập hợp một vài kịch bản nhỏ để chăm sóc tất cả cho tôi:
svg2pdf
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
svg2png
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done
Đặt cái đầu tiên vào ~/bin/svg2pdf
và cái sau vào ~/bin/svg2png
, chạy chmod +x
trên cả hai để làm cho chúng có thể thực thi được và bùng nổ! Bạn có một lối tắt nhanh chóng và dễ dàng cho các thao tác thường muốn này mà không yêu cầu bạn phải suy nghĩ hoặc nhớ cách CLI của Inkscape hoạt động. (Rõ ràng bạn cần cài đặt Inkscape trước khi nó hoạt động)
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
real 0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
real 0m0.381s
Có Image Magick và Inkscape cũng có các công cụ dòng lệnh.
convert
chiến thắng cho đến nay. Nó thậm chí có thể chuyển đổi sang và từ các định dạng bí truyền mà bạn thậm chí không biết đã tồn tại và áp dụng nhiều hiệu ứng hơn cho chúng khi bạn cần.
convert
là một công cụ dòng lệnh cho ImageMagick.
Inkscape
Để PDF:
inkscape -A a.pdf a.svg
sang PNG:
inkscape -e a.png a.svg
Tìm thấy tại man inkscape
và Cách sử dụng Inkscape trong chế độ dòng lệnh
như tôi biết, có một cách để vận hành Inkscape thông qua cmd - Tôi đã sử dụng một cái gì đó tương tự để xuất hàng loạt hình thu nhỏ PNG từ bộ sưu tập SVG khổng lồ của tôi. Vì Inkscape cũng hỗ trợ xuất PDF qua Cairo, nên cũng có thể xuất PDF. Tôi sẽ hỏi trên một số diễn đàn Inkscape. :-)
mogrify -format pdf -- *.svg