Convierta SVG a PDF en varias hojas


9

Tengo un archivo SVG creado en Inkscape. Quiero imprimirlo en varias hojas para finalmente formar un gran póster. Necesito que estas hojas múltiples se conviertan a PDF para poder imprimirlas desde cualquier sistema operativo.

El archivo con el que estoy trabajando:

  • SVG tiene un tamaño de 840 mm x 297 mm. (alto x ancho)
  • Genere un PDF con dos hojas A3 (420 mm x 297 mm).

Puede descargar el archivo si desea probar su solución usted mismo.

Estoy abierto a casi cualquier solución, ya sea extensiones / scripts de Inkscape o herramientas de línea de comandos. Simplemente no quiero perder el tiempo manualmente cada vez que tengo que volver a hacer la conversión.

Cosas que he probado y no funcionó:

  • Inkscape-pages agrega soporte para múltiples páginas a Inkscape, pero no admite separar un archivo dado a las páginas.

Las herramientas que solo funcionarán con formato de imagen ráster (como PNG o JPG) son imposibles :

Las herramientas que he escuchado pueden funcionar, pero no estoy seguro si lo harán y cómo abordarlas:

Actualización: Enlace de descarga agregado .


Eche un vistazo a esta pregunta: Imprimir un póster (en varias hojas de papel)
traste el

Puede usar imagemagick (comando de conversión) para recortar las partes superior e inferior de la imagen de forma independiente en dos archivos pdf diferentes.
Harris

Por ejemplo:convert filename.svg -crop 100%x50% +repage filename.pdf
Harris

@MadMike, ¿podría mencionar su flujo de trabajo actual? (es decir, ¿cómo lo hace manualmente?)
user.dz

1
@Sneetsher Tengo un archivo SVG de gran tamaño (2 x A3). Me gustaría convertirlo en un formato (como PDF) que pueda transportar al trabajo e imprimirlo desde allí. En el trabajo solo tendré Windows disponible. En este momento no se trata de hacerlo manualmente o no, sino de cómo hacerlo.
MadMike

Respuestas:


1

¿Has probado el pdfposterpaquete? Desde el sitio web del proyecto : "Pdfposter se puede utilizar para crear un póster grande al construirlo desde varias páginas y / o imprimirlo en medios de gran tamaño. Se espera como entrada un archivo PDF, normalmente imprimiendo en una sola página. El resultado es nuevamente Archivo PDF, que puede contener varias páginas juntas construyendo el póster. La página de entrada se escalará para obtener el tamaño deseado ".

Intenté un ejemplo rápido de la página de manual: pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdfcon su archivo de muestra (que convertí a PDF en Inkscape), y parece funcionar: 6 páginas A3 que deben configurarse en una cuadrícula de 2 × 3.


Casi funciona He intentado que pdfposter -m a3 -p 1x2a3 askUbuntu.pdf out.pdfel PDF resultante tenga un fondo azul (pdfposter 0.6.0) en lugar de blanco. Puedes probarlo tú mismo si quieres. Descargue el PDF de origen aquí y repita la conversión, por favor. ¿Tienes el mismo resultado?
MadMike

@MadMike: obtengo el mismo fondo azul con su PDF (pero uno blanco con el mío). ¿También usaste 'Guardar como' en Inkscape para crear el PDF? Noté que en su PDF no puedo seleccionar el texto, mientras que puedo en el mío. Si selecciono la opción 'convertir textos a rutas' en las opciones de exportación de PDF, obtengo el mismo fondo azul que usted después de usar pdfposter. Para completar: tengo la misma versión pdfpostery la versión 0.48.4 de Inkscape.
ph0t0nix

Jup Funciona perfectamente. No convertir el texto en ruta mientras se guarda en PDF hace la diferencia. Ahora espero que la incorporación de fuentes sea lo suficientemente buena para la impresora. ;)
MadMike

Gracias, el pdfposter también funcionó para mí. Solo tenía que obtener su versión de desarrollo ( gitlab.com/pdftools/pdfposter ), porque la del repositorio oficial de Ubuntu (pdfposter 0.6.0-2) invirtió los colores blanco y negro.
Michal Fapso

