Wie konvertiere ich PDF in Bild?


Antworten:


299
  1. Installieren Sie imagemagick .

  2. Verwenden eines Terminals, in dem sich das PDF befindet:

    • Für das vollständige Dokument:

      convert -density 150 input.pdf -quality 90 output.png
      
    • Für eine einzelne Seite:

      convert -density 150 input.pdf[666] -quality 90 output.png
      

Wodurch:

  • PNG, JPG oder (praktisch) jedes andere Bildformat kann gewählt werden.

  • -density xxxsetzt die DPI auf xxx(gemeinsam sind 150 und 300).

  • -quality xxxsetzt die Komprimierung xxxfür PNG-, JPG- und MIFF-Dateiformate auf (100 bedeutet keine Komprimierung).

  • [666]konvertiert nur die 667. Seite in PNG (nullbasierte Nummerierung [0]ist auch die 1. Seite).

  • Alle anderen Optionen (z. B. Zuschneiden, Graustufen usw.) können auf der Website von Image Magic angezeigt werden .


2
Die Antwort funktioniert so wie sie ist, aber die Auflösung ist sehr schlecht. Daher ist derzeit keine Antwort sinnvoll. Wenn convert einige Parameter hat, die angegeben werden können, kann sich dies möglicherweise ändern.
Elijah Lynn


6
Sie können die Dichte ändern, indem Sie den -density 300Parameter
OHLÁLÁ

4
Kann also jemand bestätigen, dass die Angabe der Dichte "so gut" ist wie die anderen Antworten hier, oder nicht? Auch als Anmerkung zu den Nachfolgern, ruft ImageMagick, um „ghost“ , um tatsächlich von pdf zu png ex zu konvertieren: gs -q NOPROMPT ...-sDEVICE=pngalpha -r150x150 -sOutputFile=/var/tmp/Yf%d -f/var/tmp/L -f/var/tmp/Fic1und wenn Sie bekommen convert: no images defined output.pnges bedeutet , Sie müssen nicht ghost installiert ...
rogerdpack

4
Das Parsen von PDF in imagemagick wurde deaktiviert - bugs.archlinux.org/task/59778 - es kann manuell aktiviert werden, indem die /etc/ImageMagick-7/policy.xmlDatei bearbeitet und PDFvon<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
Jezor

393

Sie können pdftoppmzum Konvertieren einer PDF-Datei in eine PNG-Datei Folgendes verwenden:

pdftoppm input.pdf outputname -png

Dadurch wird jede Seite im PDF-Format ausgegeben outputname-01.png, wobei 01es sich um den Index der Seite handelt.

Konvertieren einer einzelnen Seite der PDF

pdftoppm input.pdf outputname -png -f {page} -singlefile

Wechseln Sie {page}zur Seitennummer. Es ist bei 1 indiziert, -f 1wäre also die erste Seite.

Angabe der Auflösung des konvertierten Bildes

Die Standardauflösung für diesen Befehl beträgt 150 DPI. Wenn Sie den Wert erhöhen, wird die Datei größer und detaillierter.

Um die Auflösung der konvertierten PDF-Datei zu erhöhen, fügen Sie die Optionen -rx {resolution}und hinzu -ry {resolution}. Zum Beispiel:

pdftoppm input.pdf outputname -png -rx 300 -ry 300

24
Ich danke dir sehr. Viel bessere Qualität als mit imagemagick oder graphicsmagick!
dAnjou

7
pdftoppm ist viel schneller als convert
zuo

4
Das ist wirklich viel besser als imagemagick. Imagemagick hat in meinem Fall die Farben auf unerwartete Weise geändert!
NoBackingDown

13
das ist gut !, aber es ist ein bisschen einfacher zu schreiben, -r 300anstatt die x- und y-Auflösungen unabhängig voneinander anzugeben, wenn Sie sie auf den gleichen Wert einstellen möchten.
mlc

2
Ich hatte mit pdftoppm viel mehr Erfolg als mit imagemagick.
Michael Hays

22

IIRC GIMP kann PDFs verwenden, dh in Bilder konvertieren. Wenn Sie also die Bilder sofort bearbeiten möchten, ist GIMP Ihr Freund.


GIMP kann in der Tat PDFs öffnen, jede Seite als eine Ebene. Wenn Sie "Exportieren als" auswählen, wird anscheinend nur die aktuelle Ebene gespeichert. Sie können die Ebene jedoch nach dem Exportieren problemlos löschen und "Exportieren als" erneut ausführen.
Dan Dascalescu

12

Die aktuell akzeptierte Antwort erledigt den Job, führt jedoch zu einer Ausgabe, die größer ist und unter Qualitätsverlust leidet.

Die Methode in der hier angegebenen Antwort führt zu einer Ausgabe, die in der Größe mit der Eingabe vergleichbar ist und keinen Qualitätsverlust aufweist.

TLDR - Verwendung pdfimages:pdfimages -j input.pdf output

Zitiere die verknüpfte Antwort:

