Erhalten Sie druckfertigen schwarzen Text auf weißem Hintergrund in gescannten PDF-Dateien (entfernen Sie Graustufen- oder Farbhintergrund).

Erhalten Sie druckfertigen schwarzen Text auf weißem Hintergrund in gescannten PDF-Dateien (entfernen Sie Graustufen- oder Farbhintergrund).

Wie kann ich Fotos von Papierdokumenten in ein gescanntes Dokument umwandeln?ist verwandt, aber nicht dasselbe, da ich von PDF-Dateien spreche. Die Verarbeitung von Bildern scheint in den Antworten unter der verlinkten Frage kompliziert zu sein, insbesondere weil es sich umjedes Bild einzeln verarbeiten: gegebenmein PDF hat Hunderte von Seiten, die Lösung, die ich erwarte, ist nicht die Verarbeitung/Bearbeitung von Bildern, sondern einfach dieScannen digitaler Fotos und Dokumente wie echte. Ich meine so etwas wie einen „virtuellen Scanner“, bei dem die Eingabe ein fotobasiertes PDF oder eine Fotosammlung und die Ausgabe ein „normales“ gescanntes Dokument wäre. (Auch dieScantailorWerkzeug empfohlen - auchHier- scheint derzeit keine Linux-Version zu geben.)


Das istnichtüber OCR undnichtInformationen zur Konvertierung von Bildern in Text.

Um zu verdeutlichen, was ich meine, werde ich einige Beispiele veröffentlichen.

Es gibtPDF-Dateien basierend auf Text, kein Bild, und es sind Textdateien (sagen wir docx oder odt), die ins PDF-Format exportiert wurden. Sie sehen aus, als wären sie druckbereit:

Bildbeschreibung hier eingeben

Das Obige istnichtwas ich hier bespreche.

Was mich interessiert, sind die PDFs in den Bildern unten, nämlich der Unterschied zwischen gescannten Textseiten, die zu sehr wie Bilder aussehen, und gescannten Textseiten, die wie digitalisierter Text aussehen.

Die ersten bestehen aus Bildern, die aussehen wieaufgenommene BilderAnzahl Buchseiten:

Bildbeschreibung hier eingeben

oder

Bildbeschreibung hier eingeben

Solche Kopienlässt sich kaum auf Papier nachdrucken, da der Hintergrund mitgedruckt wird.

Die zweiten sind das, was man erwarten würde vongescanntText und kann ausgedruckt werden:

Bildbeschreibung hier eingeben

oder

Bildbeschreibung hier eingeben

Das bildähnliche PDF ist möglicherweise bereits OCR-verarbeitet und sein Text ist durchsuchbar, sieht aber dennoch wie eine Sammlung (Seiten-)Fotos aus: OCR ist hier nicht das Problem.

Was ich möchte, ist der klare Schwarz-auf-Weiß-Look des „gescannten“ PDF und die Entfernung aller „echten“ Details (insbesondere Schatten), die auf einem Foto normal sind, auf einer gedruckten Seite jedoch nicht vorhanden sein sollten.


Wie @vanadium in einem Kommentar bemerkte, bin ichauf der Suche nach einer Softwarelösung, die Bilder eines Dokuments automatisch bereinigt, ähnlich wie Google Scan auf einem Smartphone.

Wie @user535733 in einem Kommentar sagte, scheint das Problem hier zumindest teilweise darin zu liegen, dieGraustufen(gescannter/Bild-)Textzu schwarz-weiß.

Antwort1

scantailorwird nicht mehr gepflegt, aber Sie können es immer noch aus dem Quellcode erstellen und verwenden.

Allerdingsursprüngliches Repositoryneeds qt4, das in neueren Ubuntu-Versionen nicht einfach zu installieren ist. Sie können beispielsweisediese Gabeldas hat sich angepasst an qt5.

Voraussetzungen:

sudo apt install libjpeg-dev zlib1g-dev libpng-dev libtiff-dev libboost-dev libxrender-dev libboost-all-dev

Installation:

git clone https://github.com/victl/scantailor
cd scantailor
cmake .
make
sudo make install

Haftungsausschluss: Ich kenne den Betreuer dieses Forks nicht und kann nichts zur Sicherheit seiner Version sagen.


Andere Optionwäre zu verwendenScantailor erweitert. Sie können es installieren über snap...

