Linux at home – Paperwork : een persoonlijke document manager

About

Linux at home – Paperwork : een persoonlijke document manager

Paperwork beheert je gescande documenten en PDF’s, met OCR vind je op tekstuele inhoud snel het juiste document weer terug. Het is een open source desktop applicatie, gemaakt om snel en makkelijk in het gebruik te zijn.

Auteur: Matto Fransen

Onze brievenbussen raken steeds minder gevuld, tegenwoordig krijg je nog amper papieren brieven, rekeningen en documenten. Dit is vooral een verandering van de verschijningsvorm. Het aantal documenten is niet minder geworden, alleen zijn ze nu digitaal. Dat bespaart portokosten en papier. De groene kaart van je auto, de verzekeringspolis voor je fiets, het jaarlijkse pensioenoverzicht en de rekening van de tandarts verschijnen nu in de vorm van een PDF. Soms ontvang je ze per e-mail en soms staan ze voor je klaar ergens op een website.

De grote verscheidenheid aan bronnen maakt het risico groot, dat wanneer je later een document zoekt, je niet meer weet op welke website het stond of zelfs dat het document daar inmiddels niet meer beschikbaar is. Het is daarom met het verdwijnen van de papieren verschijningsvorm niet minder belangrijk geworden, je paperassen goed geordend op een centrale plek te bewaren, waar je ze later ook makkelijk terugvindt. Een persoonlijk document beheersysteem is hiervoor de uitgelezen oplossing.

Persoonlijk document beheersysteem

Paperwork is een persoonlijk document beheersysteem, voor zowel fysieke documenten als voor digitale versies in diverse formaten, zoals PDF, JPEG en PNG. Documenten worden met behulp van OCR omgezet in tekst, welke met Paperwork doorzoekbaar is. De onderliggende gedachte is dat de computer zoveel mogelijk werk voor je doet, Paperwork zegt daarbij ‘just scan and forget’. Op het moment dat je een document ontvangt stop je die in Paperwork en vergeet je het verder, tot het moment waarop je het nodig hebt.

Met behulp van sleutelwoorden en gekleurde labels kun je structuur aanbrengen in je verzameling documenten. Paperwork leert welke labels je waarvoor gebruikt en brengt bij nieuwe documenten automatisch labels voor je aan.

Paperwork maakt gebruik van open standaarden, zoals PDF, JPEG en hOCR, zodat je geen angst hoeft te hebben voor een situatie als vendor lock-in, zodat je later altijd ongehinderd naar een andere oplossing kunt overstappen. Paperwork is geschreven in Python en is via openpaper.org beschikbaar voor Linux en Microsoft Windows onder de open source GPL3 licentie. Het gebruikt Sane voor het scannen, Tesseract om de documenten in tekst om te zetten (OCR) en Whoosh voor de full-text indexing en zoekfunctionaliteit. De repository met de broncode voor Paperwork vind je bij gitlab.gnome.org.

Tesseract

Tesseract is een bewezen oplossing voor optical character recognition (OCR) met een lange geschiedenis. De oorsprong gaat terug tot in de jaren ’80, destijds is het bij HP ontwikkeld. In 2005 werd het vrijgegeven onder een open source licentie en in 2006 werd het door Google omarmt. Later is ook ondersteuning voor andere talen naast Engels toegevoegd, waaronder ook Nederlands. Tesseract kan de output in het hOCR formaat genereren, dit is een open standaard voor de data representatie voor tekst die door OCR verkregen is, samen een referentie naar de oorspronkelijke locatie in het brondocument.

Fysieke documenten scan je, om ze digitaal te kunnen opslaan. Paperwork gebruikt Sane, zodat je rechtstreeks vanuit de applicatie de scanner aanstuurt. Een scanner geeft een goed resultaat en is soms ook voorzien van een sheetfeeder, zodat je documenten bestaande uit meerdere pagina’s, al dan niet dubbelzijdig bedrukt, makkelijk en vlot verwerkt. Heb je thuis geen scanner, dan is er wellicht op je werk of bij je school eentje. Om in een afbeelding tekst te kunnen ‘OCR-en’, is een hoge resolutie belangrijk. Voor de huidige smartphone camera’s is dat geen punt meer, dus wanneer je geen scanner hebt, kun je ook daarmee fysieke documenten digitaliseren.

Flatpak

Paperwork biedt voor enkele bekende Linux distributies een package aan, maar het makkelijkst installeer je Paperwork met behulp van Flatpak.

