ubuntuusers.de

Per Bash-Script PDF durchsuchen und Suchbegriff highlighten?

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

Das_Auge

Avatar von Das_Auge

Anmeldungsdatum:
17. April 2007

Beiträge: 957

Ich möchte gerne ein Skript erstellen, welches folgendes macht:

Es öffnet eine PDF-Datei, durchsucht sie nach einem bestimmten Stichwort, markiert alle vorkommenden Stichworte (z.B. mit hellgrauem Highlighting) und speichert dies als neue Datei ab, mit einem Dateinamen, der den Suchbegriff enthält.

Gibt es überhaupt die Tools, mit denen man aus der Bash heraus Text in einer PDF highlighten kann?

PS: Teil 2 meines Projektes habe ich bereits gelöst: mit

1
2
lpstat -p -d #Namen der installierten Drucker anzeigen
lp -d $druckername -n $anzahl $dateiname # gewünschte Datei mit dem gewünschen Drucker drucken

kann ich die Dokumente mit den hervorgehobenen Namen automatisch in der gewünschten Anzahl drucken.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11271

Wohnort: München

Schau dir mal dieses Tutorial für Python3 und PyMuPDF an: https://www.thepythoncode.com/article/redact-and-highlight-text-in-pdf-with-python

Das_Auge

(Themenstarter)
Avatar von Das_Auge

Anmeldungsdatum:
17. April 2007

Beiträge: 957

seahawk1986 schrieb:

Schau dir mal dieses Tutorial für Python3 und PyMuPDF an: https://www.thepythoncode.com/article/redact-and-highlight-text-in-pdf-with-python

Wow, genau was ich gebraucht habe! Danke! Ich kann zwar kein Python, aber der Code funktioniert.

Das_Auge

(Themenstarter)
Avatar von Das_Auge

Anmeldungsdatum:
17. April 2007

Beiträge: 957

Nachtrag: Eine seltsame Sache geschieht mit diesem Highlighting-Script: Die z.B. gelb hervorgehobenen Flächen verhalten sich manchmal seltsam: konvertiere ich das Dokument zu Graustufe wird die eine Fläche fast schwarz, die andere hellgrau. Es verhält sich sehr inkonsistent. So wie ich es jetzt eingestellt habe, scheint die Helligkeit gleichmäßig und sicht- und lesbar, aber ich trau mich nicht mehr, was daran zu verändern.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11271

Wohnort: München

Wie konvertierst du das Dokument in Graustufen und wie viele Helligkeitsstufen nutzt du dabei?

Das_Auge

(Themenstarter)
Avatar von Das_Auge

Anmeldungsdatum:
17. April 2007

Beiträge: 957

Ich konvertiere mit gs (ghostscript). Hier ein Beispiel: quelle.pdf

1
2
python debug.py  -i quelle.pdf -s "(Lorem|et)" -a Highlight -o markiert.pdf #das script debug.py ist jenes vom Tutorial, kleine Änderungen möglich
gs   -sDEVICE=pdfwrite   -dProcessColorModel=/DeviceGray   -dColorConversionStrategy=/Gray   -dPDFUseOldCMS=false   -o grau.pdf   -f markiert.pdf 

Ich hatte unzählige Varianten von ProcessColorModel, ConversionStrategy und -dPDFUseOldCMS durchprobiert, und die Schattierungen haben sich dadurch auch geändert, aber ein einheitliches Grau habe ich nicht erreicht. Die drei PDF-Dateien findet ihr im Anhang.

quelle.pdf (27.4 KiB)
Mitl Libreoffice erzeugt. Ein mit googledocs erzeugtes Dokument führt zum gleichen Ergebnis
Download quelle.pdf
markiert.pdf (61.3 KiB)
Hier sieht noch alles aus wie es soll.
Download markiert.pdf
grau.pdf (42.1 KiB)
Man beachte den Unterschied zwischen der Markierung von "Lorem" und "et"
Download grau.pdf
debug.py (11.0 KiB)
Verwendetes Python-Script, aus dem Tutorial
Download debug.py

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11271

Wohnort: München

Welchen PDF-Viewer nutzt du?

Ich habe da gerade mal in die markierten Flächen des Graustufen-Dokuments reingemessen und das ist überall die selbe Farbe - witzigerweise hängt die aber von Programm ab, das das PDF rendert - der PDF-Viewer im Firefox mach daraus #a3a3a3, Sumatra PDF und Gimp machen daraus #afafaf, der PDF-Viewer in Edge #9d9d9d usw.

Das_Auge

(Themenstarter)
Avatar von Das_Auge

Anmeldungsdatum:
17. April 2007

Beiträge: 957

seahawk1986 schrieb:

witzigerweise hängt die aber von Programm ab, das das PDF rendert - der PDF-Viewer im Firefox mach daraus #a3a3a3, Sumatra PDF und Gimp machen daraus #afafaf, der PDF-Viewer in Edge #9d9d9d usw.

Das sollte eigentlich nicht passieren. Das ist ja gerade der Sinn von PDF. Wie ist es möglich, dass eine PDF-Datei von unterschiedlichen Betrachtern so unterschiedlich angezeigt wird? Und dass dasselbe Gelb im selben Dokument und im selben PDF-Betrachter nach einer Grauumwandlung bei "Lorem" zu f1f1f1 wird, bei "et" hingegen zu a0a0a0?

Bilder
Antworten |