The CanoScan LiDE 25 is still with me! I have a little OCR project and wanted to use it on the Mac, but I think it no longer works. The scanner still works but the OCR tool that came with it is nowhere to be found. Instead of investing time getting it to work on the Mac I decided to try it on the new laptop.
So, here I have a bit more than 150 pages written using a typewriter, in German, and an old flatbed scanner. I tried two scanning apps on the iPad, but they were no good. On the laptop, I started with `apt install yagf tesseract-ocr-deu`.
“YAGF is a graphical interface for cuneiform and tesseract text recognition tools on the Linux platform. With YAGF you can scan images via XSane, import pages from PDF documents, perform images preprocessing and recognize texts using cuneiform from a single command centre. YAGF also makes it easy to scan and recognize several images sequentially.” Looking forward to cuneiform OCR!
Sadly, it crashed as soon as `xsane` finished scanning an image. So I decided to do the scanning and OCR myself.
First, the scanning: I have a flat bed scanner that takes a few seconds to scan a page. Whenever it is silent, open cover, take out paper, put in next page, close cover, switch to terminal, hit Enter, go back to what I was doing. It’s a workflow that works even if it is distracting.
This is the script I used:
#!/usr/bin/perl use strict; print "Finding scanner...\n"; open(F, '-|', 'sane-find-scanner'); my $device; while(<F>) { if (/^found/) { my @words = split; $device=$words[-1]; last; } } if (!$device) { die "sane-find-scanner could not determine device\n"; } else { print "Found $device...\n"; } my $base = $ENV{HOME} . "/Desktop/scan"; my $n = $ARGV[0] || 1; while (1) { my $file = sprintf("$base %03d.tiff", $n); while (-e $file) { $n++; $file = sprintf("$base %03d.tiff", $n); } print "Scanning and saving as $file...\n"; system("scanimage --device=plustek:$device --format=tiff --mode=lineart --resolution=300 -l 0 -t 0 -x 210 -y 297 > '$file'"); print "Press Enter for another image.\n"; my $answer = <STDIN>; last if $answer ne "\n"; $n++; } print "Done.\n";
And now for the OCR workflow. Tesseract is a command line tool. It takes an image and generates a text file. Everything else – all the editing! – will happen later, in an editor.
#!/usr/bin/perl use strict; print "OCR current directory...\n"; opendir(my $dh, ".") or die "Can't opendir: $!"; my @tiffs = grep { /\.tiff$/ } readdir($dh); closedir $dh; for my $tiff (@tiffs) { my $base = $tiff; $base =~ s/\.tiff$//; next if -s "$base.txt"; print "tesseract $tiff\n"; system("/usr/bin/tesseract", $tiff, $base, '-l', 'deu'); } print "Done.\n";
This gets you images like this one:
And text like this:
A fuhr ich mit Gretl 32 einem Wagen, kein Auto,sondern eben einer Kalesse nach Gaya ‚Veraniaßt dies natürlich Herr Willerth . Bei dieser Gelegen- leit blieben wir gleich einen Nachmittag bei Elli.ä.h.bei Familie Grunt und verbrachten wieder nette Stunden „dann gings wieäer nach Keltschan. Ich glaube, schon erwähnt zu haben, das in keltschan eine Zuckerfabrik war, deren Direktor Herr Willerth war.Die Zeit wer einfach wunderschön Yüälyg “fast möchte ich sagen, in’ Keltschan bei Willerth noch schöner wie bei Fan. &$runt in Gaya .Ich habe mich mit Gretl wunäierbar verstanden,ich glaube noch besser wie in der Schulzeit . 3s wurden nicht eine Woche son- dern sehr wie 2 Wochen und dann gings wieder zu Zlli nach Gaya.Jede woll- te, ich solle noch bei ihnen bleiben, auch die lütter von ihnen waren dieser Keinung.Ich war also ein liebgeworäener vast.- Vielleicht werdet Ihr Euch meine lieben Kindern wundern,wieso ich das Alles noch weiß.Nun ja, teilweise aus neinem Gedächnis,teilweise aus Briefen, die mir jetzt in die Hände gekonnen sind,die ich selbst damals von Keätschan und Gaya an meinem damals herzailerliebsten Schatz, Buren Fapa geschrieben habe, und die sind nicht wenige. Was bemerkenswert ist, das Euer Fapa all diese Schreiben von mir sich aufgehoben hat, - aufgeho- ben bis zu seinen Tode.- Der August näherte sich langssam seinen Ende und ich war noch imxzer.in Gaya, dazwischen zwar schon wieder in Keltschan,da kan eine Nachricht von Wien xx& vonreinem llammerle und zugleich von Eurem Fapa. Noch heute sehe ich in der Erinnerung voller Schmerz den Briefmeiner !iama lesen,was sie mitgemacht,was sie gelitten durch eine 3rustoperation chne liarkose , ohne Vereisung,dabei roher Behandlung und rohen ilorten.Diese wunderbare Kutter schrieb nir,sie wollte mir vo:her nichts von einer Üperation schrei ben,damit ich mich nicht sorge und meine Erholung nicht gef“hrde, Sie ha- be auch lialter gebeten, mir ja nichts. davon zu schreiben .Sie wollte erst nachher, wenn alles gut verbei gehi,nir davon scnreiben,erst.dann wenn ich nir nicht Sorgen über den Aunagang der Operation machen nö. So var meine. ama, so leiden ‚aber die Kinder sollenes nicht wissen.Imner wie- der steht das Bild vor nir,den Brief in der Kand zich in mein Ziuxer zu- rück ziehen und heulen .Zu tief hat mich ergzfiffien, was meine ana lei- den mußte,was muß sie ertragen haben.Ist das noch menschlich ‚frage ich mich ? Ich erinnere micn noch gut- zu3erdem lese ich es jetzt aus diesen alten Briefen-ich wollte das Zimmer nicht. verlassen und vergrub xich in meinen Schmerz, wollte nichts’ essen,nicht trinken und mit niemand reden . Frau/rüßrene zu mir ,„ sonst hätte ich mein Zimxer noch lange nicht ver - lassen „kein Narzerle schrieb mir noch,ws für einen braven,zuten ien - schen ich einzal zun lüiann bekonme,er kam gleich ins Spital zur liama,vwie er davon hörte,er war beim lachhausekommen vom Spital zur Tante Eella dabei. (in Fetzendorf).dJa,Euer Fapsch besuchte täglich nachmittags meine ilama "in Hetzendorf und las ihr vor,lenkte sie ab von ihren Schmerzen. Ein ein- maliger Schwiegersohn,sagte auch später noch meine \lama.Ch es heutzutage auch noch solche Fälle zibt#Ich zweifle sehr daran.Es hat sich doch so Vieles,wenn nicht alles geändert in den Fauilien.Die Jugend denkt ganz anders .Nat;rlich kam auch Papa die arme isama besuchen,Goch er kam von von Neulengbaeliherein und die Fahrt war teuer u.Fapa hatte ja kein Geld. Es war ein gro3er Janmmer,Papa postenlos, Günther des-gleichen ‚ebenso Erika und ich und nirgends ein eigenes Platzerl zum Wohnen.So etwas könnt Ihr Zuch gar nicht vorstellen,denn trotz einer Postenlosigkeit habt Ihr _ein Platzerl gehabt, wo Ihr den Kopf zum Schlafenf/Ainlezen könrön,einen ‘Sessel zum Ausruhen, ohne das Euch 'jenand gedrängt hat,denselben zu räu- sie
As you can see, practically every line needs editing.
You can then concatenate all the text files into a big text file and start using a spell checker, of course. But I fear there will be *a lot* of manual editing involved.
☯
Oh, and to get a non-searchable PDF:
sudo apt install libtiff-tools tiffcp scan*tiff buch.tiff tiff2pdf -z -o buch.pdf -a "Brunhilde Marzy" -c "Alex Schroeder" -t "Mein Leben" buch.tiff
31M isn’t too bad, is it?
#Scanner #OCR #Purism