PDF ve / veya bazı yaygın olarak kullanılan bitmap formatına SVG dönüştürmek için ücretsiz linux komut satırı aracı?


17

SVG'yi PDF'ye ve / veya yaygın olarak kullanılan bazı bitmap formatına (örneğin PNG) dönüştürmek için ücretsiz bir linux komut satırı aracı var mı?

linux  svg 

2
mogrify -format pdf -- *.svg
Yrogirg

Yanıtlar:


25

Imagemagick Rasterleştirildiğinde (pikselleştirilmiş) çıkış istediğini büyüktür (veya kabul edilebilir en azından), ama etkili bir pdf size dönüştürmek için çalışıyoruz ne olursa olsun rasterleştirilmiş bir sürümünü gömer beri, aksi kötü bir seçimdir. Svg / pdf'nin tüm noktası, herhangi bir çözünürlükte pürüzsüz kalırken vektörleştirilebilmesi, böylece daha küçük boyutta olmasıdır.

Yani, kesinlikle Inkscape veya CarioSVG kullanmanızı tavsiye ederim . İkincisi, tam olarak bu amaç için çeşitli komut satırı yardımcı programlarına sahiptir ( svg2pdf, svg2psve svg2png). Tek aksaklık temelde sadece bir python yumurtası olmasıdır, bu yüzden bir python ortamınız yoksa ve bir tane kurmak için yeterince bilgili değilseniz (veya yeterince umursamıyorsanız), bu seçenek bir hayırdır Git. Kendimi denedim, ancak gerekli ayarlama sorunları vardı libcairo( çok zor denedim değil ).

Inkscape harika, ama sizin için tüm işleri yapmak için sadece küçük bir komut istiyorsanız cli biraz tıknaz. Bunların hepsini benim için halletmek için birkaç küçük senaryo hazırladım:

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

Birincisini ~/bin/svg2pdfve ikincisini içeri koyun, her ikisini de ~/bin/svg2pngçalıştırılabilir chmod +xhale getirmek için çalıştırın ve patlayın! Inkscape CLI'nın nasıl çalıştığını düşünmenizi veya hatırlamanızı gerektirmeyen bu sıkça istenen işlemler için hızlı ve kolay bir kısayolunuz vardır. (Açıkçası bu işe yaramadan önce Inkscape yüklü olması gerekir)


On pdf'lerden ve üretimi ile imagemagic'den ve inkscape ile sadece bir hızlı performans test yaptım imagemagic'den olduğu 5.77 kat daha hızlı. time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;gerçek 0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;gerçek 0m0.381s

6
Daha hızlı olabilir, ancak grafiğin vektör yapısını kaybedersiniz, bu yüzden muhtemelen 10 kat daha büyüktür (her ne kadar yanlışsam beni düzeltmenizi isterim). Daha uzun sürmesinin nedeni, rasterleştirmekten (temelde oluşturmaya eşdeğerdir) çok daha karmaşık olan gerçek vektör manipülasyonları yapmasıdır.
metasoarous

7

Image Magick var ve Inkscape'in de komut satırı araçları var.


3
convertkazanır. Hatta var olduğunu bile bilmediğiniz ezoterik formatlara dönüşebilir ve bunlardan daha fazla efekt uygulayabilirsiniz.
yeni123456

3
Sadece tanıdık olmayan okuyucuları netleştirmek convertiçin ImageMagick için bir komut satırı aracıdır.
Erika

2
ve bir açıklama daha yapın: Convert'i kullanırsanız, vektörden raster'e geçecek ve görüntüyü ölçeklendirme yeteneğini kaybedeceksiniz. kitabımda kazanan bir inkscape. sadece neye ihtiyacınız olduğuna bağlı.
nsheff


0

bildiğim gibi, Inkscape'i cmd ile çalıştırmanın bir yolu var - zaten büyük SVG koleksiyonumdan toplu dışa aktarma PNG küçük resimleri için benzer bir şey kullandım. Inkscape, Kahire üzerinden PDF dışa aktarmayı da desteklediğinden, PDF'yi de dışa aktarmak mümkün olmalıdır. Bazı Inkscape forumlarında sorardım. :-)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.