¿Cómo convierto y SVG (que contiene algunas palabras de texto latino y algunos gráficos vectoriales simples) a un PDF en Linux?
Probé Inkscape 0.47 en Ubuntu Lucid, pero mueve algunos sub-gráficos al azar y acorta algunas líneas en el PDF de salida. Por lo tanto, su salida es inútil, porque los gráficos se ven completamente diferentes.
Intenté abrir el SVG en Google Chrome 16 e imprimirlo en PDF, pero distorsiona todos los colores y también elimina algunos elementos. (El SVG aparece bien en la pantalla, pero ya está mal en la vista previa de impresión y el PDF generado también es malo).
No quiero rasterizar o renderizar el SVG. Una solución que convierte el SVG en una imagen de mapa de bits y luego crea un PDF con la imagen incrustada no es una respuesta a mi pregunta. (FYI Inscape 0.47 hace que el texto sea muy feo, sin antialiasing, cuando se procesa en PNG).
¿Qué otras opciones tengo?
fuente
Respuestas:
rsvg-convert hizo el truco para el SVG que quería convertir:
rsvg-convert -f pdf
no rasteriza el SVG, e incrusta y subconjusta las fuentes (al menos ha incrustado los caracteres usados de la fuente Arial). A veces, la incrustación de fuentes falla (por ejemplo, para la fuente LMRoman17), y todo el archivo de fuente se copia al PDF generado.Dependencias en Ubuntu Lucid:
Por defecto, libcairo necesita libX11, por lo que rsvg-convert puede ser difícil de instalar en un sistema sin cabeza.
Nota: La página de manual de
rsvg-convert
estados indica que la herramienta siempre se rasteriza, pero esto no es cierto. El manual es simplemente obsoleto. A veces, su herramienta de generación de svg puede rasterizar parcialmente la imagen de svg, lo que también puede confundirlo.fuente
rsvg-convert
se llama al paquete que contienersvg-view
.Esto funciona en Ubuntu Lucid:
La invocación de Inkscape de la línea de comandos anterior funciona incluso en modo sin cabeza, sin una GUI (
DISPLAY=
). Sin embargo, la instalación de Inscape instala muchas dependencias, incluida X11.Tenga en cuenta que el estado de salida de Inskscape siempre es 0, incluso si se produce un error, así que tenga cuidado con su stderr.
También existe
inkscape --shell
, adecuado para convertir muchos documentos en un lote. Esto evita el tiempo de inicio lento de Inkscape para cada archivo:Inkscape también es útil para simplificar un SVG:
fuente
brew install inkscape
estos días. El resultado/usr/local/bin/inkscape
funcionó para mí sin tener que ejecutar X11.app.dmg
distribuido en su propio sitio web, y luego se puede llamar desde la línea de comandos después de crear dos enlaces simbólicos:ln -s ~/Applications/Inkscape.app/Contents/Resources/bin/inkscape ~/bin/inkscape
y de manera similar parainkscape-bin
(suponiendo que~/bin
esté en su$PATH
).-z
(o--without-gui
) con Inkscape para ejecutarlo solo en modo por lotes (no se abrirá ninguna ventana).He usado CairoSVG con éxito en OSX y Ubuntu.
Documentación de CairoSVG
fuente
Obtengo buenos resultados al imprimir desde Inkscape (también 0.47) a PDF, y al guardar como PDF (pero ligeramente diferente), pero esto puede depender del gráfico en cuestión.
Una alternativa con menor resolución (no probé ningún interruptor para mejorarla) es
convert
Es parte delImageMagick
paquete. Rasterizer es otro programa:Para averiguar qué programas que manejan svgs están instalados en su sistema, simplemente intente
La página de manual de estos programas debería explicar, si el programa es útil para convertir el svg a pdf.
fuente
convert
no es una respuesta a la pregunta original, porqueconvert
rasteriza el SVG a una imagen de mapa de bits, y la pregunta original estaba buscando una solución que no lo haga.https://superuser.com/a/79064/19956 menciona gsvg , parte de GhostPDL.
Intenté gsvg ghostpdl-9.06 en Ubuntu Lucid, pero falló en dos SVG generados por Inkscape. Un SVG tenía texto, el otro solo tenía gráficos vectoriales. También falló para gráficos simples sin extensiones de Inkscape o clip-path. Por lo tanto, no considero que gsvg sea un convertidor SVG a PDF utilizable.
fuente
En Mac OS (considerando que ya tienes brew instalado) hago:
Lo mismo debería funcionar en Linux, pero con apt-get en su lugar.
fuente
svg2pdf
yrsvg-convert
, esto preserva las fuentes.Me pregunto por qué no se ha mencionado antes, pero probé un montón de diferentes convertidores svg-> pdf y descubrí que el mejor es Chrome sin cabeza . Produce los resultados más precisos para mí. Antes de cambiar a Chrome, estaba tratando de luchar contra los errores de Inkscape, pero muchos de ellos son demasiado serios y no puedo hacer mucho al respecto (errores de transparencia, fuentes incorrectas, etc.).
Necesita algunos ajustes para usar un tamaño de PDF personalizado (A4 es el predeterminado), pero pude establecer un tamaño personalizado después de buscar en Google y jugar con los atributos CSS y SVG (mira esta respuesta en stackoverflow )
fuente
chromium --no-sandbox --disable-setuid-sandbox --headless --disable-gpu --print-to-pdf=output.pdf input.svg
Abra el archivo svg con
Image Viewer
(también llamado Eye of Gnomeeog
) e imprímalo en un archivo PDF (digamosimage.pdf
) y convierta ese pdf a eps usando elpdf2ps
comando. ¡Sencillo!Pasos elaborados:
Instale
Image Viewer
si aún no lo ha hecho (paso muy poco probable si lo usagnome
)Abra el archivo svg con
eog
e imprímalo en unimage.pdf
archivo.(Opcional) Elimine los espacios en blanco circundantes del archivo pdf:
Esto generará
image-crop.pdf
con el espacio en blanco circundante eliminado.Convierta pdf recortado a eps (use
image.pdf
directamente si no recortó el pdf)¡Eso es!
fuente