Frage Wie konvertiert man PDF zu Bild?


Ich habe die Anforderung, PDF-Seiten in Bilder zu konvertieren. Es gibt ein Hintergrundbild mit etwas geschriebenem Text, also wenn ich dieses als Bild nur das Hintergrundbild speicherte, wurde gespeichert.

Gibt es Software für dasselbe, damit die komplette Seite in ein Bild umgewandelt werden kann?


247
2018-06-23 10:16


Ursprung


Anscheinend ist es auch mit inkscape möglich: stackoverflow.com/a/15484727/32453 - rogerdpack


Antworten:


  1. Installieren Bildmagie.

  2. Verwenden eines Terminals, in dem sich die 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 (virtuell) jedes andere Bildformat kann gewählt werden.

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

  • -quality xxx stellt die Komprimierung auf ein xxx für PNG-, JPG- und MIFF-Dateiformate (100 bedeutet keine Komprimierung).

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

  • Alle anderen Optionen (wie Beschneiden, Graustufen usw.) können auf der Website von Bildmagie.


235
2018-06-23 10:25



Die Antwort funktioniert zwar, aber die Auflösung ist sehr schlecht. Daher derzeit keine Antwort, die nützlich ist. Wenn convert einige Parameter hat, die angegeben werden können, könnte sich das ändern. - Elijah Lynn
Diese Antwort ist viel höhere Qualität askubuntu.com/a/50180/11929 - Elijah Lynn
Sie können die Dichte ändern, indem Sie das hinzufügen -density 300 Parameter - OHLÁLÁ
Das Bild in Ihrer Antwort ist gebrochen. Vielleicht solltest du es aktualisieren. - Petr R.
Kann also jemand bestätigen, dass die Spezifizierung der Dichte es so "gut" macht, wie die anderen Antworten hier, oder nicht? Auch als Hinweis für Follower ruft ImageMagick zu "ghostscript" auf, 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/Fic1 und wenn du kommst convert: no images defined output.png es bedeutet, dass du Ghostscript nicht installiert hast ... - rogerdpack


Sie können verwenden pdftoppm um ein PDF in ein PNG zu konvertieren:

pdftoppm input.pdf outputname -png

Dadurch wird jede Seite im PDF-Format im Format ausgegeben outputname-01.pngmit 01 ist der Index der Seite.

Konvertieren einer einzelnen Seite der PDF

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

Veränderung {page} zur Seitenzahl. Es ist bei 1 indexiert -f 1 wäre die erste Seite.

Angabe der Auflösung des konvertierten Bildes

Die Standardauflösung für diesen Befehl beträgt 150 DPI. Wenn Sie die Datei vergrößern, erhalten Sie eine größere Dateigröße und mehr Details.

Fügen Sie die Optionen hinzu, um die Auflösung der konvertierten PDF-Datei zu erhöhen -rx {resolution} und -ry {resolution}. Beispielsweise:

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

273
2018-06-23 11:07



Ich danke dir sehr. Viel bessere Qualität als mit imagemagick oder graphicsmagick! - dAnjou
pdftoppm ist viel schneller als konvertieren - zuo
Kann nicht glauben, wie einfach es war! Und das Paket ist bereits standardmäßig installiert! Liebte es. VIELEN DANK! - Rosamunda
Das ist wirklich viel besser als imagemagick. Imagemagick hat in meinem Fall die Farben auf unerwartete Weise verändert! - NoBackingDown
das ist gut !, aber es ist ein bisschen einfacher zu schreiben -r 300 anstatt die x- und y-Auflösungen unabhängig voneinander anzugeben, wenn Sie sie auf denselben Wert setzen möchten. - mlc


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


17
2018-06-23 10:29





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

Die Methode in der Antwort gegeben Hier ergibt eine Ausgabe, die in der Größe mit der Eingabe vergleichbar ist und nicht unter Qualitätsverlust leidet.

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

Zitieren der verknüpften Antwort:

Es ist nicht klar, was Sie unter "Qualitätsverlust" verstehen. Das könnte viel bedeuten   von verschiedenen Dingen. Könnten Sie einige Beispiele zur Veranschaulichung veröffentlichen?   Vielleicht schneiden Sie den gleichen Abschnitt aus der schlechten Qualität und der guten Qualität heraus   Versionen (als PNG, um weiteren Qualitätsverlust zu vermeiden).

Vielleicht müssen Sie verwenden -density um die Umwandlung zu einem höheren zu machen   dpi:

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

(Sie können vorangehen -units PixelsPerInch oder -units PixelsPerCentimeter Falls benötigt. Meine Kopie ist standardmäßig ppi.)

Aktualisieren:  Wie du gesagt hast, gscan2pdf (Die Art, wie Sie es verwenden) ist nur ein Wrapper für pdfimages (von Poppler). pdfimages   macht nicht das Gleiche convert tut wenn ein PDF als gegeben   Eingang.

convert nimmt das PDF, rendert es in einer Auflösung, und verwendet das   resultierende Bitmap als Quellbild.

pdfimages Durchsucht die PDF-Datei nach eingebetteten Bitmap-Bildern und   exportiert jedes in eine Datei. Es ignoriert einfach jeden Text oder Vektor   Zeichnungsbefehle in der PDF.

Als Ergebnis, wenn Sie eine PDF haben, die nur ein Wrapper um ein ist   Reihe von Bitmaps, pdfimages wird viel besser extrahieren   Sie, weil Sie die Rohdaten in Originalgröße erhalten. Sie   wahrscheinlich auch die nutzen wollen -j Option zu pdfimages, weil ein   PDF kann Roh-JPEG-Daten enthalten. Standardmäßig, pdfimages konvertiert   Alles im PNM-Format und das Konvertieren von JPEG> PPM> JPEG ist verlustreich   verarbeiten.

Also versuche

pdfimages -j file.pdf page

Sie müssen oder müssen möglicherweise nicht mit einem folgen convert zu .jpg Schritt   (abhängig davon, welches Bitmap-Format das PDF verwendet).

Ich habe diesen Befehl auf einer PDF-Datei versucht, die ich selbst aus einer Sequenz erstellt hatte   von JPEG-Bildern. Die extrahierten JPEGs waren Byte für Byte identisch mit   die Quellbilder. Sie können keine höhere Qualität als das bekommen.


9
2018-03-12 13:14





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

pdfimages my-file.pdf prefix 

6
2017-09-18 10:14



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


Um eine einzelne Seite von gm convert zu erhalten, fügen Sie [N] (mit N die Seitenzahl beginnend bei 0) zum PDF-Namen hinzu, d gm convert foo.pdf[11] out.png um die 12. Seite aus dem PDF zu bekommen.

Zum pdftoppm benutzen -f N -singlefile, wobei N die Seitennummer ist, die bei 1 beginnt, dh pdftoppm -f 12 -singlefile foo.pdf out für das gleiche Ergebnis. Es scheint immer ".png" zum Ausgabedateinamen hinzuzufügen und es gibt keine Möglichkeit, dies zu stoppen.


3
2018-04-02 21:44





Sie können konvertieren und eine höhere Dichte mit angeben -density Möglichkeit.

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


2
2017-07-24 02:23



Kannst du mehr darüber erklären, was Dichte ist und was es tun kann? - Ten-Coin
@AgentCool Gibt die horizontale und vertikale Bilddichte (in ppi) an. - Arjun


Wenn Sie nur eine bestimmte Seite einer PDF in eine PNG konvertieren möchten, können Sie eine Pipe erstellen pdftk zu convert (oben beschrieben) so was:

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

1
2017-11-06 05:11