Mein Betriebssystem ist Ubuntu 12.04. Wie kann ich eine PDF-Datei von Graustufen in Schwarzweiß konvertieren? Die Graustufen-PDF-Datei stammt aus dem Scannen mit Graustufenoption, und die Schwarz-Weiß-PDF-Datei wird von OCR benötigt.
Aktualisieren:
Nach Marcos Antwort ist das BW-PDF nicht gut und die Originaldatei ist hier .
command-line
pdf
Tim
quelle
quelle
scantailor
scantailor
hat Tonnen von anderen nützlichen Funktionen, wenn es darum geht, Scans für OCR vorzubereiten, und das ist der einzige Grund, warum ich es vorgeschlagen habe (als Kommentar, nicht als Antwort)pdfimages
(Poppler), um gescannte Bilder aus seinem PDF-Container zu extrahieren. Möglicherweise ist es effizienter, sie überhaupt mit ImageMagick zu handhaben.Antworten:
1) Verwenden Sie Ghostscript , um die PDF-Datei mit dem psmono- Gerät in eine monochrome PostScript-Datei zu konvertieren :
2) Konvertieren Sie dann das monochrome PostScript zurück in PDF:
BEARBEITEN: Das
psmono
Gerät erstellt ein 1-Bit-Halbtonbild, das anscheinend nicht Ihren Wünschen entspricht. Ich konnte keine Möglichkeit finden, mithilfe von Ghostscript einen Schwellenwert anzugeben, daher habe ich auf imagemagick zurückgegriffen.convert
Verwendet intern Ghostscript, um das PDF zu konvertieren. Anschließend wird die Schwellenwertfilterung angewendet, um ein 1-Bit-Bild zu erstellen, und es wird erneut Ghostscript verwendet, um eine PDF-Datei zu erstellen. Daconvert
standardmäßig eine Auflösung von 75 DPI verwendet wird, die möglicherweise nicht mit Ihrer tatsächlichen Auflösung übereinstimmt, können Sie dasdensity
Argument angeben . Und experimentieren Sie mit derthreshold
Einstellung. Die optimalen Werte hängen stark von der Eingabedatei ab.quelle
Der beste Weg, den ich dort herausgefunden habe, ohne Qualitätsverlust, entfernt Schatten, Rauschen, Text von der nächsten Seite, die durchblutet usw.:
1) Konvertieren Sie zuerst PDF in einzelne Bilder
2) Zweitens entfernen Sie Schatten, Rauschen und Text von der nächsten Seite, die durchblutet (Credits für diesen Blog ).
Dies kann entweder als zusätzlicher Schritt oder anstelle des obigen Befehls hinzugefügt werden, um tatsächlich nur zwei Farben zu erhalten:
3) Dies, um aus jedem JPG-Bild eine PDF-Datei zu machen, ohne die Auflösung oder Qualität zu beeinträchtigen:
4) Dies, um die PDF-Seiten zu einer zu verketten:
5) Und zuletzt füge ich eine OCRed-Textebene hinzu, die die Qualität des Scans in den PDFs nicht ändert, damit sie durchsucht werden können:
quelle
Ich hatte auch einige gescannte Farb-PDFs und Graustufen-PDFs, die ich in bw konvertieren wollte. Ich habe versucht,
gs
mit dem hier aufgeführten Code zu arbeiten , und die Bildqualität ist gut, wenn der PDF-Text noch vorhanden ist. Dieser gs-Code konvertiert jedoch nur in Graustufen (wie in der Frage gestellt) und hat immer noch eine große Dateigröße.convert
liefert bei direkter Verwendung sehr schlechte Ergebnisse.Ich wollte bw pdfs mit guter Bildqualität und kleiner Dateigröße. Meine Lösung verwendet
gs
, um Graustufen-BMP-Dateien aus dem PDF zu extrahieren,convert
diese BMPs auf BW zu beschränken und sie als TIFF-Dateien zu speichern, und dann img2pdf , um die TIFF-Bilder zu komprimieren und sie alle zu einem PDF zusammenzuführen.Ich habe versucht, direkt aus dem PDF zu tiff, aber die Qualität ist nicht die gleiche, also speichere ich jede Seite in bmp. Für eine einseitige PDF-Datei
convert
macht es einen großartigen Job von bmp bis pdf. Beispiel:gs
Kann für mehrere Seiten mehrere PDF-Dateien zu einer zusammenführen,img2pdf
ergibt jedoch eine kleinere Dateigröße als gs. Die TIFF-Dateien müssen als Eingabe für img2pdf dekomprimiert werden. Beachten Sie bei einer großen Anzahl von Seiten, dass die Zwischen-BMP- und TIFF-Dateien in der Regel groß sind.pdftk
oderjoinpdf
wäre besser, wenn sie komprimierte pdf-Dateien aus zusammenführen könnenconvert
.Ich stelle mir vor, es gibt eine elegantere Lösung. Meine Methode liefert jedoch Ergebnisse mit sehr guter Bildqualität und viel kleinerer Dateigröße. Führen Sie OCR erneut aus, um Text wieder in das bw-PDF aufzunehmen.
Mein Shell-Skript verwendet gs, convert und img2pdf. Ändern Sie die am Anfang aufgeführten Parameter (Anzahl der Seiten, Scan-DPI, Schwellenwert% usw.) nach Bedarf und führen Sie sie aus
chmod +x ./pdf2bw.sh
. Hier ist das vollständige Skript (pdf2bw.sh):quelle
Wenn es sich um einen Scan handelt, besteht der einzig sinnvolle Weg darin, PDF-Bilder zu verwenden und die zugrunde liegenden Grafiken zu konvertieren. Ich habe dieses Skript verwendet, um es zu konvertieren:
quelle
Vielen Dank an OccamsRazor für sein Skript, das sowohl Farb- als auch Graustufen-PDFs hervorragend in eine kompakte und lesbare monochrome Version konvertiert. Dies ist wirklich ein Kommentar zu OccamsRazors Beitrag, aber ich habe nicht genug Punkte, um ihn zu kommentieren.
Das Skript schlägt fehl,
img2pdf -o ./$output_pdf_name --dpi $dpi_res $input_files
da--dpi
es für img2pdf kein akzeptiertes Argument mehr ist. Stattdessen wird die Auflösung aus der Eingabedatei abgerufen, sodass Sie sie einfach weglassen können.Hier ist meine Version des Skripts. Ich wollte das Skript nicht für jede Datei bearbeiten, daher gebe ich die Anzahl der Seiten und den Namen der Eingabedatei ein, wenn ich es ausführe. Ich habe den Ausgabenamen Satz und die Auflösung auf 200 dpi, die für meinen Workflow funktioniert, aber Sie können es ändern möchten, oder machen sie zu und und geben sie in.
00input_name
$3
$4
Verwenden Sie zum Ausführen z .
./pdf2bw.sh <number_of_pages> <input_name>
./pdf2bw.sh 55 input.pdf
quelle
"./$input_pdf_name"
und sogarseq 1 "$num_pages"
. Vielleicht möchten Sie auch ändern`…`
zu$(…)
- sehen Sie dies , dies und das .