So extrahieren Sie ein Bild aus einer PDF-Datei

49

Ich verwende derzeit den PDF-Reader von Foxit und habe kürzlich ein Bild aus dem Internet heruntergeladen, das sich jedoch in einer PDF-Datei befindet. Wie extrahiere ich dieses Bild?

Betriebssystem ist Windows 7.

Studiohack
quelle
Ihre Extraktion in höchster Qualität besteht darin, das Bild in das Format zu extrahieren, in dem es bereits im PDF gespeichert ist. (Zumindest denke ich, dass Images-in-Pdfs so funktionieren.)
Quack Quixote

Antworten:

4

Wenn Sie keine ursprüngliche Pixelauflösung für das Bild benötigen, drücken Sie einfach die Tasten ALT und Bildschirm drucken. Wählen Sie dann Einfügen, wo immer Sie das Bild möchten.

Die andere Möglichkeit, die Auflösung beizubehalten, besteht darin, die PDF-Datei in einem Bildbearbeitungsprogramm wie Adobe Photoshop zu öffnen und dort damit zu arbeiten.

UserSuUserDo
quelle
1
Beim Öffnen eines PDF-Dokuments in Photoshop wird das Dialogfeld "Generisches PDF-Format rastern" angezeigt, sodass die Auflösung nicht beibehalten werden kann. Getestet mit PS7. Sind neuere Versionen von Photoshop anders?
AffineMesh
1
Wie Sie sagten, behält [alt] + [prnscr] nicht die ursprüngliche Pixelauflösung bei (es wird die von Ihrem aktuellen Bildschirm / Monitor verwendete Auflösung verwendet).
Kurt Pfeifle
1
@studiohack, @UserSuUserDo: Sie werden nicht nur die ursprüngliche Auflösung verpassen, wenn Sie [alt] + [prnscr] verwenden, sondern Sie erhalten das komplette PDF-Viewer-Fenster als Bild. Dies kann für viele Anwendungsfälle "gut genug" sein. Aber manchmal möchten Sie die Grafik so, wie sie nur in die PDF-Seite eingebettet ist. Hier ist es pdfimages.exepraktisch.
Kurt Pfeifle
1
Oder verwenden Sie das in W7 integrierte Snipping-Tool, um den gewünschten Bereich zu erfassen.
Moab,
70

Wenn Sie XPDF für Windows ( hier ) herunterladen , finden Sie einige .exe-Dateien darin. Sie können sie ohne "Installation" ausführen. Verwenden Sie pdfimages.exewie folgt:

pdfimages.exe -help

Dies zeigt den Hilfebildschirm an.

pdfimages.exe ^
    -j ^
    c:\path\to\your.pdf ^
    c:\path\to\where\you\want\images\prefix\

Dies extrahiert alle JPEGs als Präfix-00N.jpg und alle anderen Bilder als Präfix-00N.ppm (Portable PixMap).

[ Edit by ComFreek: Bitte beachten Sie den abschließenden Schrägstrich im Zielpfad , der wichtig ist, wenn Sie nicht alle Bilder in das übergeordnete Verzeichnis extrahieren möchten.] -
{ Edit by KurtPfeifle: Ich stimme dem Kommentar von ComFreek nicht zu, lasse ihn aber Es ist Aufgabe der Leser, die Unterschiede in den Ergebnissen selbst zu testen und herauszufinden. Mein ursprünglicher Parameter, nicht Slash verwenden, wie ..\prefixwerden die Bildpräfix Namen für die extrahierten Dateien verwendet.}

pdfimages.exe ^
    -j ^
    -f 11 ^
    -l 13 ^
    c:\path\to\your.pdf ^
    c:\path\to\where\you\want\images\prefix\

Wie zuvor, jedoch beschränkt sich die Bildextraktion auf die Seiten 11 ('f' = zuerst) bis 13 ('l' = zuletzt).


Aktualisieren:

In der Zwischenzeit bevorzuge ich Popplers Version vonpdfimages - zumal es diese neue Funktion übernommen hat: -listDer Befehlszeile hinzufügen , um nur die im PDF enthaltenen Bilder aufzulisten (nicht zu extrahieren), sowie einige ihrer Eigenschaften. Beispiel:

pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf

  Seitennummer Typ Breite Höhe Farbe Comp BPC Enc Interp Objekt ID
  -------------------------------------------------- -------------------
     7 0 image 581 838 rgb 3 8 jpeg no 39 0
     7 1 image 4 4 ​​rgb 3 8 image no 40 0
     7 2 image 314 332 rgb 3 8 jpx no 44 0
     7 3 image 358 430 rgb 3 8 jpx no 45 0
     7 4 image 4 4 ​​rgb 3 8 image no 46 0
     7 5 image 4 4 ​​rgb 3 8 image no 47 0
     7 6 image 4 6 rgb 3 8 image no 48 0
     7 7 image 596 462 rgb 3 8 jpx no 49 0
     7 8 image 4 6 rgb 3 8 image no 50 0
     7 9 image 4 4 ​​rgb 3 8 image no 51 0
     7 10 image 8 10 rgb 3 8 image no 41 0
     7 11 image 6 6 rgb 3 8 image no 42 0
     7 12 image 113 27 rgb 3 8 jpx no 43 0
     8 13 image 582 839 grey 1 8 jpeg no 2080 0
     8 14 image 344 364 grey 1 8 jpx no 2079 0

Beachten Sie wieder: diese Version pdfimagesist die von Poppler (die von XPDF ist nicht (noch) diese neue Funktion unterstützen?) Und die Version muss v0.20.2 oder höher sein.

Kurt Pfeifle
quelle
1
@harlev: Google für ImageMagick . Es hat ein Kommandozeilen-Tool, das alles in alles konvertieren kann, was aufgerufen wird convert. Verfügbar für Linux, Windows, MacOS X und was haben Sie. Der einfachste Anwendungsfall für Sie: convert some.ppm some.jpeg.
Kurt Pfeifle
3
Hinweis: XPDF wird nicht so aktiv gepflegt wie die Poppler-Bibliothek, die es vor einiger Zeit gabelte. Poppler bietet pdfimagesauch, und einige Leute könnten es vorziehen, dies zu verwenden.
MvG
1
@BurhanKhalid: Vorgefertigte Binärdateien finden Sie hier: sourceforge.net/projects/poppler-win32
Kurt Pfeifle
2
@ KurtPfeifle Leider enthalten diese überhaupt keine exe-Dateien.
Chris
3
Ich weiß , das ist alt, aber nur teilen wollte , ob jemand für Windows - Binärdateien suchen Sie bekommen können es hier blog.alivate.com.au/poppler-windows
Aivan Monceller
8

Sie können versuchen, die PDF-Datei in Inkscape zu importieren und von dort aus zu arbeiten. Inkscape öffnet jeweils nur eine Seite, gibt Ihnen jedoch die vollständige Kontrolle über den Seiteninhalt. Sie können Vektorgrafiken ganz einfach aus dem PDF extrahieren und bearbeiten.

Wenn Sie jedoch Rasterbilder aus der PDF-Datei extrahieren pdfimagesmöchten, ist XPDF mit ziemlicher Sicherheit einfacher (Sie können jedoch trotzdem Inkscape verwenden, nachdem Sie gelernt haben, wie eingebettete Bilder aus SVG-Dateien extrahiert werden ).

Denilson Sá Maia
quelle
GIMP ( gimp.org ) ist ein weiteres Grafikdesign-Tool, mit dem PDF-Dateien importiert und bearbeitet werden können. Ich bin mir jedoch nicht sicher, inwiefern sich die GIMP-Funktionen von denen in Inkscape unterscheiden.
coderworks
@coderworks: GIMP rastert die importierte PDF-Seite in eine bestimmte Auflösung. Mit anderen Worten, es ist etwas besser als "Print Screen". Inkscape hingegen behält die ursprünglichen Vektordaten sowie die ursprünglichen Rasterbilder bei.
Denilson Sá Maia
5

Ohne Installation einer Software können Sie zu PDF-XChange Viewer wechseln (wählen Sie Portable Version ), in dem diese Funktion bereits integriert ist

  • exportiert alle oder ausgewählte Seiten als Bild
  • Ausgabeformat: PNG, JPG, TIFF, BMP
  • Wählen Sie DPI, Komprimierungsstufe, Graustufen
  • kann mehrere Seiten als mehrseitiges TIFF speichern

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben
    klicken um zu vergrößern


Bitte beachten Sie, dass diese Methode ganze PDF-Seiten in Bilder konvertiert. Die von @Laurenz mit Sumatra PDF erläuterte Methode ist jedoch besser, wenn Sie Bilder aus einer PDF-Seite mit gemischtem Inhalt (Bild + Text) extrahieren möchten, um nur das Bild zu erhalten.

