alat baris perintah linux gratis untuk mengkonversi SVG ke PDF dan / atau format bitmap yang umum digunakan?

17

Apakah ada alat baris perintah linux gratis untuk mengkonversi SVG ke PDF dan / atau beberapa format bitmap yang umum digunakan (misalnya PNG)?


sumber
2
mogrify -format pdf -- *.svg
Yrogirg

Jawaban:

25

Imagemagick bagus ketika output raster (pixelated) adalah apa yang Anda inginkan (atau paling tidak dapat diterima), tetapi merupakan pilihan yang buruk, karena ini secara efektif menanamkan dalam pdf versi raster dari apa pun yang Anda coba konversi. Inti dari svg / pdf adalah ia dapat di-vektor, dengan demikian ukurannya lebih kecil, namun tetap halus pada resolusi apa pun.

Jadi, saya pasti akan merekomendasikan menggunakan Inkscape atau CarioSVG . Yang terakhir memiliki beberapa utilitas baris perintah tepat untuk tujuan ini ( svg2pdf, svg2psdan svg2png). Satu-satunya halangan adalah pada dasarnya itu hanyalah telur python, jadi jika Anda tidak memiliki lingkungan python yang diatur dan tidak cukup mahir (atau tidak cukup peduli) untuk mengaturnya, maka opsi itu adalah no Pergilah. Saya mencoba sendiri, tetapi memiliki masalah pengaturan yang diperlukan libcairo(bukan karena saya berusaha terlalu keras).

Inkscape memang luar biasa, tetapi cli sedikit kikuk jika Anda hanya menginginkan sedikit perintah cepat untuk melakukan semua pekerjaan untuk Anda. Saya mengumpulkan beberapa skrip kecil untuk mengurus semua ini untuk saya:

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

Masukkan yang pertama ~/bin/svg2pdfdan yang terakhir ~/bin/svg2png, jalankan chmod +xkeduanya untuk membuat mereka dieksekusi, dan boom! Anda memiliki pintasan cepat dan mudah untuk operasi yang sering diinginkan ini yang tidak mengharuskan Anda untuk memikirkan atau mengingat cara kerja CLI Inkscape. (Jelas Anda perlu menginstal Inkscape sebelum ini akan berfungsi)

metasoarous
sumber
Saya hanya melakukan satu tes kinerja cepat dengan imagemagick dan inkscape dengan generasi sepuluh pdf dan imagemagick adalah 5,77 kali lebih cepat. time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;nyata 0m0.381s
6
Mungkin lebih cepat, tetapi Anda kehilangan sifat vektor dari grafik, jadi mungkin juga 10 kali lebih besar (walaupun saya ingin Anda memperbaiki saya jika saya salah). Alasannya memakan waktu lebih lama adalah karena melakukan manipulasi vektor yang sebenarnya, yang jauh lebih kompleks daripada rasterisasi (yang pada dasarnya setara dengan rendering).
metasoarous
7

Ada Image Magick , dan Inkscape juga memiliki alat baris perintah.

Erika
sumber
3
convertmenang sejauh ini. Ia bahkan dapat mengonversi ke dan dari format esoteris yang bahkan tidak Anda ketahui ada, dan menerapkan lebih banyak efek padanya yang Anda perlukan.
new123456
3
Hanya untuk memperjelas bagi pembaca yang tidak dikenal, convertadalah alat baris perintah untuk ImageMagick.
Erika
2
dan satu klarifikasi lagi: jika Anda menggunakan convert, Anda akan beralih dari vektor ke raster dan kehilangan kemampuan untuk skala gambar. dalam buku saya, inkscape yang menang. itu tergantung pada apa yang Anda butuhkan.
nsheff
6

Inkscape

Ke PDF:

inkscape -A a.pdf a.svg

ke PNG:

inkscape -e a.png a.svg

Ditemukan di man inkscapedan Cara menggunakan Inkscape dalam mode baris perintah

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber
Untuk menambahkan: -e adalah untuk PNG; gunakan -A untuk PDF
nsheff
0

seperti yang saya tahu, ada cara untuk mengoperasikan Inkscape via cmd - Saya sudah menggunakan sesuatu yang mirip untuk mengekspor batch PNG thumbnails dari koleksi SVG besar saya. Karena Inkscape juga mendukung ekspor PDF melalui Kairo, mungkin juga untuk mengekspor PDF. Saya akan bertanya di beberapa forum Inkscape. :-)

Juhele
sumber