Flatpak is een distributie-onafhankelijk package managementsysteem voor desktop applicaties. Het is onderdeel van het freedesktop.org project. Flatpak installeert je applicatie in een bundel met alle benodigde dependencies. De bundel komt in een zogenoemde sandbox omgeving, deze vorm van isolatie voorkomt conflicten tussen de meegeleverde software en de reeds op je systeem geïnstalleerde pakketten. Verder heeft het als voordeel dat je alle benodigde dependencies in de juiste versie mee krijgt, en daar als gebruiker geen zorgen over hebt. Voor ontwikkelaars biedt Flatpak het voordeel dat zij hun applicatie kunnen bouwen in een omgeving die identiek is aan de omgeving bij de gebruiker.

Voordat je Paperwork met behulp van Flatpak gaat installeren, dien je eerst Flatpak zelf te installeren. Dit is gelukkig eenvoudig met behulp van de packagemanager te doen, bijvoorbeeld met sudo apt-get install flatpak. Een tweede stap in de voorbereiding is de aansturing van de scanner, hiertoe installeer je Sane. Verder is ook Tesseract niet in de flatpak-installatie meegenomen, ook die dien je via de package-manager van je distributie te installeren. Vergeet hierbij niet om het taalspecifieke package mee te installeren, bijvoorbeeld met sudo apt-get install tesseract-ocr-nld.

Hierna kun je de installatie van Paperwork in de handen van Flatpak leggen. Dit doe je met een simpel commandline commando. Nadat de installatie voltooid is, start je Paperwork op vanaf een iccontje, of met een commandline commando. Je krijgt nu een nagenoeg lege omgeving, met daarin één document, de gebruikershandleiding.

We gaan nu een nieuw PDF bestand toevoegen. In de bovenbalk staat rechts een dropdown selectbox waarmee je kunt kiezen tussen scannen en importeren. We kiezen voor importeren en klikken in de bestandsnavigator het betreffende bestand aan. Nadat het importeren voltooid is, vraagt Paperwork of we het oorspronkelijke bestand willen verwijderen. Handig voor gedownloade documenten. Paperwork verplaatst dan het document naar de trash directory.

Het Paperwork window bestaat naast de bovenbalk met enkele menu’s uit een linker kolom en een hoofdveld. In de linker kolom verschijnt voor ieder document een blokje, gevuld met een thumbnail, de datum waarop het document is geïmporteerd en de labels. De labels worden hierbij getoond inclusief hun eigen kleur.

Je maakt een document actief door op zo’n blokje te klikken. Het blokje wordt blauw en uitgebreid met twee icoontjes, en de inhoud van het document wordt in het hoofdveld getoond. Zie screenshot 1.

Screenshot 1, Paperwork met actief document

 

Je kiest uit twee manieren om het document in het hoofdveld te tonen, de ene manier toont pagina’s in de volle breedte, de andere manier toont een grid met blokjes, per pagina een blokje, waar je snel een overzicht krijgt van de pagina’s. Zie screenshot 2.

Wanneer je met je muis over tekst zweeft, dan krijg je bij ieder woord een klein pop-upje, dat de uitkomst van het OCR-proces toont. Zie screenshot 2, waar de muis over het woord ‘monumental’ zweeft.

Screenshot 2, Pagina’s in grid vorm

 

In de edit-modus beheer je de meta-data van het document. Je opent de edit-modus door op het edit-icoontje in het blauwe blokje te klikken. Je kunt nu desgewenst de document-datum aanpassen, labels toevoegen of verwijderen, en aanvullende sleutelwoorden intypen. Een document kan meerdere labels hebben. Bij het toevoegen van een label kies je voor een bestaand label of je maakt een nieuw label aan. Bij het aanmaken van een nieuw label kies je ook de kleur waarin dit label getoond wordt.

Ook kun je in de edit-modus enkele aanpassingen aan het document uitvoeren, zoals roteren. Zie screenshot 4.

Screenshot 4, Paperwork in edit-modus

 

Directories importeren

Paperwork biedt de mogelijkheid om een complete directory te importeren. Alle PDF-documenten worden in Paperwork geïmporteerd, waarbij reeds eerder geïmporteerde documenten worden overgeslagen. Wanneer de directory onderliggende sub-directories heeft, dan worden deze ook bezocht. Je kunt zo dus een complete directory-tree in één keer in Paperwork importeren. Na afloop krijg je een notificatie-windowtje met het aantal geïmporteerde documenten en het totaal aantal geïmporteerde pagina’s. Ook nu krijg je de vraag, of je de geïmporteerde bestanden wilt verwijderen.

