Konvertieren Sie SVG in PDF auf mehreren Blättern


9

Ich habe eine SVG-Datei in Inkscape erstellt. Ich möchte es auf mehrere Blätter drucken, um endlich ein großes Poster zu bilden. Ich benötige diese mehreren Blätter, die in ein PDF konvertiert wurden, damit ich sie von jedem Betriebssystem aus drucken kann.

Die Datei, mit der ich arbeite:

  • SVG hat eine Größe von 840 mm x 297 mm. (Breite x Höhe)
  • Generieren Sie ein PDF mit zwei A3-Blättern (420 mm x 297 mm).

Sie können die Datei herunterladen, wenn Sie Ihre Lösung selbst ausprobieren möchten.

Ich bin offen für fast jede Lösung, sei es Inkscape-Erweiterungen / Skripte oder Befehlszeilentools. Ich möchte einfach nicht jedes Mal manuell herumspielen, wenn ich die Konvertierung erneut durchführen muss.

Dinge, die ich versucht habe und die nicht funktioniert haben:

  • inkscape-pages bietet Unterstützung für mehrere Seiten in Inkscape, jedoch keine Unterstützung für die Trennung einer bestimmten Datei von den Seiten.

Tools, die nur mit dem Rasterbildformat (wie PNG oder JPG) funktionieren, sind ein No-Go :

Ich habe gehört, dass Tools funktionieren könnten, aber wo ich nicht sicher bin, ob sie funktionieren und wie ich sie angehen soll:

Update: Download-Link hinzugefügt .


Werfen Sie einen Blick auf diese Frage: Drucken eines Plakats (über mehrere Blatt Papier)
Bund

Mit imagemagick (Befehl konvertieren) können Sie den oberen und unteren Teil des Bildes unabhängig voneinander in zwei verschiedene PDF-Dateien zuschneiden.
Harris

Zum Beispiel:convert filename.svg -crop 100%x50% +repage filename.pdf
Harris

@ MadMike, Könnten Sie Ihren aktuellen Arbeitsablauf erwähnen? (dh wie machst du es manuell?)
user.dz

1
@Sneetsher Ich habe eine übergroße (2 x A3) SVG-Datei. Ich möchte es in ein Format (wie PDF) konvertieren, das ich zur Arbeit transportieren und von dort aus drucken kann. Bei der Arbeit werde ich nur Windows zur Verfügung haben. Im Moment geht es nicht darum, es manuell zu machen oder nicht, sondern wie man es überhaupt macht.
MadMike

Antworten:


1

Haben Sie das pdfposterPaket ausprobiert ? Auf der Projektwebsite : "Mit Pdfposter können Sie ein großes Poster erstellen, indem Sie es aus mehreren Seiten erstellen und / oder auf großen Medien drucken. Als Eingabe wird eine PDF-Datei erwartet, die normalerweise auf einer einzelnen Seite gedruckt wird. Die Ausgabe erfolgt erneut a PDF-Datei, die möglicherweise mehrere Seiten zusammen enthält, um das Poster zu erstellen. Die Eingabeseite wird skaliert, um die gewünschte Größe zu erhalten. "

Ich habe ein kurzes Beispiel aus der Manpage ausprobiert: pdfposter -mA3 -pA0 askUbuntu.pdf printer-pages.pdfmit Ihrer Beispieldatei (die ich in Inkscape in PDF konvertiert habe), und es scheint zu funktionieren: 6 A3-Seiten, die in einem 2 × 3-Raster festgelegt werden müssen.


Funktioniert fast. Ich habe versucht, dass pdfposter -m a3 -p 1x2a3 askUbuntu.pdf out.pdfdas resultierende PDF einen blauen Hintergrund (pdfposter 0.6.0) anstelle von Weiß hat. Sie können es selbst testen, wenn Sie möchten. Laden Sie hier das Quell-PDF herunter und wiederholen Sie die Konvertierung. Haben Sie das gleiche Ergebnis?
MadMike

