Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

GS-PDFs in SW-PDFs konvertieren

1 view
Skip to first unread message

Markus Gail

unread,
Apr 19, 2023, 8:02:51 AM4/19/23
to
Hallo!

Ich habe größere Mengen an eingelesenen Akten und andere Unterlagen, die als
Graustufen-PDFs in 600 dpi vorliegen.

Es ist zwar meist DIN A4, aber die Seitengröße variiert mitunter, selbst
innerhalb des PDFs. Es kann vorkommen, daß innerhalb einer Akte eine Seite
in einem Überformat jenseits von DIN A0 auftaucht oder auch einige Seiten in
ca. DIN A6 auftauchen. Diese Größe sollte möglichst erhalten bleiben, es
wäre jedoch zu verschmerzen, wenn alles auf A4 aufgezogen oder verkleinert
würde.

Diese Dateien verbrauchen eine beträchtliche Menge Speicherplatz, und die
Durchsicht auf dem iPad ist nervig, weil es eine kleine, jedoch spürbare
Verzögerung beim Blättern und der Darstellung gibt. Außerdem ist das
Schrifbild nicht so knackig scharf wie die direkt als SW eingelesenen
Unterlagen.

Ich würde die Unterlagen gerne in SW-PDFs in 600 dpi konvertieren.

Unten mein bisheriges Gehacktes. Das Resultat ist leider grauenvoll und
unbrauchbar.

Es sieht aus wie eine 30-dpi-Bitmap, die nicht die ganze Seite einnimmt,
sondern die Eingabegröße links unten auf DIN A4 montiert, außerdem werden
die temporären Dateien riesig, ca. ein GB pro Seite, die
Verarbeitungsgeschwindigkeit ist zum Dahinwelken.

Abgesehen davon kann ich keine SW-Umwandlung im Raster- oder Streuverfahren
gebrauchen, stattdessen sollte ab einem Grenzwert von z. B. 50 % sollte ein
Bildpunkt als Schwarz umgesetzt werden.

Wie könnte man das unten angeführte Shell-Script umstricken?

Wenn jemandem eine andere Lösung einfällt (ich hätte noch Adobe Acrobat),
wäre ich auch dafür offen.

Vielen Dank für alle Hinweise!

Gruß
M.

P. S.: Antwortumleitung gesetzt, bitte ggf. ändern.


#!/bin/bash
#cd ~
#cd ./pdfbwconversion

#mkdir ./_tmp/
#cd ./\_tmp/

num_pages=$1
input_pdf_name=$2
output_pdf_name="$2-output.pdf"
bw_threshold=40%
dpi_res=75
#-------------------------------------------------------------------------
gs -sDEVICE=bmpgray -dNOPAUSE -dBATCH -q -r$dpi_res -sOutputFile=./%d.bmp
./$input_pdf_name
#-------------------------------------------------------------------------
for file_num in `seq 1 $num_pages`
do
convert ./$file_num.bmp -threshold $bw_threshold ./$file_num.tif
echo "$file_num.tif erzeugt"
gs -sDEVICE=pdfwrite -dSAFER -o ./$file_num.pdf ./$file_num.tif
echo "$file_num.pdf erzeugt"
done
#-------------------------------------------------------------------------

for file_num in `seq 1 $num_pages`
do
rm ./$file_num.bmp
done

input_files=""

for file_num in `seq 1 $num_pages`
do
input_files+="$file_num.tif,"
done

# img2pdf -o ./$output_pdf_name $input_files
echo "TIFF-Dateien in PDF zusammenführen ..."

convert -page A4 -colors 2 -density "$dpi_res" {$input_files} -colors 2
-verbose -print "Vorgang abgeschlossen \nFertige PDF-Datei schreiben ... \n"
"$output_pdf_name"

#-------------------------------------------------------------------------
# clean up bmp and tif files used in conversion

for file_num in `seq 1 $num_pages`
do
rm ./$file_num.tif
done

Andreas Eder

unread,
Apr 19, 2023, 12:25:04 PM4/19/23
to
On Mi 19 Apr 2023 at 12:02, Markus Gail <ga...@gmx.de> wrote:

> Diese Dateien verbrauchen eine beträchtliche Menge Speicherplatz, und die
> Durchsicht auf dem iPad ist nervig, weil es eine kleine, jedoch spürbare
> Verzögerung beim Blättern und der Darstellung gibt.

> Wie könnte man das unten angeführte Shell-Script umstricken?
> #-------------------------------------------------------------------------
> gs -sDEVICE=bmpgray -dNOPAUSE -dBATCH -q -r$dpi_res -sOutputFile=./%d.bmp
> ./$input_pdf_name
> #-------------------------------------------------------------------------

Ich habe mit

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=./%d.bmp ./$input_pdf_name

ganz gute Erfahrungen gemacht. Die Größe der PDF-Dateien sinkt
beträchlich.

'Andreas

Bernd Mayer

unread,
Apr 19, 2023, 1:38:31 PM4/19/23
to
Am 19.04.23 um 14:02 schrieb Markus Gail:
>
> Ich habe größere Mengen an eingelesenen Akten und andere Unterlagen, die als
> Graustufen-PDFs in 600 dpi vorliegen.
>
> Es ist zwar meist DIN A4, aber die Seitengröße variiert mitunter, selbst
> innerhalb des PDFs. Es kann vorkommen, daß innerhalb einer Akte eine Seite
> in einem Überformat jenseits von DIN A0 auftaucht oder auch einige Seiten in
> ca. DIN A6 auftauchen. Diese Größe sollte möglichst erhalten bleiben, es
> wäre jedoch zu verschmerzen, wenn alles auf A4 aufgezogen oder verkleinert
> würde.
>
> Diese Dateien verbrauchen eine beträchtliche Menge Speicherplatz, und die
> Durchsicht auf dem iPad ist nervig, weil es eine kleine, jedoch spürbare
> Verzögerung beim Blättern und der Darstellung gibt. Außerdem ist das
> Schrifbild nicht so knackig scharf wie die direkt als SW eingelesenen
> Unterlagen.
>
> Ich würde die Unterlagen gerne in SW-PDFs in 600 dpi konvertieren.
>
Hallo,

