มีเครื่องมือบรรทัดคำสั่ง linux ฟรีเพื่อแปลง SVG เป็น PDF และ / หรือบางรูปแบบบิตแมปที่ใช้กันทั่วไป (เช่น PNG)?
มีเครื่องมือบรรทัดคำสั่ง linux ฟรีเพื่อแปลง SVG เป็น PDF และ / หรือบางรูปแบบบิตแมปที่ใช้กันทั่วไป (เช่น PNG)?
คำตอบ:
Imagemagickนั้นยอดเยี่ยมเมื่อเอาท์พุท rasterized (pixelated) เป็นสิ่งที่คุณต้องการ (หรืออย่างน้อยก็ยอมรับได้) แต่เป็นตัวเลือกที่ไม่ดีอย่างอื่นเนื่องจากมันฝังอยู่ในไฟล์ PDF แบบ rasterized ของสิ่งที่คุณพยายามแปลง จุดรวมของ svg / pdf คือมันสามารถทำให้เป็นเวกเตอร์ได้, ซึ่งมีขนาดเล็กกว่า, ในขณะที่ยังคงความเรียบเนียนที่ความละเอียดใด ๆ
ดังนั้นฉันขอแนะนำให้ใช้InkscapeหรือCarioSVGอย่างแน่นอน หลังมีสาธารณูปโภคบรรทัดคำสั่งหลายอย่างแม่นยำเพื่อการนี้ ( svg2pdf
, svg2ps
และsvg2png
) ข้อผูกมัดเพียงอย่างเดียวก็คือมันเป็นเพียงแค่ไข่หลามเท่านั้นดังนั้นหากคุณไม่มีสภาพแวดล้อมแบบงูใหญ่และไม่เข้าใจพอ (หรือไม่สนใจมากพอ) ในการตั้งค่าหนึ่งตัวเลือกนั้นจะไม่ ไป. ฉันลองตัวเอง แต่มีปัญหาในการตั้งค่าที่ต้องการlibcairo
(ไม่ใช่ว่าฉันพยายามอย่างหนักเกินไป )
Inkscape นั้นยอดเยี่ยม แต่ cli นั้นเป็น clunky เล็กน้อยหากคุณต้องการเพียงคำสั่งเล็กน้อยที่รวดเร็วในการทำงานทั้งหมดให้คุณ ฉันได้รวบรวมสคริปต์เล็ก ๆ น้อย ๆ สองสามตัวเพื่อดูแลสิ่งนี้ให้ฉัน:
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
ใส่คนแรกเข้า~/bin/svg2pdf
และหลังเข้า~/bin/svg2png
ทำงานchmod +x
ทั้งคู่เพื่อให้มันทำงานได้และรวดเร็ว! คุณมีทางลัดที่ง่ายและรวดเร็วสำหรับการดำเนินการที่ต้องการเหล่านี้ซึ่งไม่ต้องการให้คุณคิดหรือจดจำว่า CLI ของ Inkscape ทำงานอย่างไร (เห็นได้ชัดว่าคุณต้องติดตั้ง Inkscape ก่อนจะใช้งานได้)
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
จริง 0m2.192s 0m0.381s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
จริง
มีImage MagickและInkscapeยังมีเครื่องมือบรรทัดคำสั่ง
convert
ชนะโดยไกล มันยังสามารถแปลงเป็นรูปแบบลึกลับซึ่งคุณไม่เคยรู้มาก่อนและใช้เอฟเฟกต์เพิ่มเติมกับมัน
convert
เป็นเครื่องมือบรรทัดคำสั่งสำหรับ ImageMagick
Inkscape
เป็น PDF:
inkscape -A a.pdf a.svg
ถึง PNG:
inkscape -e a.png a.svg
พบได้ที่man inkscape
และวิธีการใช้ Inkscape ในโหมด commandline
อย่างที่ฉันรู้มีวิธีการใช้ Inkscape ผ่านทาง cmd - ฉันใช้สิ่งที่คล้ายกันสำหรับการส่งออกภาพขนาดย่อ PNG จากการรวบรวม SVG ขนาดใหญ่ของฉัน เนื่องจาก Inkscape รองรับการส่งออก PDF ผ่านไคโรจึงควรส่งออก PDF ได้เช่นกัน ฉันจะถามในฟอรัม Inkscape :-)
mogrify -format pdf -- *.svg