Wie exportiere ich eine Inkscape-SVG-Datei in ein PDF und bewahre die Integrität des Bildes?

Sie haben Probleme, Inkscape dazu zu bringen, PDFs sauber zu exportieren, und es scheint nicht viele hilfreiche Ressourcen zu geben. Insbesondere Transparenzen sind schwierig – manchmal verschwindet die Transparenz und manchmal wird sie zu einem festen Block.

Ich habe mit den Einstellungen zum Speichern als PDF in Inkscape herumgespielt und mit CutePDF ohne Erfolg in ein PDF gedruckt. Gibt es eine Methode zum Exportieren oder Erstellen einer Datei, damit ich vorhersehbare Ergebnisse erhalte?

Hoffentlich wird @DA01 hier einspringen. Er ist mit Inkscape bestens vertraut.
Ich würde nicht tief sagen ... aber ich bin ein Fan davon. Ich kenne die Antwort nicht, aber ich vermute, dass SVG und PDF einfach unterschiedliche Dateiformate sind und unterschiedliche Teile jeder Spezifikation unterstützen. Mit SVG können Sie viel in Bezug auf Transparenz, Unschärfe, Überblendung und dergleichen tun, und ich gehe davon aus, dass PDF dies noch nicht unterstützt. Möglicherweise müssen Sie das SVG zuerst über Adobe Illustrator ausführen, in der Hoffnung, dass AI es in ein Format konvertiert, mit dem das PDF zufrieden ist.
Inkscape hat einige Updates durchlaufen, seit diese Frage gestellt wurde. Ich würde gerne wissen, wo diese Situation jetzt steht und ob es bestimmte Teile der SVG-in-PDF-Konvertierung gibt, die immer noch problematisch sind.

Antworten (22)

Inkscape (v1.0) unterstützt Befehlszeilenoptionen , und so mache ich es am liebsten:

inkscape mySVGinputFile.svg --export-area-drawing --batch-process --export-type=pdf --export-filename=output.pdf

Vor v1.0 waren die Befehlszeilenoptionen anders. Ab Inkscape (v0.91) war dies das Äquivalent:

inkscape --file=mySVGinputFile.svg --export-area-drawing --without-gui --export-pdf=output.pdf

Dies ist eigentlich der Befehl, den LyX verwendet, um SVG-Bilder für die Verwendung in LaTeX vorzubereiten. Ich habe PlantUML verwendet , um SVG zu generieren, das dann in PDF umgewandelt wird.

Hier ist ein Screenshot des SVG in Inkscape, das eine reine Vektordarstellung (einschließlich Schriftarten) hat.

SVG in Inkscape

Hier ist ein Screenshot der vergrößerten PDF-Datei mit einer Auswahl des Textes „oo“ aus der Wortschleife, der zeigt, dass es sich immer noch um Text in der PDF-Datei handelt:

PDF im Acrobat

Das hat gut funktioniert. Zu Ihrer Information, das Mac OS-Befehlszeilentool befindet sich unter: /Applications/Inkscape.app/Contents/Resources/bin/inkscape- Fügen Sie danach Ihre --file=/My/File.svgusw. ein.
Ich habe es mit einer benutzerdefinierten base64-Schriftart getestet, aber Inkscape (0.92) unterstützt es anscheinend nicht.
@xamid Wenn Sie Windows 10 verwenden, könnte dies Folgendes sein: reddit.com/r/Inkscape/comments/bg0rkm/…

Eigentlich wurde dies hier für Linux-Benutzer gefragt und beantwortet.

Sie müssen installieren librsvg2-bin. Ich füge nur hinzu, dass Sie die Seite an Ihr SVG anpassen müssen, sonst wird es abgeschnitten. In Inkscape: Datei -> Dokumenteigenschaften -> SVG-Objekte auswählen -> Seite an Auswahl anpassen.

Dann einfach ausführen:

rsvg-convert -f pdf in.svg > out.pdf
Dies ist bei weitem die beste Antwort: nur eine, die funktioniert hat!
Dieses Tool behält nicht einmal die richtige Schriftgröße bei, geschweige denn die richtige Schriftart.

Wählen Sie im Hauptmenü:

Datei → Drucken ... → In Datei drucken

Hier können Sie wählen, ob Sie die Datei als PDF, PostScript oder SVG speichern möchten.

