Een boek scannen

Soms is dat nodig: de inhoud van een boek digitaliseren. Er zijn bedrijven die dat voor je doen, maar je kunt het ook zelf. Kost even wat tijd en moeite, maar Linux heeft er de nodige software voor.

De procedure is simpel. Eerst scan je de pagina’s op een goede resolutie: 150dpi kan genoeg zijn, maar 300dpi geeft vaak beter resultaat. Bewaar de scans als TIFF, PNG of JPG. Haal die dan door een OCR-programma om er platte tekst uit te halen. Corrigeer dat op fouten en voeg enige opmaak toe. Klaar!

Scannen

Scannen onder Linux is mogelijk dankzij SANE (‘Scanner Access Now Easy’). Dat is een software-oplossing (‘API’) die ervoor zorgt dat drivers, netwerken en interfaces netjes samenwerken. Ontwikkelaars kunnen hun scanprogramma’s daarop baseren. Inmiddels werken de meeste scanners prima onder Linux, maar voor je er een koopt is het toch verstandig even te controleren of daar Linux-drivers voor zijn. Fabrikanten als Hewlett-Packard, Canon, Epson of Brother hebben inmiddels op hun websites zelf wel ondersteuning en drivers voor Linux. SANE zit in alle Linux-distro’s en wordt vaak al automatisch geïnstalleerd.

Er zijn verschillende scanprogramma’s. XSane heeft een wat gedateerde interface, maar zit nog steeds bij alle distro’s. Sommige grafische toepassingen installeren het mee. Voor KDE desktops is er Skanlite en voor GNOME is er GNOME Scan. LinuxMint komt met een eigen toepassing: Simple Scan, gebaseerd op het GNOME Scan project. Canon heeft weer een eigen toepassing, ScanGearMP, die je zelf moet downloaden en installeren. Zie een eerder bericht. ScanGearMP werkt prima en biedt meer opties dan Skanlite of Simple Scan. Een zelfstandig scanprogramma dat veel belooft aan Linux-gebruikers is VueScan.

OCR

En dan de eigenlijke digitalisering: OCR (‘Optical Character Recognition’).

Alle Linux-distro’s hebben daarvoor Tesseract beschikbaar, in de jaren ’80 bedacht door Hewlett-Packard, maar sinds 2005 open-source. Het wordt nu verder ontwikkeld door Google en het ondersteunt een groot aantal talen. Tesseract is een ‘engine’. Dat wil zeggen dat het precies doet wat OCR zegt: tekens herkennen en die omzetten naar letters, cijfers of symbolen volgens de geëigende codetabel. Tesseract heeft beperkte mogelijkheden om vanaf de commandline te gebruiken, het heeft verder geen interface en evenmin opties voor verdere verwerking van de geproduceerde tekst.

Daarvoor is een OCR-toepassing nodig. Eerder schreef ik al over OCRfeeder dat standaard in de Ubuntu-repositories zit. Maar intussen ontdekte ik Tesseract-GUI, een toepassing geschreven in Python. Dat vind ik prettiger in het gebruik. Downloaden en zelf installeren is niet moeilijk. Het werkt redelijk snel en accuraat en heeft een paar handige opties, zoals het samenvoegen van verwerkte pagina’s in één document of het optimaliseren van de gescande pagina met de hulp van ImageMagick. Toch mag je zeker geen foutloze verwerking verwachten. Strepen of aantekeningen in de tekst zorgen altijd voor problemen, combinaties als ‘fi’ of ‘ff’ worden vaak gemist en cijfers als ‘1’ of ‘0’ willen nog wel eens een ‘l’, ‘I’, ‘o’ of ‘O’ worden. Dus altijd even goed nakijken. En ach, dan heb je ook meteen het boek gelezen.

De output van deze OCR-toepassingen is platte tekst. Die kun je vervolgens inlezen in een document in je tekstverwerker om de opmaak te regelen. En dat kun je dan weer exporteren als PDF. Klus geklaard.

En dan nog

Een andere OCR ‘engine’  is Cuneiform, van Russische oorsprong. Het zit ook standaard in de meeste distro’s. Op zich werkt dat aardig, maar het wordt al jaren niet meer actief onderhouden.

Wie echt hogere eisen stelt, zal een professionele toepassing moeten zoeken, bv. ABBYY FineReader. Die komt dan wel weer met professionele prijzen.