Converti SVG in PDF su più fogli


9

Ho un file SVG creato in Inkscape. Voglio stamparlo su più fogli per formare finalmente un grande poster. Ho bisogno di questi fogli multipli convertiti in PDF per poterlo stampare da qualsiasi sistema operativo.

Il file con cui sto lavorando:

  • SVG ha una dimensione di 840 mm x 297 mm. (larghezza x altezza)
  • Genera un PDF con due fogli A3 (420 mm x 297 mm).

Puoi scaricare il file se vuoi provare tu stesso la soluzione.

Sono aperto a quasi tutte le soluzioni, che si tratti di estensioni / script Inkscape o strumenti da riga di comando. Semplicemente non voglio scherzare manualmente ogni volta che devo rifare la conversione.

Cose che ho provato e non ha funzionato:

  • inkscape-pages aggiunge il supporto per più pagine a Inkscape, ma nessun supporto per separare un determinato file dalle pagine.

Gli strumenti che funzionano solo con il formato di immagini raster (come PNG o JPG) sono un gioco da ragazzi :

Strumenti che ho sentito che potrebbero funzionare ma dove non sono sicuro se lo faranno e come affrontarli:

Aggiornamento: aggiunto il link per il download .


Dai un'occhiata a questa domanda: Stampa di un poster (su più fogli di carta)
tasto

Puoi usare imagemagick (comando converti) per ritagliare la parte superiore e inferiore dell'immagine in modo indipendente in due diversi file pdf.
Harris,

Ad esempio:convert filename.svg -crop 100%x50% +repage filename.pdf
Harris,

@MadMike, potresti citare il tuo attuale flusso di lavoro? (es. come lo fai manualmente?)
user.dz

1
@Sneetsher Ho un file SVG di grandi dimensioni (2 x A3). Vorrei convertirlo in un formato (come PDF) che posso trasportare per lavorare e stamparlo da lì. Al lavoro avrò solo Windows disponibile. In questo momento non è una questione di farlo manualmente o no, ma come farlo affatto.
MadMike,

Risposte:


1

Hai provato il pdfposterpacchetto? Dal sito Web del progetto : "Pdfposter può essere utilizzato per creare un poster di grandi dimensioni costruendolo da più pagine e / o stampandolo su supporti di grandi dimensioni. Si aspetta come input un file PDF, normalmente stampa su una singola pagina. L'output è di nuovo un File PDF, forse contenente più pagine insieme costruendo il poster. La pagina di input verrà ridimensionata per ottenere la dimensione desiderata. "

Ho provato un rapido esempio dalla pagina man: pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdfcon il tuo file di esempio (che ho convertito in PDF in Inkscape), e sembra funzionare: 6 pagine A3 che devono essere impostate in una griglia 2 × 3.


Funziona quasi. Ho provato che pdfposter -m a3 -p 1x2a3 askUbuntu.pdf out.pdfil PDF risultante ha uno sfondo blu (pdfposter 0.6.0) anziché bianco. Puoi testarlo tu stesso se vuoi. Scarica qui il PDF di origine e ripeti la conversione, per favore. Hai lo stesso risultato?
MadMike,

@MadMike: ottengo lo stesso sfondo blu con il tuo PDF (ma uno bianco con il mio). Hai anche usato 'Salva con nome' in Inkscape per creare il PDF? Ho notato che nel tuo PDF non posso selezionare il testo, mentre posso farlo nel mio. Se seleziono l'opzione "Converti testi in tracciati" nelle opzioni di esportazione PDF, dopo aver usato ottengo lo stesso sfondo blu che usi pdfposter. Per completezza: ho la stessa versione pdfpostere la versione 0.48.4 di Inkscape.
ph0t0nix,

Jup. Funziona perfettamente. Non convertire il testo in percorso mentre si salva in PDF fa la differenza. Ora spero che l'incorporamento dei caratteri sia abbastanza buono per la stampante. ;)
MadMike l'

Grazie, il pdfposter ha funzionato anche per me. Ho dovuto solo ottenere la sua versione di sviluppo ( gitlab.com/pdftools/pdfposter ), perché quella dal repository ufficiale di Ubuntu (pdfposter 0.6.0-2) ha invertito i colori bianco e nero.
Michal Fapso,

2

Puoi salvare l'immagine come pdf da inkscape direttamente usando la massima risoluzione (dpi), diciamo 600, della stampante che intendi utilizzare per la stampa.

Successivamente, è possibile utilizzare imagemagick (comando di conversione) per ritagliare la parte superiore e inferiore dell'immagine in modo indipendente in due diversi file pdf. Ad esempio (digitato su un terminale):

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

È quindi possibile dividerlo in singoli file pdf utilizzando:

pdftk filename.pdf burst

Presumo che imagemagick e pdftk siano già installati.


Puoi anche provare le seguenti opzioni per evitare che l'immagine venga rasterizzata:-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.pdfOttengo un pdf rasterizzato con una dimensione di 49x35mm (molto piccolo)
MadMike

Questo ti dà un pdf rasterizzato:convert -density 90 askUbuntu.svg -crop 50%x100% +repage -trim -background black askUbuntu.pdf
Harris

@Harris per quanto ne so imagemagick non può gestire la grafica vettoriale. Qualunque cosa tu faccia, l'output sarà sempre un'immagine rasterizzata.
Glutanimate,

Nel loro sito web dicono che imagemagick usa inkscape o rsvg-convert per gestire i file svg.
Harris,

0

poiché non sono riuscito a ottenere il tuo file (link non funzionante) sono riuscito con un PDF che avevo sul mio computer. Ad ogni modo, è così che ho proceduto:

  • Avvia Scribus ( 1.4.3 su Ubuntu 12.04 LTS )
  • creare un nuovo documento di 2 pagine A3 con le opzioni "Pagina doppia" e "Avvio sulla pagina sinistra" selezionate (forse non è la traduzione corretta poiché sto lavorando su una versione francese di Scribus).
  • creare una cornice immagine sulle due pagine
  • importare PDF
  • imposta le dimensioni dell'immagine per adattarle alla cornice
  • esportare come PDF
  • stampalo

Il risultato è nell'archivio che puoi scaricare qui: http://www.filedropper.com/2a3tar_1 (1.4 Mo)

Il problema che può verificarsi è legato ai margini tecnici che solitamente hanno le stampanti desktop.

In questo caso, è possibile creare 2 fotogrammi di immagini che si sovrappongono come nel file 2A3bis.sla fornito.


Ho aggiornato il link per il download.
MadMike,

0

SVG è un XML, è possibile utilizzare questo script Python per generare sezioni. In realtà, non lo suddivide, ma utilizza la stessa copia del file di input con valori diversi viewBoxper mostrare solo l'area di destinazione.

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. Genera sezioni

    python svg_slice.py 2 1 askUbuntu.svg
    

    cioè: griglia 2x1

  2. Quindi utilizzare Inkscape per esportare PDF per ogni sezione / cella

    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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.