Nadat je al je documenten in Paperwork hebt opgeslagen, komt er een moment dat je iets wilt terugvinden. Bovenaan de linkerkolom staat hiervoor een zoekveld. Hier vul je een of meer woorden in. De linkerkolom toont vervolgens de documenten, die deze zoekwoorden bevatten. Wanneer je zo’n document opent, worden in de tekst de zoekwoorden met een groen kadertje gehighlight. Wanneer het document in grid-mode is getoond, dan zijn de pagina’s waarin een zoekwoord voorkomt, voorzien van een groen kader.

In de bovenbalk zie je in welke pagina je van het actieve document staat, bijvoorbeeld ‘3 of 13’, met daar omheen een aantal pijl-icoontjes. We bespreken deze pijlen als paren, van buiten naar binnen. De buitenste twee pijlicoontjes bevatten een dubbele pijl, hiermee ga je naar het vorige resp. volgende document. Daarbinnen staan twee pijlen, hiermee ga je naar de allereerste plek in het document waar een zoekwoord voorkomt, resp. naar de allerlaatste. Met de pijlicoontjes daarbinnen ga je naar het vorige resp. volgende gevonden zoekwoord binnen het document.

Via de export-functie kun je documenten exporteren, in PDF formaat. Naast het hele document kun je ook een losse pagina exporteren, je hebt daarbij de keuze uit de formaten PNG en JPEG.

Screenshot 3, Popup met ge-OCR-ed woord

 

Opslag

Al je documenten komen in één enkele directory, in ~/papers. Hierin vind je per document een subdirectory. De naam van deze subdirectory is afgeleid van de datum en tijd waarop je het document hebt gescand of geïmporteerd. In de subdirectory vind je het document, een klein tekst-bestandje met informatie over het label of de labels die aan het document zijn toegevoegd, en een thumbnail afbeelding van het document. Bij geïmporteerde documenten is de oorspronkelijke bestandsnaam verdwenen, alle PDF documenten heten ‘doc.pdf’, geïmporteerde afbeeldingen zoals PNG-bestanden zijn omgezet naar JPEG-formaat en heten ‘paper.1.jpg’.

Bij PDF-documenten is de hOCR informatie in het PDF-document opgenomen, bij afbeeldingen kan dit niet. Daar zie je een extra bestandje met de herkende woorden, met als naam ‘paper.1.words’.

Het is belangrijk dat je deze papers-directory niet kwijtraakt, deze bevat immers al je documenten, inclusief de OCR-uitkomst en de meta-data. Op de website van Paperwork worden enkele back-up mogelijkheden genoemd, zoals het gebruik van SparkleShare (welke, al dan niet met end-to-end-encryptie, directories synchroniseert naar een Git-repository), Syncthing, enzovoorts. Welke methode je ook kiest, zorg voor een goede back-up.

Flatpack heeft op de achtergrond in je homedirectory de verborgen directory ~/.var gemaakt. Wanneer je hierin afdaalt, vind je het persoonlijke configuratiebestand voor Paperwork. Hierin kun je desgewenst een andere directory dan ‘~/papers’ kiezen.

Smartphone

Bij gebrek aan een scanner hebben wij naast PDF-documenten, voor deze review gebruik gemaakt van reeds eerder gescande documenten. Daarnaast hebben wij met onze smartphone twee foto’s gemaakt in het Linux magazine, een van een enkele pagina, en een van twee opvolgende pagina’s. Verder maakten we ook een foto van een deel van een pagina uit de ANWB Kampioen. Alle foto’s werden correct in tekst omgezet. Verder hebben wij ook enkele screenshots geïmporteerd, zowel van terminal-vensters met tekst als van webpagina’s, eveneens met een goed OCR-resultaat.

Paperwork is een desktopapplicatie en is uitgevoerd als een single user applicatie. Dit betekent dat je zonder authenticatie het programma opent en bij de gescande en geïmporteerde documenten komt. Het is dus echt een persoonlijk document beheersysteem. Voor goed persoonlijk documentbeheer hoef je dus niet naar de cloud. Documenten die je in Paperwork stopt, vind je op basis van een of enkele zoekwoorden razendsnel terug.

Share
June 2024
July 2024
No event found!

Related Topics