Scripts de Automação
Scripts de linha de comando para automação batch com Inkscape
O que você vai aprender
- Executar o Inkscape via linha de comando para automação em lote
- Usar flags essenciais: --export-filename, --export-type, --actions
- Criar scripts shell para processar múltiplos arquivos SVG
- Integrar Inkscape CLI em pipelines de CI/CD para geração automática
Scripts de Automação🔗
inkscape CLI🔗
Inkscape tem interface de linha de comando completa.
Comandos Básicos🔗
# Exportar PNG
inkscape input.svg --export-filename=output.png --export-area-page --export-dpi=300
# Exportar PDF
inkscape input.svg --export-filename=output.pdf --export-type=pdf
# Exportar com dimensões específicas
inkscape input.svg --export-filename=output.png --export-width=800 --export-height=600Flags Principais🔗
| Flag | Função |
|---|---|
--export-filename | Arquivo de saída |
--export-type | Tipo: png, pdf, svg, eps, ai |
--export-area-page | Exportar página completa |
--export-area-drawing | Exportar só desenho |
--export-dpi | DPI para raster (72, 150, 300) |
--export-width | Largura em pixels |
--export-height | Altura em pixels |
Batch Processing🔗
Loop Bash🔗
#!/bin/bash
for f in *.svg; do
name="${f%.svg}"
inkscape "$f" --export-filename="${name}.png" --export-dpi=150
doneParallel com GNU Parallel🔗
ls *.svg | parallel inkscape {} --export-filename={}.png --export-dpi=150Python Script🔗
#!/usr/bin/env python3
import subprocess
import os
svg_dir = "input/"
output_dir = "output/"
for filename in os.listdir(svg_dir):
if filename.endswith(".svg"):
input_path = os.path.join(svg_dir, filename)
output_path = os.path.join(output_dir, filename.replace(".svg", ".png"))
subprocess.run([
"inkscape", input_path,
"--export-filename", output_path,
"--export-dpi", "300"
])Modificar SVG via Python🔗
#!/usr/bin/env python3
import inkex
class BatchColorChange(inkex.EffectExtension):
def add_arguments(self, pars):
pars.add_argument("--from-color", type=str, default="#ff0000")
pars.add_argument("--to-color", type=str, default="#00ff00")
def effect(self):
from_color = self.options.from_color
to_color = self.options.to_color
for node in self.svg.selection:
if node.style.get('fill') == from_color:
node.style['fill'] = to_color
if __name__ == "__main__":
BatchColorChange().run()Automação com Make🔗
SVG_FILES := $(wildcard designs/*.svg)
PNG_FILES := $(SVG_FILES:.svg=.png)
%.png: %.svg
inkscape $< --export-filename=$@ --export-dpi=150
all: $(PNG_FILES)Agendar com Cron🔗
# Editar crontab
crontab -e
# Executar todo dia às 3h
0 3 * * * /path/to/batch-export.shUse --export-area-drawing em vez de --export-area-page se quiser evitar margens em branco.
Você aprendeu
- O Inkscape CLI permite exportação, conversão e manipulação sem interface gráfica
- Actions (--actions) substituem a antiga sintaxe de flags para operações complexas
- Scripts shell/batch podem processar centenas de arquivos em lote automaticamente