Wie extrahiere ich Vektoren aus einer PDF-Datei?

51

Ich habe eine PDF-Datei mit Vektorgrafiken. (Ich habe es aus dem Internet heruntergeladen, daher habe ich keine Originale.)

Ich möchte die Vektoren extrahieren, damit ich sie auf einige andere Bilder legen kann. Verwenden Sie sie in Printmedien oder auf einer Website.

Wie extrahiere ich die spezifischen Vektoren aus der PDF-Datei?

Gibt es vielleicht eine Software, die die Vektoren aus einer PDF-Datei extrahieren kann? (Vorzugsweise kostenlos.)

Devdatta Tengshe
quelle
@slhck: Ich meinte Vektorgrafiken . Ich habe Inkscape verwendet und es funktioniert wie erwartet. Können Sie bitte Ihren Kommentar als Antwort einfügen, damit ich ihn als akzeptiert markieren kann?
Devdatta Tengshe

Antworten:

49

Sie können Inkscape verwenden , eine kostenlose Open-Source- und plattformübergreifende Vektorgrafikanwendung. Hier können Sie die PDF-Dateien importieren und eingebettete Vektoren auswählen. Sie können sie dann bearbeiten und bearbeiten, wie Sie möchten.

Eine ausführliche Dokumentation finden Sie auf der Inkscape-Website.

Beachten Sie, dass unter Linux X11 erforderlich ist. Es gibt auch eine native Windows-Version.

Alternativ können Sie Adobe Illustrator testen (kostenpflichtige Software).

slhck
quelle
2
Unter Linux ist X11 erforderlich - es gibt auch eine native Windows-Version (die ich nur zum Extrahieren einer Vektorzeichnung aus einem PDF-Dokument verwendet habe).
Mark Leighton Fisher
23

Inkscape ist eine großartige Möglichkeit, dies zu tun. Für Benutzer ohne X11 können Sie auch einzelne Seiten einer PDF-Datei mit den Poppler-Utils in der Befehlszeile in das SVG-Format extrahieren . So extrahieren Sie beispielsweise nur Seite 30:

$ pdftocairo -f 30 -l 30 -svg  somehugemanual.pdf  myextractedpage.svg

Sie können dann Ihren bevorzugten Vektoreditor verwenden (meiner ist Inkscape), um das Bild vom Text zu isolieren.

Alternativ können Sie als Hardcore-Befehlszeilenbenutzer in EPS (gekapseltes Postscript) extrahieren und sedden gesamten Text (der sich bei pdftocairo zwischen BT- und ET-Zeilen befindet) ausblenden. Hier ist wie:

$ pdftocairo -f 30 -l 30 -eps  manual.pdf  - | sed '/^BT$/,/^ET$/ d' > myimage.eps

Und wenn Sie wirklich wahnsinnig sind, X11 zu vermeiden, können Sie den Begrenzungsrahmen des Bildes mithilfe des Ghostscript- eps2epsBefehls sogar von der Befehlszeile aus verkleinern :

$ eps2eps myimage.eps myimage-bb.eps

Ich habe das getestet und es funktioniert super. Ich persönlich finde es jedoch einfacher, nur Inkscape zu verwenden.

hackerb9
quelle
+1 Ihre Befehlszeile entfernt den gesamten Text. Aber wissen Sie, wie Sie auch alle Bilder entfernen können? Ich bin auf der Suche nach einer Lösung, bei der nur die Vektorgrafik übrig bleibt :)
Clarkk
Geht das für dich? cat foo.eps | sed '/^8 dict dup begin$/,/^Q$/ c Q' > nobitmaps.eps
Hackerb9
1
aber kann dann überprüft werden, ob die eps-datei überhaupt eine Vektorgrafik enthält? :)
Clarkk
1
Ich nehme an, Sie könnten Ghostscript's eps2eps verwenden, um es bis zu seinem kleinsten Begrenzungsrahmen zu destillieren und festzustellen, ob es vollständig leer ist. Dies wird jedoch allmählich zu einer neuen Frage. Fühlen Sie sich frei zu fragen und ich bin sicher, wenn ich nicht antworte, wird jemand.
Hackerb9
1
@ hackerb9 danke, jetzt ist das eps lesbar, aber das bild hat eine wirklich geringe dichte und es bleibt noch etwas text daneben. Das PDF finden Sie hier und das Bild finden Sie auf Seite 7
25.