Es ist nicht klar, was Sie unter "Qualitätsverlust" verstehen. Das könnte viele verschiedene Dinge bedeuten. Könnten Sie ein paar Beispiele zur Veranschaulichung posten? Vielleicht schneiden Sie den gleichen Abschnitt aus den Versionen mit schlechter Qualität und guter Qualität (als PNG, um weitere Qualitätsverluste zu vermeiden).

Möglicherweise müssen Sie verwenden -density, um die Konvertierung mit einer höheren Auflösung durchzuführen:

convert -density 300 file.pdf page_%04d.jpg

(Sie können voranstellen -units PixelsPerInchoder -units PixelsPerCentimeterbei Bedarf. Meine Kopie ist standardmäßig ppi.)

Update: Wie Sie bereits erwähnt haben, ist gscan2pdf(wie Sie es verwenden) nur ein Wrapper für pdfimages(von Poppler ). pdfimages tut nicht das Gleiche convertwie bei einer PDF-Eingabe.

convert Nimmt die PDF-Datei, rendert sie mit einer bestimmten Auflösung und verwendet die resultierende Bitmap als Quellbild.

pdfimagesDurchsucht die PDF-Datei nach eingebetteten Bitmap-Bildern und exportiert sie in eine Datei. Text- oder Vektorzeichnungsbefehle in der PDF-Datei werden einfach ignoriert.

Wenn Sie also eine PDF-Datei haben, die nur eine Reihe von Bitmaps umschließt, pdfimageskönnen Sie sie viel besser extrahieren, da Sie die Rohdaten in ihrer ursprünglichen Größe erhalten. Wahrscheinlich möchten Sie diese -jOption auch verwenden pdfimages, da eine PDF-Datei unformatierte JPEG-Daten enthalten kann. Standardmäßig pdfimageswird alles in das PNM-Format konvertiert, und das Konvertieren von JPEG> PPM> JPEG ist ein verlustreicher Prozess.

Also versuche

pdfimages -j file.pdf page

Möglicherweise müssen Sie dem ein convertbis- .jpgZeichen hinzufügen (je nachdem, welches Bitmap-Format die PDF-Datei verwendet hat).

Ich habe diesen Befehl an einem PDF ausprobiert, das ich selbst aus einer Folge von JPEG-Bildern erstellt habe. Die extrahierten JPEGs waren Byte für Byte identisch mit den Quellbildern. Höhere Qualität kann man nicht erreichen.


8

Wenn Ihre PDFs gescannt werden, sind die Bilder bereits als Teil von PDF gespeichert. Sie müssen sie einfach extrahieren mit pdfimages:

pdfimages my-file.pdf prefix 

2
Dies ist die perfekte Lösung für gescannte PDFs, da Sie mit einem einzigen Befehl die ursprünglichen JPGs extrahieren können, ohne weitere Neukomprimierungen.
Jose Gómez

3

Um eine einzelne Seite von gm convert zu erhalten, fügen Sie [N] (wobei N die Seitennummer bei 0 beginnt) zum PDF-Namen hinzu, dh gm convert foo.pdf[11] out.png, Sie erhalten die 12. Seite aus dem PDF.

Zur pdftoppmVerwendung -f N -singlefile, wobei N die Seitenzahl ist, die bei 1 beginnt, dh pdftoppm -f 12 -singlefile foo.pdf outfür dasselbe Ergebnis. Es scheint immer ".png" zum Ausgabedateinamen hinzuzufügen, und es gibt keine Möglichkeit, dies zu stoppen.


2

Sie können convert verwenden und mit der -densityOption eine höhere Dichte angeben .

z.B. convert -d 300 foo.pdf bar.png


Kannst du mehr darüber erklären, was Dichte ist und was sie kann?
Donnerstag,

1
@AgentCool Gibt die horizontale und vertikale Bilddichte (in ppi) an.
Arjun

2

Wenn Sie nur eine bestimmte Seite eines PDF-Dokuments in ein PNG-Dokument konvertieren möchten, können Sie wie folgt eine Pipe pdftkzu convert( oben beschrieben ) erstellen:

pdftk document.pdf cat 12 output - | convert - document-page-12.png

1

In Master PDF Editor (Version 2.2) ist diese Option integriert. Öffnen Sie die PDF-Datei und gehen Sie zu Datei> Exportieren nach> Bilder. Es wird ein Dialogfeld angezeigt, in dem Sie verschiedene Optionen für die Ausgabe definieren können. Extrem nützlich. Hoffe diese Info hilft.


Ist das in der kostenlosen oder kostenpflichtigen Version? In meiner Version ist die Option ausgegraut? Bedeutet das, dass ich bezahlen muss? Gibt es eine kostenpflichtige Version?
Joshua Robison

0

Mit PDF Mod können Sie auch Bilder aller oder einzelner Seiten von PDF-Dateien exportieren.

  • Öffnen Sie die PDF-Datei in PDF Mod
  • Seite (n) auswählen -
  • Bearbeiten> Bilder exportieren
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.