Nixda
quelle
2
@MarkSeemann kann ich nicht folgen. "Ohne Installation von Software" bedeutet in diesem Zusammenhang, dass eine portable Version verfügbar ist. Portable Software konnte nicht per Definition "installiert" werden. Sie müssen es nur herunterladen, extrahieren und starten.
Nixda
3
Die Tatsache, dass Sie "DPI auswählen" müssen, ist gegen den Zweck. Sie ändern die Größe von Rasterbildern (Array von Pixeln), und jede Änderung der Größe eines Rasterbilds führt zu einem Qualitäts- und Informationsverlust.
Anthony
PPM-Dateien in PNG oder JPEG konvertieren?
Kiquenet
4

Sumatra PDF ist ein schneller und leichter Open-Source-PDF-Reader, mit dem Bilder ohne erneute Rasterung direkt in die Zwischenablage kopiert werden können.

Laurenz
quelle
3

MuPDF ist ein neuer (2006 erstellter) Multiplattform-PDF-Viewer (Desktop und Mobile), der unter der AGPL-Lizenz veröffentlicht wurde. Es wird von denselben Leuten von Ghostscript gepflegt.

Es enthält ein Befehlszeilentool zum Extrahieren von Bildern aus einer PDF-Datei:

mutool extract [options] file.pdf [object numbers]

Mit dem Befehl "Extrahieren" können Sie Bilder und Schriftdateien aus einer PDF-Datei extrahieren. Wenn in der Befehlszeile keine Objektnummern angegeben sind, werden alle Bilder und Schriftarten extrahiert.

-p password
       Use the specified password if the file is encrypted.

-r     Convert images to RGB when extracting them.
Denilson Sá Maia
quelle
2

Verwenden Sie pdftocairoaus poppler toolkit. Es kann Bilder von PDF in jedes gewünschte Format extrahieren und konvertieren. Es werden immer Bilder erzeugt und niemals ppm oder so etwas. Mit dem folgenden Befehl können Sie die PDF-Seiten in JPG-Bilder konvertieren:

pdftocairo.exe -jpeg "my.pdf" "my"

Sie können es hier für Windows herunterladen : http://blog.alivate.com.au/poppler-windows/

Es ist auch unter Linux verfügbar.

MSS
quelle
Dieser Befehl EXTRAHIERT KEINE in ein PDF eingebetteten Bilder (wie vom OP verlangt). Stattdessen werden komplette PDF-Seiten in Bildformate konvertiert. Diese Antwort passt nicht zu der gestellten Frage.
Kurt Pfeifle
1

http://www.sumnotes.net/ ist ein Online-Tool zum Extrahieren von Notizen, Markierungen und Bildern. Ich habe es ausgiebig an der Universität für meine Abschlussarbeit verwendet und war sehr zufrieden.

Timothy
quelle
Kommerziell mit eingeschränkter kostenloser Testversion. Es ist auch online, was bedeutet, dass die Privatsphäre nicht garantiert werden kann!
Anthony
-1

Normalerweise extrahiere ich das eingebettete Bild mit 'pdfimages' in der nativen Auflösung und verwende dann ImageMagicks Konvertierung in das benötigte Format:

$ pdfimages -list fileName.pdf
$ pdfimages fileName.pdf fileName   # save in .ppm format
$ convert fileName-000.ppm fileName-000.png

Dies erzeugt die beste und kleinste Ergebnisdatei.

Hinweis: Für verlustbehaftete eingebettete JPG-Bilder mussten Sie -j verwenden:

$ pdfimages -j fileName.pdf fileName   # save in .jpg format

Auf der wenig bereitgestellten Win-Plattform musste eine aktuelle (0.37, 2015) 'poppler-util'-Binärdatei von folgender Adresse heruntergeladen werden: http://blog.alivate.com.au/poppler-windows/

UPDATE: Seit "poppler-util" 0.50+ (2016) hat pdfunite die Option "-all", um verlustfrei komprimierte Bitmaps als .png und verlustbehaftete komprimierte Bitmaps als .jpg zu extrahieren.

$ pdfimages -all fileName.pdf fileName

Extrahieren Sie immer den bestmöglichen Qualitätsinhalt aus PDF

Valerio
quelle
War vorher in Kurt Pfeifles Antwort.
daniel.neumann