sudo snap install scantailor-advanced

... oderFlachpaket.

... oder überppa.

sudo add-apt-repository ppa:alex-p/scantailor
sudo apt update
sudo apt install scantailor # or scantailor-advanced

Schnell Test:

Bildbeschreibung hier eingeben

Antwort2

Als direkte Lösung für PDF (keine manuelle Bildextraktion):

Verwenden Sie ocrmypdfzur Wiederherstellung von OCR (wie am Ende deskomplementärTeil dieser Antwort) Mir ist aufgefallen, dass ocrmypdf -heine Option angezeigt wird, die genau der Frage entspricht:

--remove-background Attempt to remove background from gray or color pages, setting it to white

Das ursprüngliche PDF verfügte bereits über OCR, was zu einem Fehler führt, wenn nicht eine der folgenden Optionen verwendet wird:

-f, --force-ocr Rasterize any text or vector objects on each page, apply OCR, and save the rastered output (this rewrites the PDF)

oder

-s, --skip-text Skip OCR on any pages that already contain text, but include the page in final output; useful for PDFs that contain a mix of images, text pages, and/or previously OCRed pages

Als ich jedes dieser Verfahren einzeln auf eine meiner großen Dateien mit Hunderten von Seiten anwandte, bei denen bereits OCR aktiviert war, stürzte der Vorgang ab.

Die beste Lösungscheint mir zunächstAls PDF druckendie ursprüngliche Datei (die OCR entfernt), und dann

ocrmypdf input.pdf output.pdf -l <LANG> --remove-background -v

Für Englisch -lwird die Option nicht benötigt. -vdient für ausführliche Details im Terminal.

Das resultierende PDF ist größer als die Eingabe (aufgrund der --remove-backgroundOption): Reduzieren Sie die Größe wie unten beschrieben.


Über Scan Tailor, als Ergänzung zumHauptantwort

Schon sein Icon verdeutlicht, dass es genau für das gedacht ist, was hier gefragt ist:

