422 Stimmen

PDF in Bilder mit hoher Auflösung konvertieren

Ich versuche, das Kommandozeilenprogramm zu verwenden convert um ein PDF in ein Bild (JPEG oder PNG) umzuwandeln. Hier ist eine der PDFs die ich zu konvertieren versuche.

Ich möchte, dass das Programm den überschüssigen weißen Raum abschneidet und ein Bild mit ausreichender Qualität liefert, damit die hochgestellten Buchstaben problemlos gelesen werden können.

Dies ist meine aktuelle bester Versuch . Wie Sie sehen können, funktioniert das Beschneiden gut, ich muss nur die Auflösung ein wenig schärfen. Dies ist der Befehl, den ich verwende:

convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg

Ich habe versucht, die folgenden Entscheidungen bewusst zu treffen:

  • Vergrößern (hat keinen Einfluss auf die Auflösung)
  • die Qualität so hoch wie möglich zu halten
  • verwenden Sie die -sharpen (Ich habe eine Reihe von Werten ausprobiert)

Für Vorschläge, wie die Auflösung des Bildes im endgültigen PNG/JPEG-Format erhöht werden kann, wäre ich sehr dankbar!

472voto

JBWhitmore Punkte 10776

Es scheint, dass Folgendes funktioniert:

convert           \
   -verbose       \
   -density 150   \
   -trim          \
    test.pdf      \
   -quality 100   \
   -flatten       \
   -sharpen 0x1.0 \
    24-18.jpg

Sie führt zu das linke Bild . Vergleichen Sie dies mit dem Ergebnis meines ursprünglichen Befehls ( das Bild rechts ):

  

(Zum wirklich um die Unterschiede zwischen den beiden zu sehen und zu verstehen, klicken Sie mit der rechten Maustaste auf die beiden und wählen Sie "Bild in neuem Tab öffnen..." .)

Denken Sie auch an die folgenden Fakten:

  • Das schlechtere, unscharfe Bild auf der rechten Seite hat eine Dateigröße von 1.941.702 Bytes (1,85 MByte). Die Auflösung beträgt 3060x3960 Pixel bei einem 16-Bit-RGB-Farbraum.
  • Das bessere, scharfe Bild auf der linken Seite hat eine Dateigröße von 337.879 Bytes (330 kByte). Die Auflösung beträgt 758x996 Pixel bei einem 8-Bit-Grau-Farbraum.

Es ist also nicht nötig, die Größe zu ändern; fügen Sie die -density Flagge. Der Dichtewert 150 ist seltsam - das Ausprobieren einer Reihe von Werten führt zu einem schlechter aussehenden Bild in beiden Richtungen!

205voto

majinnaibu Punkte 2575

Mir persönlich gefällt das.

convert -density 300 -trim test.pdf -quality 100 test.jpg

Die Datei ist etwas mehr als doppelt so groß, aber ich finde, sie sieht besser aus.

-density 300 legt die dpi fest, mit denen das PDF gerendert wird.

-trim entfernt alle Randpixel, die die gleiche Farbe wie die Eckpixel haben.

-quality 100 setzt die JPEG-Komprimierungsqualität auf die höchste Qualität.

Dinge wie -sharpen funktionieren nicht gut mit Text, weil sie Dinge rückgängig machen, die Ihr Schriftrendering-System getan hat, um ihn besser lesbar zu machen.

Wenn Sie das Bild tatsächlich vergrößern wollen, verwenden Sie hier "Größe ändern" und möglicherweise einen größeren dpi-Wert, etwa wie targetDPI * scalingFactor Dadurch wird die PDF-Datei in der von Ihnen gewünschten Auflösung/Größe dargestellt.

Die Beschreibungen der Parameter auf imagemagick.org lauten aquí

42voto

Gabriel Staples Punkte 20228

Ich habe wirklich keinen guten Erfolg gehabt mit convert (Update Mai 2020: eigentlich funktioniert es bei mir so gut wie nie), aber ich hatte AUSGEZEICHNETEN Erfolg mit pdftoppm . Hier sind einige Beispiele für die Erstellung hochwertiger Bilder aus einem PDF-Dokument:

  1. [Erzeugt ~25 MB große Dateien pro pg] Ausgabe unkomprimiert .tif Dateiformat unter 300 DPI in einen Ordner namens "images", wobei die Dateien folgende Namen haben pg-1.tif , pg-2.tif , pg-3.tif , usw:

     mkdir -p images && pdftoppm -tiff -r 300 mypdf.pdf images/pg
  2. [Erzeugt ~1MB große Dateien pro pg] Ausgabe in .jpg Format bei 300 DPI :

     mkdir -p images && pdftoppm -jpeg -r 300 mypdf.pdf images/pg
  3. [Erzeugt ~2MB große Dateien pro pg] Ausgabe in .jpg Format in höchster Qualität (geringste Kompression) und noch bei 300 DPI :

     mkdir -p images && pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg

Weitere Erläuterungen, Optionen und Beispiele finden Sie in meiner vollständigen Antwort hier:

https://askubuntu.com/questions/150100/extracting-embedded-images-from-a-pdf/1187844#1187844 .

Verwandt:

  1. [Wie man eine PDF-Datei in eine durchsuchbare PDF-Datei umwandelt w/ pdf2searchablepdf ] https://askubuntu.com/questions/473843/how-to-turn-a-pdf-into-a-text-searchable-pdf/1187881#1187881
  2. Vernetzt:
    1. Wie konvertiert man ein PDF in JPG mit der Kommandozeile unter Linux?
    2. https://unix.stackexchange.com/questions/11835/pdf-to-jpg-without-quality-loss-gscan2pdf/585574#585574

32voto

Norman Ramsey Punkte 193087

Ich benutze pdftoppm auf der Befehlszeile, um das Ausgangsbild zu erhalten, in der Regel mit einer Auflösung von 300dpi, also pdftoppm -r 300 verwenden, dann convert um das Zuschneiden und die PNG-Konvertierung durchzuführen.

24voto

Valerio Punkte 314

Normalerweise extrahiere ich das eingebettete Bild mit "pdfimages" in der nativen Auflösung und konvertiere es dann mit ImageMagick in das gewünschte 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 müssen Sie -j verwenden:

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

Mit dem aktuellen "poppler-util" (0.50+, 2016) können Sie -all verwenden, das verlustbehaftet als jpg und verlustfrei als png speichert, also eine einfache:

$ pdfimages -all fileName.pdf fileName

extrahiert immer die bestmögliche Qualität der Inhalte aus PDF.

Auf der kleinen Win-Plattform mussten Sie eine aktuelle (0.68, 2018) "poppler-util"-Binärdatei von herunterladen: http://blog.alivate.com.au/poppler-Windows/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X