2

Puede guardar la imagen como PDF desde Inkscape directamente usando la resolución más alta (ppp), digamos 600, de la impresora que planea usar para imprimir.

Luego, puede usar imagemagick (conversión de comando) para recortar las partes superior e inferior de la imagen de forma independiente en dos archivos pdf diferentes. Por ejemplo (escrito en una terminal):

convert askUbuntu.pdf -crop 100%x50% +repage askUbuntuSplit.pdf

Luego puede dividirlo en archivos pdf individuales usando:

pdftk filename.pdf burst

Supongo que imagemagick y pdftk ya están instalados.


También puede probar las siguientes opciones para evitar que la imagen se rasterice:-density 600 -define psd:fit-page=2338x -resize 2338x
Harris

convert banner_eingang5.svg -density 600 -define psd:fit-page=2338x -resize 2338x -crop 50%x100% +repage filename.pdfMe sale un pdf rasterizado con un tamaño de 49x35 mm (muy pequeño)
MadMike

¿Le da esto un pdf rasterizado:convert -density 90 askUbuntu.svg -crop 50%x100% +repage -trim -background black askUbuntu.pdf
Harris

@Harris, por lo que sé, imagemagick no puede manejar gráficos vectoriales. Hagas lo que hagas, la salida siempre será una imagen rasterizada.
Glutanimate

En su sitio web dicen que imagemagick usa inkscape o rsvg-convert para manejar archivos svg.
Harris

0

como no pude obtener su archivo (enlace roto) lo administré con un PDF que tenía en mi computadora. De todos modos, así es como procedí:

  • Inicie Scribus ( 1.4.3 en Ubuntu 12.04 LTS )
  • crear un nuevo documento A3 2 páginas con las opciones "Doble página" y "Comenzar en la página izquierda" seleccionadas (tal vez no sea la traducción correcta ya que estoy trabajando en una versión en francés de Scribus).
  • crear un marco de imagen sobre las dos páginas
  • importar PDF
  • ajustar el tamaño de la imagen al marco
  • exportar como PDF
  • Imprímelo

El resultado está en el archivo que puede descargar aquí: http://www.filedropper.com/2a3tar_1 (1.4 Mo)

El problema que puede ocurrir está relacionado con los márgenes técnicos que suelen tener las impresoras de escritorio.

En este caso, podría hacer marcos de 2 imágenes que se superponen como en el archivo 2A3bis.sla proporcionado.


He actualizado el enlace de descarga.
MadMike

0

SVG es un XML, puede usar este script de Python para generar cortes. En realidad, no lo divide, sino que usa la misma copia del archivo de entrada con diferentes valores de viewBoxpara mostrar solo el área objetivo.

svg_slice.py

#!/usr/bin/env python

import sys, os.path
import xml.etree.ElementTree as ET

fin=sys.argv[-1]
hsplit=int(sys.argv[1])
vsplit=int(sys.argv[2])

tree = ET.parse(fin)
root = tree.getroot()

hstep=float(root.attrib['width'])/hsplit
vstep=float(root.attrib['height'])/vsplit

root.attrib['width']=str(hstep)
root.attrib['height']=str(vstep)

for i in range(hsplit):
    for j in range(vsplit):
        root.attrib['viewBox']='%.4f %.4f %.4f %.4f' % (i*hstep, j*vstep, hstep, vstep)
        tree.write('cell_%i-%i_%s' % (i,j,os.path.basename(fin)))
  1. Generar rebanadas

    python svg_slice.py 2 1 askUbuntu.svg
    

    es decir: cuadrícula 2x1

  2. Luego use Inkscape para exportar PDF para cada segmento / celda

    for i in $(ls cell_*); do inkscape $i --export-pdf=$i.pdf; done;
    

ls cell_*

cell_0-0_askUbuntu.svg      cell_1-0_askUbuntu.svg
cell_0-0_askUbuntu.svg.pdf  cell_1-0_askUbuntu.svg.pdf
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.