![Bildbeschreibung hier eingeben

So verwenden Sie Scan Tailor mit PDFs:

  1. Extrahieren Sie alle PDF-Seiten als Bilddateien- weil dieses Tool PDFs nicht direkt verarbeitet und Bilder benötigt. Master PDF Editor kann das, aber auf meinem Rechner stürzt es ab, nachdem es etwa 80 Bilder extrahiert hat. Es kann aber immer noch verwendet werden, indem man einen neuen Stapel/Bereich von Seiten einstellt, die extrahiert werden sollen. (PDF Mod stürzte vor der Verarbeitung ab). Was ich nach ein paar Versuchen bevorzuge, ist eine zuverlässige, wenn auch langsamere CLI-Methode mit einem Befehl wie: pdftoppm MY_PDF.pdf NAME -tiff- wie gesagtHiertiff. — Anstelle von (ergibt Dateien) können auch andere Variablen verwendet werden tif, z. B. pngoder jpeg. Hier finden Sie eine Reihe von Dolphin-Servicemenüaktionen für die verschiedenen Extraktionsoptionen:
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Actions=pdf;tif;jpeg;
X-KDE-Submenu=PDF action: EXTRACT ALL pages
Icon=application-pdf

[Desktop Action pdf]
Name=Extract pages as pdf
Icon=application-pdf
Exec=bash -c 'pdf=$(pdftk "%u" burst); kdialog --title "Extract pages" --msgbox "Extracted! $pdf";';

[Desktop Action tif]
Name=Extract pages as tif
Icon=application-pdf
Exec=bash -c 'f="%u"; pdf=$(pdftoppm "$f" "${f%%.*}" -tiff); kdialog --title "Extract pages" --msgbox "Extracted! $pdf";';


[Desktop Action jpeg]
Name=Extract pages as jpeg
Icon=application-pdf
Exec=bash -c 'f="%u"; pdf=$(pdftoppm "$f" "${f%%.*}" -jpeg); kdialog --title "Extract pages" --msgbox "Extracted! $pdf";';
  1. Laden und verarbeiten Sie die resultierenden Bilder in Scan Tailor. Legen Sie die resultierenden Bilddateien in einen separaten Ordner und fügen Sie diesen Ordner unter Neues Projekt>Eingabeverzeichnis in Scan Tailor hinzu. (Ich habe dieses Programm installiertvon PPA, wie in einem Kommentar von @N0rbert unter der Hauptantwort gesagt.) Einige Seiten, die echte Bilder und keinen Text enthalten, sehen möglicherweise besser aus, wennfür jeden von ihnenist "Graustufen und Farbe" anstelle der Standardeinstellung "Schwarzweiß" (hier für Text gedacht) ausgewählt. Führen Sie die aufgelisteten Prozeduren nacheinander aus. Überprüfen Sie die Seiten, bevor Sie die letzte ausführen ("Ausgabe").

Bildbeschreibung hier eingeben

  1. Erstellen Sie aus den resultierenden Bildern ein neues PDF. (Überprüfen Sie zunächst, ob die resultierenden tifDateien Ihren Wünschen entsprechen.) Es gibt viele Möglichkeiten, ein neues PDF zu erstellen. Auch hier stürzten die GUI-Tools, die ich ausprobiert habe, sehr schnell ab oder lieferten seltsame Ergebnisse. Daher ziehe ich es vor, die resultierenden tifDateien in einem separaten Ordner abzulegen und dort den Befehl auszuführen img2pdf *.tif -o out.pdf- wie gesagtHier. (Dies kann eine korrekte Benennung/Nummerierung der Dateien erfordern. Mehr dazuHier.)

Das resultierende „maßgeschneiderte“ PDF wird kleiner sein als das ursprüngliche, aber der Prozentsatz der Größenreduzierung variiert in Abhängigkeit von Faktoren, die ich ignoriere (aber ich stelle mir vor, dass die im ursprünglichen PDF enthaltenen Seiten – in Schritt 1 – in dem Format extrahiert werden sollten, das sie bereits haben; ich denke, jpegund tifsollte anstelle von verwendet werden png; verwenden Sie es pdfimages -list your.pdfim Terminal, um Details zu Format, dpi und anderen Details anzuzeigen, bevor Sie die Verarbeitung mit den obigen und folgenden Befehlen durchführen).

Die endgültige PDF-Datei kann mit einem Befehl wie dem folgenden weiter verkleinert werden:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Näheres dazu,Hier.

Nachfolgend sehen Sie eine Reihe von Dolphin-Servicemenüaktionen basierend auf dem obigen Link:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Actions=shrink;shrink0;shrink1;shrink2;
X-KDE-Submenu=PDF action: SHRINK
Icon=application-pdf

[Desktop Action shrink]
Name=Shrink pdf to "printer" size, 300dpi
Icon=application-pdf
Exec=bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/printer    -sOutputFile="${f%.pdf}_printer.pdf" "$f"); kdialog --title "Shrink" --msgbox "Done! $pdf";';

[Desktop Action shrink0]
Name=Shrink pdf to "prepress" size, 300dpi
Icon=application-pdf
Exec=bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress    -sOutputFile="${f%.pdf}_prepress.pdf" "$f"); kdialog --title "Shrink" --msgbox "Done! $pdf";';


[Desktop Action shrink1]
Name=Shrink pdf to "ebook size, 150dpi
Icon=application-pdf
Exec=bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook    -sOutputFile="${f%.pdf}_small.pdf" "$f"); kdialog --title "Shrink" --msgbox "Done! $pdf";';

[Desktop Action shrink2]
Name=Shrink pdf to "screen" size, 72dpi
Icon=application-pdf
Exec=bash -c 'f="%u"; pdf=$(gs -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/screen    -sOutputFile="${f%.pdf}_smaller.pdf" "$f"); kdialog --title "Shrink" --msgbox "Done! $pdf";';

Ich bekam Hilfe vonDasantworte auch.


OCR (Textsuch- und Kopierfunktion) geht verlorenwährend des obigen Verfahrens, falls im ursprünglichen PDF vorhanden. Um OCR zu erhalten, verwenden Sie ocrmypdf input.pdf output.pdf für Englisch, wie gesagtHier. Für andere Sprachen suchen Sie mit danach apt-cache search tesseract-ocrund installieren Sie sie. Fügen Sie -l <LANG>am Ende des Befehls für bestimmte Sprachen hinzu; mehrHier; siehe auch ihre NamenHier.

