เครื่องมือบรรทัดคำสั่ง linux ฟรีเพื่อแปลง SVG เป็น PDF และ / หรือบางรูปแบบบิตแมปที่ใช้กันทั่วไป?


17

มีเครื่องมือบรรทัดคำสั่ง linux ฟรีเพื่อแปลง SVG เป็น PDF และ / หรือบางรูปแบบบิตแมปที่ใช้กันทั่วไป (เช่น PNG)?

linux  svg 

2
mogrify -format pdf -- *.svg
Yrogirg

คำตอบ:


25

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 ก่อนจะใช้งานได้)


ฉันไม่ได้เป็นเพียงแค่การทดสอบประสิทธิภาพการทำงานอย่างใดอย่างหนึ่งได้อย่างรวดเร็วด้วย ImageMagick และ Inkscape กับการสร้างไฟล์ PDF สิบImageMagickเป็น5.77 ครั้งเร็ว 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;จริง

6
มันอาจจะเร็วกว่านี้ แต่คุณกำลังสูญเสียธรรมชาติของภาพเวกเตอร์ดังนั้นมันอาจใหญ่กว่า 10 เท่า (แม้ว่าฉันจะชอบที่จะให้คุณแก้ไขฉันถ้าฉันผิด) เหตุผลที่ใช้เวลานานกว่านั้นคือเนื่องจากมันทำการปรับเปลี่ยนเวกเตอร์จริงซึ่งมีความซับซ้อนมากกว่าการ rasterizing (ซึ่งโดยทั่วไปเทียบเท่ากับการเรนเดอร์)
metasoarous

7

มีImage MagickและInkscapeยังมีเครื่องมือบรรทัดคำสั่ง


3
convertชนะโดยไกล มันยังสามารถแปลงเป็นรูปแบบลึกลับซึ่งคุณไม่เคยรู้มาก่อนและใช้เอฟเฟกต์เพิ่มเติมกับมัน
new123456

3
เพียงชี้แจงให้ผู้อ่านที่ไม่คุ้นเคยconvertเป็นเครื่องมือบรรทัดคำสั่งสำหรับ ImageMagick
Erika

2
และอีกหนึ่งความกระจ่าง: ถ้าคุณใช้การแปลงคุณจะเปลี่ยนจากเวกเตอร์เป็นแรสเตอร์และสูญเสียความสามารถในการขยายภาพ ในหนังสือของฉันมันเป็น inkscape ที่ชนะ มันขึ้นอยู่กับสิ่งที่คุณต้องการ
nsheff


0

อย่างที่ฉันรู้มีวิธีการใช้ Inkscape ผ่านทาง cmd - ฉันใช้สิ่งที่คล้ายกันสำหรับการส่งออกภาพขนาดย่อ PNG จากการรวบรวม SVG ขนาดใหญ่ของฉัน เนื่องจาก Inkscape รองรับการส่งออก PDF ผ่านไคโรจึงควรส่งออก PDF ได้เช่นกัน ฉันจะถามในฟอรัม Inkscape :-)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.