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/bashfor i in $@;do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
svg2png
#!/bin/bashfor 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)
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).
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.
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. :-)
mogrify -format pdf -- *.svg
Jawaban:
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
,svg2ps
dansvg2png
). 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 diperlukanlibcairo
(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
svg2png
Masukkan yang pertama
~/bin/svg2pdf
dan yang terakhir~/bin/svg2png
, jalankanchmod +x
keduanya 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)sumber
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
0m2.192stime for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
nyata 0m0.381sAda Image Magick , dan Inkscape juga memiliki alat baris perintah.
sumber
convert
menang 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.convert
adalah alat baris perintah untuk ImageMagick.Inkscape
Ke PDF:
ke PNG:
Ditemukan di
man inkscape
dan Cara menggunakan Inkscape dalam mode baris perintahsumber
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. :-)
sumber