Hier ist eine Dolphin-Servicemenüaktion für rumänisches OCR mit zwei Optionen (eine mit Fortschritt im Terminal und festem Ausgabenamen, die andere mit Hintergrundprozess, aber mit Ausgabename basierend auf der Eingabe; ich hätte gerne sowohl einen Prozess im Terminal als auch einen Ausgabenamen basierend auf der Eingabe, weiß aber nicht wie; wenn das jemand kann, posten Sie es bitte hier!). Für Englisch ersetzen Sie „Rumänisch“ und entfernen Sie die -l ronVariable:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/pdf;
Actions=ocr1;ocr2;
X-KDE-Submenu=PDF action: apply OCR
Icon=application-pdf

[Desktop Action ocr1]
Name=Apply OCR Romanian (see progress in terminal; output name: ocr_ro.pdf!)
Icon=application-pdf
Exec=konsole --noclose -e ocrmypdf "%u" ocr_ro.pdf -l ron

[Desktop Action ocr2]
Name=Apply OCR Romanian (backgroud process: NO terminal! input>output name)
Icon=application-pdf
Exec=bash -c 'f="%u"; ocrmypdf "$f" "${f%.pdf}_ocr.pdf" -l ron;'

(Beim Extrahieren und Verarbeiten von Bildern sowie beim Drucken als PDF wird OCR entfernt, die Größe wird jedoch mit Ghostscript wie oben beschrieben reduziert.nicht, daher kann die „Verkleinerung“ vor oder nach der OCR angewendet werden.)

Antwort3

Ich habe ziemlich gute Ergebnisse mit imageMagick und dem folgenden Skript erzielthttp://www.fmwconcepts.com/imagemagick/shadowhighlight/index.php

Hier ist das Ergebnis unter Verwendung der folgenden Parameter:

./shadowhighlight -ma 100 -sa 100 -ha 00 -hw 0 -bc 20 inputFile.png OutputFile.png

Bildbeschreibung hier eingeben

Antwort4

Installieren Sie einfach Gimp (verwenden Sie vorzugsweise Appimage). Folgende Optionen sind verfügbar:

  1. Wählen Sie Farbe>Schwellenwert und schon ist Ihr Bild schwarzweiß. Dazu müssen Sie dies für jede Seite tun.

Zweite Option 2) Wählen Sie Bild>Modus>Indiziert>Schwarzweiß-1-Bit-Palette verwenden

Unabhängig von der Anzahl Ihrer PDF-Seiten werden alle in 1-Bit-Schwarzweiß konvertiert.

Editiert am 02/11/2021: Gemäß Anfrage voncipiricus

Hier sind die Schritte, die ich befolge:

  1. Scannen Sie Seiten mit „Simple Scan“ oder Xsane. (Ich habe festgestellt, dass Simple Scan in Farbe besser funktioniert) ODER verwenden Sie bereits vorhandene gescannte PDF-Dateien.
  2. Datei > öffnen ODER PDF-Datei per Drag & Drop in GIMP ziehen. Hier müssen Sie Breite x Höhe des gewünschten Bildes angeben. (Überprüfen Sie, welche dpi Sie benötigen, 150 dpi oder 300 dpi, und geben Sie den entsprechenden Breitenwert an.)
  3. Jetzt wird die PDF-Datei mit mehr als 1 Seite als Ebene geöffnet.
  4. Gehen Sie zu Bild>Modus>Indiziert>Schwarzweiß-1-Bit-Palette verwenden
  5. Nun exportiere ich das PDF über Datei > „Exportieren als“
  6. Überprüfen Sie, ob jede Seite des exportierten PDF den Anforderungen entspricht. Wenn nicht, verarbeite ich jede fehlerhafte Seite einzeln mit der folgenden Methode: a) Wählen Sie Bild > Modus > Graustufen. b) (Wenn die Seite zu viel Grau/Rauschen enthält) Wählen Sie Farbe > Belichtung und passen Sie sie nach Bedarf an. c) Wählen Sie Farbe > Schwellenwert und fertig. Ihr Bild wird schwarzweiß. Dazu müssen Sie dies für jede fehlerhafte Seite tun, um die erforderliche Qualität zu erreichen. d) Jetzt füge ich diese bearbeitete Seite in diese Ebene der Ebenen der Original-PDF-Datei ein und lösche die Ebene mit den fehlerhaften Seiten. Und exportiere das PDF erneut. Hoffe, das wird helfen.

verwandte Informationen