kein script nur als Anregung:

Ich mache das öfters mit Dateien aus dem Scanner, aber vor der
Umwandlung als PDF.

Falls ich doch schon ein PDF vorliegen habe, dann wandle ich das
zunächst wieder in ein bitmap um mit pdfimages, vorzugsweise als TIF.
https://manpages.org/pdfimages

Die Graustufenbilder wandle ich mit tiffdither nach BW.
https://manpages.org/tiffdither

Farbbilder zuvor mit tiff2bw nach Graustufen.
http://www.libtiff.org/man/tiff2bw.1.html

Das Format kann man mit tiffset einstellen.
https://www.mankier.com/1/tiffset

Und am Schluß erfolgt die Umwandlung mit tiff2pdf, falls gewünscht
inklusive der Metadateien.
https://linux.die.net/man/1/tiff2pdf

Am praktischsten finde insgesamt ich das Einscannen von Dokumenten mit
gscan2pdf:
https://sourceforge.net/projects/gscan2pdf/


Bernd Mayer


Alexander Schreiber

unread,
Apr 20, 2023, 5:08:06 PM4/20/23
to
Hier ist der Weg:
- Scan als 600dpi Graustufen, eine Datei pro Seite
- originale Scandatei als TIFF mit ZIP speichern, falls man die mal wieder
brauchen sollte (ja, ich bin von der JBIG2 Muster-"optimierung" gebissen
worden)
- mit "gm convert -normalize -despeckle +dither -type bilevel" das ganze
normalisieren, "entflecken" und auf bilevel dithern
- anschliessed mit tiff_findskew und pnmrotate allfällige Drehungen
korrigieren
- das jetzt vorliegende bilevel TIFF mit G4 komprimieren (tiffcp)
- und zuletzt an tesseract verfüttern, bei der Gelegenheit aus einem
mehrseitigen Dokument das als mehrere Scandateien vorliegt ein End-
dokument machen, das zudem dank OCR den Text als separate Ebene
(in z.B. evince copy-paste-fähig) drin hat und OCR Text zusätzlich
in Textdatei schreiben lassen (wegen Suche mit grep/indexer)
- am Ende
- die Scanrohdaten (als tar)
- das PDF
- die Textdatei
ins git repo werfen, commit & push, in den nächsten 24h aktualisieren
cron jobs die Replikas

Das ganze sind zwei Shellscripte:
- eins zum Scannen, mit Seitennummer als Parameter
- eins für den ganzen obigen Ablauf, mit xmessage popup wenn fertig

Man liest sich,
Alex.
--
"Opportunity is missed by most people because it is dressed in overalls and
looks like work." -- Thomas A. Edison

Bernd Mayer

unread,
Apr 21, 2023, 1:06:50 PM4/21/23
to
Am 20.04.23 um 22:54 schrieb Alexander Schreiber:
> Bernd Mayer <beamb...@yahoo.com> wrote:
>>
>> Ich mache das öfters mit Dateien aus dem Scanner, aber vor der
>> Umwandlung als PDF.
>>
>> Am praktischsten finde insgesamt ich das Einscannen von Dokumenten mit
>> gscan2pdf:
>> https://sourceforge.net/projects/gscan2pdf/
>
> Hier ist der Weg:
> - Scan als 600dpi Graustufen, eine Datei pro Seite
> - originale Scandatei als TIFF mit ZIP speichern, falls man die mal wieder
> brauchen sollte (ja, ich bin von der JBIG2 Muster-"optimierung" gebissen
> worden)
> - mit "gm convert -normalize -despeckle +dither -type bilevel" das ganze
> normalisieren, "entflecken" und auf bilevel dithern
> - anschliessed mit tiff_findskew und pnmrotate allfällige Drehungen
> korrigieren
> - das jetzt vorliegende bilevel TIFF mit G4 komprimieren (tiffcp)
> - und zuletzt an tesseract verfüttern, bei der Gelegenheit aus einem
> mehrseitigen Dokument das als mehrere Scandateien vorliegt ein End-
> dokument machen, das zudem dank OCR den Text als separate Ebene
> (in z.B. evince copy-paste-fähig) drin hat und OCR Text zusätzlich
> in Textdatei schreiben lassen (wegen Suche mit grep/indexer)
> - am Ende
> - die Scanrohdaten (als tar)
> - das PDF
> - die Textdatei
> ins git repo werfen, commit & push, in den nächsten 24h aktualisieren
> cron jobs die Replikas

Hallo,

Danke für die Anregung.

Da hab ich Einiges zum Antesten, auch vom OP, und kann meine
Vorgehensweise möglicherweise optimieren.

Wobei ich mit gscan2pdf als GUI hochzufrieden bin.

Man kann statt scans auch bitmaps reinladen und OCR macht das auch und
man kann die Metadaten Editieren.
Die PDF werden recht klein.

Als Auflösung verwende ich normalerweise nur 300 dpi.
TIFF G4 ist ja ein Format für Faxe und AFAIK haben die eh keine extrem
hohe Auflösung und sind dennoch gut lesbar bei normalen Schriftgrößen.

Rohdaten der scans lösche ich sobald das Ergebnis als PDF korrekt vorliegt.
Falls ich später doch noch ein bitmap benötige hole ich das mit pdfimage
raus.


Bernd Mayer
0 new messages