Versuchen Sie, in .PDF zu exportieren, um die Bearbeitungsfunktionen beizubehalten? Andernfalls, wenn Sie versuchen, ein Bild mit jemandem von Inkscape zu teilen, speichern Sie es als .JPG oder .PNG (falls ein durchscheinender Hintergrund benötigt wird).

In der Vergangenheit hat der Versuch, als PNG/JPEG zu speichern, die physische Größe und Auflösung des Bildes erheblich reduziert. Vielleicht mache ich es einfach falsch?
Hast du die neueste Version von Inkscape heruntergeladen?
@Zelbinian, ein SVG hat keine inhärente Größe oder Auflösung. Nur wenn Sie als PNG exportieren möchten, fragt Inkscape nach einer Größe. Geben Sie diese so groß an, wie Sie möchten.
Das Ändern eines Vektorbildes in ein Rasterbild wird definitiv nicht (andere Aspekte) der Integrität des Bildes aufrechterhalten.

Auf einem Linux-Betriebssystem exportiere ich nach PNG und verwende dann das Konvertierungstool, um es in PDF zu konvertieren.

+1 Dies ist keine schlechte Antwort ... und tatsächlich eine Methode, die ich verwendet habe, um die Fehler von Inkscape beim Maskieren von Formen zu umgehen (die "explodieren", wenn sie direkt in PDF konvertiert werden). Für komplexe SVGs, die Inkscape nicht vollständig in ein PDF umwandeln kann, ist das Rastern manchmal eine praktikable Problemumgehung.
Dies verliert jegliche Ähnlichkeit mit Qualität und Vektorhaftigkeit, die Sie haben, und ist daher ungeeignet.

Ich verwende gerne Inkscape zum Zeichnen – es ist viel intuitiver als Illustrator und liefert sehr professionelle Ergebnisse.

Ich habe jedoch Inkscape verwendet, um Abbildungen für die Veröffentlichung vorzubereiten, und hatte erhebliche Schwierigkeiten, die Abbildungen mit den Einstellungen für die Veröffentlichungsqualität zu exportieren. Beim Speichern von Dateien im .eps-Format wurden meine Schriftarten nicht richtig eingebettet, und im .pdf-Format konnte ich nicht in Druckqualität speichern. (Ich verwende Windows XP und Inkscape Version 0.48.4.)

Um dies zu umgehen, habe ich die Anweisungen zur Erstellung von Zahlen zur Druckqualität befolgt, die unter diesem Link zu finden sind .

Diese Schritt-für-Schritt-Anleitung zeigt Ihnen, wie Sie in eine PDF-Datei mit eingebettetem Text und Druckqualitätseinstellungen drucken.

Ich hatte bei einigen meiner größeren Figuren Schwierigkeiten beim Drucken in PDF (nur zufällige Teile meiner Figur landeten im PDF, was sehr frustrierend war!). Um dieses Problem zu umgehen, habe ich alle Aspekte meiner Inkscape-Figur gruppiert und die Gesamtgröße verkleinert. Aus irgendeinem Grund hat das wirklich gut funktioniert und ich habe gut aussehende PDFs für diese Figuren erhalten.

