Чи є безкоштовний інструмент командного рядка Linux для перетворення SVG в PDF та / або якийсь широко використовуваний растровий формат (наприклад, PNG)?
Чи є безкоштовний інструмент командного рядка Linux для перетворення SVG в PDF та / або якийсь широко використовуваний растровий формат (наприклад, PNG)?
Відповіді:
Imagemagick чудовий, коли растрований (піксельний) вихід - це те, що ви хочете (або, принаймні, прийнятний), але це поганий вибір в іншому випадку, оскільки він ефективно вбудовує в pdf растерізовану версію того, що ви намагаєтеся перетворити. Вся суть svg / pdf полягає в тому, що він може бути векторизованим, тим самим меншим розміром, залишаючись гладким при будь-якій роздільній здатності.
Отже, я б точно рекомендував використовувати або Inkscape, або CarioSVG . Останні мають кілька утиліт командного рядка , саме для цієї мети ( svg2pdf
, svg2ps
і svg2png
). Єдина помилка полягає в тому, що це в основному просто яйце пітона, тому якщо у вас немає налаштованого середовища пітона і ви недостатньо кмітливі (або недостатньо дбаєте), щоб налаштувати його, то цей варіант - це ні йти. Я спробував себе, але виникли проблеми з налаштуванням потрібного libcairo
(не те, що я дуже старався).
Inkscape - приголомшливий, але кліп трохи незграбний, якщо ви хочете, щоб швидка маленька команда виконала всю роботу за вас. Я зібрав пару маленьких сценаріїв, щоб подбати про все це для мене:
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 time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
реальні 0m0.381s
Там є Image Magick , а в Inkscape також є інструменти командного рядка.
convert
перемагає далеко. Він навіть здатний конвертувати в езотеричні формати і з яких ви навіть не знали, і застосувати до них більше ефектів, то вам коли-небудь знадобиться.
convert
це інструмент командного рядка для ImageMagick.
Inkscape
До PDF:
inkscape -A a.pdf a.svg
до PNG:
inkscape -e a.png a.svg
Знайдено в man inkscape
і як використовувати Inkscape в режимі командної лінії
як я знаю, є спосіб керувати Inkscape через cmd - я вже використовував щось подібне для експортування ескізів PNG з моєї величезної колекції SVG. Оскільки Inkscape також підтримує експорт PDF через Каїр, експорт PDF також повинен бути можливим. Я б запитав на якомусь форумі Inkscape. :-)
mogrify -format pdf -- *.svg