Tengo alrededor de 150 archivos SVG creados en Inkscape. ¿Hay alguna utilidad que pueda exportar todo esto a múltiples archivos PDF o PNG?
Exportar individualmente consume demasiado tiempo, por lo que me preguntaba si podría hacerlo en un lote con alguna utilidad/software.
Se prefiere Windows.
Para las personas que llegaron aquí desde una búsqueda en Google porque esta pregunta hace referencia a Inkscape pero no está etiquetada con Windows, aquí hay un instructivo completo para Linux (esto supone que tiene Inkscape instalado en su sistema, probado en Ubunut 14.04 con Inkscape 0.91).
Cree un archivo en el directorio donde desea convertir sus archivos SVG a PDF . (Utilicé gedit
a continuación, pero también podría reemplazarlo con el editor de texto de su elección)
gedit convertSVGtoPDF.sh
Pegue el siguiente código dentro
#!/bin/bash
mkdir "$PWD"/pdf
for file in $PWD/*.svg
do
filename=$(basename "$file")
inkscape "$file" -d 1200 -A "$PWD"/pdf/"${filename%.svg}.pdf"
done
Puede modificar la resolución de salida deseada modificando el valor después de la opción -d
.
Guarda el archivo.
Ahora haga que este script sea ejecutable
sudo chmod +x convertSVGtoPDF.sh
Y ejecútelo dentro de su directorio que contiene los SVG s
./convertSVGtoPDF.sh
Esto creará una nueva carpeta llamada pdf donde podrá encontrar sus archivos PDF con fuentes incrustadas.
¡Feliz Inkscape!
Algunas otras opciones de herramientas para convertir a/desde SVG desde Inkscape Wiki :
Puede hacer esto usando la interfaz de línea de comandos de Inkscape ( inkscape --without-gui --export-pdf=myfile.pdf myfile.svg
), y luego usar un archivo por lotes, un script de shell o una herramienta de compilación (como Make, Rake o Grunt) para ejecutarlo automáticamente en una lista completa de archivos.
Después de buscar en varios sitios, encontré una manera simple usando solo una línea de comando.
Nunca antes había usado la línea de comandos, pero después de algunos experimentos, llegué a la siguiente solución:
for /f "tokens=1* delims=." %i in ('dir /b *.svg') do "C:\Program Files\Inkscape\inkscape.exe" --without-gui --file="%i.svg" --export-emf="%i.emf"
Desglosándolo:
for
for es un comando para realizar una acción en varios archivos. Su estructura es algo así como: para "archivos en una determinada condición" haga "comando específico"
/f "tokens=1* delims=." %i in ('dir /b *.svg')
Esta es la "condición". En mi caso, busco todos los archivos SVG, pero por supuesto funciona con otros formatos. Todo lo que hace este código "elegante" es almacenar el nombre del archivo, antes de la extensión, en la variable "%i". Esto será útil en el comando.
do
Eso es lo que vas a realizar en todos los archivos.
"C:\Program Files\Inkscape\inkscape.exe" --without-gui --file="%i.svg" --export-emf="%i.emf"
Este es el mismo comando que Marnen Laibow-Koser usó anteriormente. Soy un novato, no sé cómo se usa solo "inkscape", así que he llegado hasta el .exe.
La última parte es donde usamos la variable para indicarle al programa qué archivo debe seleccionar y cómo exportar.
Nuevamente, estoy exportando SVG a EMF, pero simplemente cámbielo a lo que desee. He aquí por qué las variables son tan importantes. Así que puedes mantener el mismo nombre, solo cambiando la extensión.
No olvide usar las comillas, ya que sus archivos pueden tener algo de espacio en su nombre.
Por supuesto, también debe estar en la carpeta donde se encuentran sus archivos. Si tu también eres un novato haz esto:
C:\
Te pondrá en la unidad correcta.
CD "path"
Te llevará a la carpeta específica. Puede usar el explorador de Windows y hacer clic con el botón derecho y copiar la ruta como texto.
Eso es todo. Soy novato, así que podría ser más efectivo hacerlo, pero esto funcionará.
Último consejo: si está trabajando con muchos archivos, puede usar CTRL + C para detener la línea de comando si no funciona como debería e intentarlo de nuevo.
Este enlace parece tener lo que desea: Exportación por lotes desde Inkscape en Windows.
Suponiendo que tiene nombres de archivo consecutivos.
Suponiendo que está utilizando macOS.
INDIR='3. SVGs/svgs-front'
OUTDIR='4. Individual PDFs/pdfs-front'
seq 1 100 | while read row; do
echo Processing $row
/Applications/Inkscape.app/Contents/MacOS/inkscape -o $OUTDIR/$row.pdf --without-gui $INDIR/$row.svg
done
Para mí, la mejor manera de hacerlo es zamzar.com , que es un sitio gratuito de conversión de archivos en línea. Permite al usuario convertir archivos sin descargar una herramienta de software y admite más de 1000 tipos de conversión diferentes.
Vicente
garabateador
tim kupers
$PWD/
. No funcionó porque había espacios en la ruta de mi directorio.MycrofD
amado.por.jesus