Eine andere Möglichkeit besteht darin, die Figur (wenn möglich) zu halbieren und zwei PDFs auszudrucken. Diese können in Adobe Acrobat Professional kombiniert werden (ältere Versionen stehen unter diesem Link zum Download bereit .

Klicken Sie auf „PDF erstellen“, wählen Sie „Aus mehreren Dateien“ und wählen Sie die PDFs aus, die Sie kombinieren möchten. Diese werden als einzelne Seiten im PDF-Dokument angezeigt. Um sie zu einer einzigen Seite zusammenzufassen, gehen Sie zu File --> PrintUnter Page Handlingändern Page Scalingzu Multiple pages per sheet.

Dann können Sie anpassen, wie viele Seiten Sie pro Blatt haben möchten. Klicken Sie auf OK und Ihre 2 PDFs werden nun zu einer einzigen Seite kombiniert.

Ich hoffe, diese Informationen sind für diejenigen unter Ihnen hilfreich, die strenge Anforderungen an die Veröffentlichung von Qualitätszahlen haben.

Es ist Jahre her, seit ich irgendwelche Probleme mit der Transparenz von Inkscape-generierten PDFs hatte, und wenn, dann stellte sich heraus, dass diese ein Problem des PDF-Viewers (oder in einem Fall: eines esoterischen Druckers) waren, nicht von Inkscape. Daher würde ich sagen, dass die Verwendung einer neuen Version von Inkscape solche Probleme beheben sollte.

Allerdings gibt es seit Inkscape 0.47 (ab 2009) die Option Filtereffekte rastern für den PDF-Export, die alle vom PDF-Format nicht unterstützten Filter (z. B. Weichzeichnen) rastern und alles andere vektorisiert halten soll.

Ich verwende Inkscape und speichere SVGs routinemäßig in PDF. Halten Sie sich von Filtern und undurchsichtigen Einstellungen fern, da PDFs (oder sollte ich sagen, InkScapes exportiert nach PDF) diese Funktion nicht sehr gut handhaben.

Ich verwende stattdessen Farbskalen anstelle von undurchsichtigen Ebenen, um Farben direkt auf der Palette weicher zu machen und die Filter vollständig zu vermeiden. Ich weiß, dass dies mühsam ist und Ihre Fähigkeiten einschränkt, was Sie tun können. Aber der Export sieht gut aus, wenn ich diese Regeln befolge.

Ab Inkscape 1.0beta2 haben sich einige der Befehlszeilenargumente geändert. Daher ist die Verwendung für die Beta-Version 1.0:

inkscape {svgPath} --export-area-drawing --without-gui --export-file={destPath}

wobei ich die Klammern hier verwendet habe, um die Teile anzugeben, die Sie für Ihre Verwendung ändern möchten. Wenn ich beispielsweise die SVG-Datei hätte pizza.svgund sie in das PDF konvertieren möchte pizza.pdf, würde ich Folgendes verwenden:

inkscape pizza.svg --export-area-drawing --without-gui --export-file=pizza.pdf

Ich konnte diese Änderungen nicht in der Dokumentation finden, also vermute ich (zu dem Zeitpunkt, als ich dies schreibe), dass die Dokumentation noch aufholen muss.

FWIW: Es scheint, dass dieser neue Ansatz dazu gedacht ist, die Befehlszeile ein wenig zu vereinfachen. Anstatt den zu lesenden und zu exportierenden Dateityp explizit anzugeben, verwendet Inkscape das Suffix der Datei, um die Dateitypen implizit anzugeben.

Ein weiteres FWIW: Wenn Sie einen Mac verwenden, besteht eine gute Chance, dass Inkscape nicht in Ihrem Pfad ist - daher können Sie Inkscape nicht ohne zusätzliche Arbeit von der Befehlszeile aus ausführen. Der einfachste Ansatz, um dieses Hindernis zu umgehen, besteht darin, inkscapein den obigen Befehlszeilenbeispielen durch zu ersetzen /Applications/Inkscape.app/Contents/MacOS/inkscape.

  1. Drucken
  2. Wählen Sie Bitmap auf der Registerkarte Rendering und wählen Sie die gewünschte Auflösung.
  3. Wählen Sie Ihren PDF-Drucker auf der Registerkarte Allgemein aus.
  4. Drucken.

Registerkarte Rendern

Bitmap dpi und drucken

Wenn Sie FoxIt Reader installiert haben, können Sie einfach

  1. Datei -> Drucken ( Ctrl+ P)
  2. Wählen Sie „FoxIt Reader PDF Printer“, um die Datei als PDF zu exportieren.

Wenn Sie die Seitengröße bereits in den Dokumenteigenschaften festgelegt haben (stellen Sie sicher, dass Ihre Elemente in die Seite passen) > gehen Sie zur Druckvorschau. Hier können Sie es als pdf speichern und auch ohne Auflösungsverlust in der gewünschten Größe ausdrucken.

Ich hatte dieses Problem auch und keine der vorhandenen Antworten funktionierte für mich. Ich habe meine Lösung hier gefunden: https://bugs.launchpad.net/inkscape/+bug/1004887

Fügen Sie jedem Bild einen Filter hinzu und speichern Sie es dann als PDF. Stellen Sie sicher, dass Sie "Filtereffekte rastern" aktivieren. Ich hatte es mit Graustufenbildern zu tun, also habe ich einen Graustufenfilter angewendet, damit die Bilder nicht sichtbar verändert wurden.

ich hatte ein incskape 0.92.4 problem beim speichern als pdf "*.pdf datei konnte nicht gespeichert werden" einfach feld "limit export mit ID" leer lassen (facepalm) linkbeschreibung hier eingeben

Ihr Bildlink ist defekt und Ihre Antwort ist nicht sehr klar ... Abgesehen davon, dass dies eine sehr alte Frage ist, sind Sie sicher, dass Sie nützliche Informationen hinzufügen? Überprüfen Sie, wie man antwortet, und bearbeiten Sie dann Ihre Antwort, um weitere Details hinzuzufügen / den defekten Bildlink zu reparieren.

1- Wählen Sie Drucken (aus Datei)

2- Klicken Sie auf die Registerkarte Rendern: Vektor auswählen (ändern zu) .

4- Klicken Sie auf die Registerkarte „Allgemein“ oben in „Drucker auswählen“: Wählen Sie den Drucker für PDF aus, zum Beispiel unter Windows habe ich Foxit PDF Printer (weil ich Foxit Reader auf meinem Computer habe).

5- Drucken.

Eine herzliche Empfehlung: cairosvg , ein Python-Svg-Konverter.

cairosvg mySVGinputFile.svg -o outputfile.pdf

Vorteile:

  • .pdf-Dateien haben im Vergleich zur Inkscape- Konvertierung eine kleinere Größe
  • einfachere Befehlszeile.

Wenn Sie Stapelkonvertierungen durchführen möchten, dh viele Dateien gleichzeitig konvertieren möchten, lesen Sie diese Antwort .

Versuchen Sie, das Snipping-Tool zu verwenden, das mit Windows 7 geliefert wird. Wenn es nicht bereits an Ihre Taskleiste angeheftet ist, finden Sie es unter „Alle Programme“, „Zubehör“. Sieht aus wie eine Schere. Das speichert es als JPEG, öffnet dann das JPEG und druckt mit dem niedlichen PDF.

Das ist wahrscheinlich nicht die Lösung, nach der Zelbinian sucht; Der Export nach PDF würde bedeuten, dass Vektorobjekte beibehalten werden. Wie die andere Antwort betonte, könnten Sie die Datei sowieso einfach als JPG exportieren, ein Screenshot wäre in diesem Fall eine minderwertige Methode

Es ist sehr einfach. Speichern Sie Ihre Datei/Auswahl als pdf.

Welche Version? Hat es sich geändert? Siehe Antwort von Benutzer 14047 und den Kommentar von DA01 ...
Diese Antwort geht nicht auf die Frage ein. Das Problem des Benutzers ist nicht, dass er nicht weiß, wie man ein PDF aus Inkscape exportiert, sondern dass die Ergebnisse nicht zufriedenstellend sind.

Ich habe mein Dokument (einschließlich Verlaufsebene über Bild und Bild mit Transparenz) als gezipptes JessyInk-PDF gespeichert. Stellen Sie die DPI ein und speichern Sie. In der Zip-Datei finden Sie wie vorgesehen die PDF-Datei.

Wenn Sie es für Freigabezwecke konvertieren, exportieren Sie es als PNG. Auf der Registerkarte Dateien gibt es eine separate Option zum Exportieren als PNG. Es wird Ihnen viel Ärger ersparen.

Können Sie erläutern, welche Art von Ärger es erspart und warum?

Ich ärgere mich schon lange über dieses Problem. Ab 2019 ist der beste Ansatz, den ich finden konnte, einen Postscript-Zwischenschritt einzufügen. Verwendung der MakeSyntax:

rsvg-convert -f ps $^ | gs -sDEVICE=pdfwrite -sOutputFile=$@ -f -

wobei $^die Quelldatei und $@die Zieldatei ist.

Es gibt standardmäßig PDF 1.7 mit Ghostscript 9.27 aus. Es löst alle Probleme, die ich mit der pdfSpeicher-Engine von inkscape (Version 1.0 alpha) finde.

Verwenden Sie GIMP, mein Freund!

Öffnen Sie die SVG-Datei darauf und exportieren Sie sie als PDF.

Das ist eine ziemlich alte Frage mit einer Reihe von Optionen zum Arbeiten mit Inkscape selbst ... GIMP ist kein Vektor-Editor AFAIK, wird es das SVG wirklich als Vektor-PDF exportieren?