@ MadMike: Ich bekomme den gleichen blauen Hintergrund mit Ihrem PDF (aber einen weißen mit meinem). Haben Sie in Inkscape auch "Speichern unter" verwendet, um das PDF zu erstellen? Ich habe festgestellt, dass ich in Ihrem PDF den Text nicht auswählen kann, während ich es in meinem kann. Wenn ich in den PDF-Exportoptionen die Option "Texte in Pfade konvertieren" auswähle, wird der gleiche blaue Hintergrund angezeigt wie nach der Verwendung pdfposter. Der Vollständigkeit pdfposterhalber : Ich habe dieselbe Version von und Version 0.48.4 von Inkscape.
Ph0t0nix

Jup. Funktioniert perfekt. Wenn Sie den Text beim Speichern in PDF nicht in einen Pfad konvertieren, macht dies den Unterschied. Jetzt hoffe ich, dass das Einbetten der Schrift für den Drucker gut genug ist. ;)
MadMike

Danke, der pdfposter hat auch bei mir funktioniert. Ich musste nur die Entwicklungsversion ( gitlab.com/pdftools/pdfposter ) herunterladen , da die aus dem offiziellen Ubuntu-Repository (pdfposter 0.6.0-2) die Schwarzweißfarben invertierte.
Michal Fapso

2

Sie können das Bild als PDF aus Inkscape direkt mit der höchsten Auflösung (dpi) (z. B. 600) des Druckers speichern, den Sie zum Drucken verwenden möchten.

Anschließend können Sie mit imagemagick (Befehl konvertieren) den oberen und unteren Teil des Bildes unabhängig voneinander in zwei verschiedene PDF-Dateien zuschneiden. Zum Beispiel (auf einem Terminal eingegeben):

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

Sie können es dann in einzelne PDF-Dateien aufteilen, indem Sie:

pdftk filename.pdf burst

Ich gehe davon aus, dass imagemagick und pdftk bereits installiert sind.


Sie können auch die folgenden Optionen ausprobieren, um zu verhindern, dass das Bild gerastert wird:-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.pdfIch bekomme ein gerastertes PDF mit einer Größe von 49x35mm (viel zu klein)
MadMike

Gibt Ihnen dies ein gerastertes PDF:convert -density 90 askUbuntu.svg -crop 50%x100% +repage -trim -background black askUbuntu.pdf
Harris

@ Harris, soweit ich weiß, kann imagemagick keine Vektorgrafiken verarbeiten. Was auch immer Sie tun, die Ausgabe wird immer ein gerastertes Bild sein.
Glutanimate

Auf ihrer Website heißt es, dass imagemagick inkscape oder rsvg-convert verwendet, um SVG-Dateien zu verarbeiten.
Harris

0

Da ich Ihre Datei nicht bekommen konnte (defekter Link), habe ich es mit einem PDF geschafft, das ich auf meinem Computer hatte. Wie auch immer, so bin ich vorgegangen:

  • Starten Sie Scribus ( 1.4.3 unter Ubuntu 12.04 LTS )
  • Erstellen Sie ein neues A3 2-Seiten-Dokument mit den ausgewählten Optionen "Doppelseite" und "Ab linker Seite beginnen" (möglicherweise nicht die richtige Übersetzung, da ich an einer französischen Scribus-Version arbeite).
  • Erstellen Sie einen Bilderrahmen über den beiden Seiten
  • PDF importieren
  • Stellen Sie die Bildgröße auf den Rahmen ein
  • als PDF exportieren
  • Druck es

Das Ergebnis befindet sich im Archiv, das Sie hier herunterladen können: http://www.filedropper.com/2a3tar_1 (1.4 Mo)

Das Problem, das auftreten kann, hängt mit den technischen Rändern zusammen, die Desktop-Drucker normalerweise haben.

In diesem Fall können Sie 2 Bilderrahmen erstellen, die sich wie in der bereitgestellten Datei 2A3bis.sla überlappen .


Ich habe den Download-Link aktualisiert.
MadMike

0

SVG ist eine XML-Datei. Mit diesem Python-Skript können Sie Slices generieren. Tatsächlich wird es nicht in Scheiben geschnitten, sondern es wird dieselbe Kopie der Eingabedatei mit unterschiedlichen Werten von verwendet viewBox, um nur den Zielbereich anzuzeigen.

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. Slices generieren

    python svg_slice.py 2 1 askUbuntu.svg
    

    dh: 2x1 Gitter

  2. Verwenden Sie dann Inkscape, um PDF für jedes Slice / jede Zelle zu exportieren

    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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.