2. December 2023

Paperless - Open Source dokumenthåndtering

Jeg følger #opensource-hashtagget på det sociale medie Mastodon, og derfor får jeg dybest set alt, der handler om Free and Open Source Software op på min væg, og det har været fantastisk. En bruger smed et link til Paperless - et open source dokumenthåndteringssystem (DMS). Det har jeg aldrig hørt om før, så det vakte straks min interesse.

Hvad er et DMS? Måske har du brugt et CMS - Content Management System - til dine websider? Et dokumenthåndteringssystem er mere eller mindre det samme, her er fokuset bare på filopbevaringen og intern kategorisering/indeksering, og ikke på ekstern visning.

Efter at have prøvet demo’en som jeg tror var i stykker, så installerede jeg selv softwaren på min server. Selve softwaren er en backend skrevet i Python og så med en Typescript-frontend.

Der er gjort en masse ud af selve “feel’et”, når du bruger systemet, det føles rart at bruge. Det er naturligvis en subjektiv vurdering fra min side, men navigation og brug af produktet føles generelt flydende og solidt. Jeg har endnu ikke kunnet fremprovokere fejlmeddelelser, selvom jeg har uploadet mange forskellige filtyper til systemet. Oversigtsvisningen kan både være baseret på ruder/kort og listebaseret, og kan ses på billedet herunder - klik evt. for at forstørre.

Paperless'

Selve installationen kan du gøre manuelt eller via Docker Compose. Jeg valgte Docker, fordi det er nemt at rydde op igen, men jeg tror dette produkt er en keeper, for jeg tror det er noget, der kan udvikle sig i spændende retninger.

Installationen var tekstbaseret, og jeg følte mig godt guidet. Du downloader blot en enkelt installationsfil (bash-script) og så klarer Paperless-installationen resten med enkelte spørgsmål til brugernavn/password, tillægspakkevalg osv.

OCR-genkendelse

Det første, jeg satte mig for at teste var Paperless’ OCR-genkendelse. OCR står for Optical Character Recognition, eller optisk karaktergenkendelse, og dens funktion er automatisk konvertering af grafik til tekst. Herunder ser du et eksempel på en indscanning. I visningen til højre er der en bogside, i tekstfeltet til venstre, den OCR-genkendte tekst.

screenshot-2023-12-02-at-15-08-46-ocr-test-paperless-ngx.png

Under installationen havde jeg installeret Tesseracts OCR-moduler på dansk, tysk og engelsk. Tesseract blev udviklet af Hewlett-Packard i 1980′erne, som udgav det som Open Source i 2005 sammen med universitetet i Nevada, Las Vegas, USA. Året efter startede Google med at sponsorere udviklingen, og har gjort det lige siden.

Den engelske OCR fungerede rimelig godt, selv på bogsider, der var en smule skæve. Der var enkelte ord, der ikke blev genkendt korrekt, men det skal man forvente, når man bruger OCR-software.

Den danske del af Tesseract OCR har problemer med ø og å, der bliver genkendt som o og a, men sjovt nok ikke med ‘æ’, det kan være fonten, som er “tynd” på bestemte steder. Lige der kunne jeg godt tænke mig bedre muligheder for at man kunne se og finjustere indstillingerne inde i Paperless. Jeg prøvede at gemme kildematerialet som sort/hvid i 1200 ppi med en fed (bold) skrifttype, men det gjorde ingen forskel.

Udover OCR-integrationen, som må siges at være den feature, der “sælger” systemet, så fremstår brugerfladen nem og lige til… Jeg kan generelt godt lide brugerflader, hvor opsætningen er holdt minimalistisk og simpel - sekundært placerede knapper, der ikke er i brug, vises kun når du skal bruge dem. Less is more, simpelthen.

Dokumenttyper og emails

Du kan bede Paperless om at indklassere dokumenter efter bestemte ord (tags, eller etiketter på dansk). Så hvis du bruger ordet “Årsrapport”, så vil den kyle alle rapporter i en bestemt mappe med bestemte etiketter. Men det forudsat, at OCR’en er fejlfri på dansk. Jeg har ikke nået at teste denne del gennemgående, men jeg opdaterer opslaget her i så fald.

Paperless kan ligeledes indstilles til at overvåge indkomne emails fra bestemte konti og så klassificere dokumenterne efterfølgende.

Til sidst - ønsker

Jeg kunne som nævnt godt tænke mig flere muligheder for at justere importindstillinger på OCR’en i selve Paperless. Konverteringsmessigt er der intet at klage over, generelt genkendte systemet alt, jeg smed efter det. Den insisterede på at køre OCR på det hele, sikkert pga. klassificeringsfunktionen, og det er superfedt at se OCR-genkendte ord dukke op i søgeindekset af sig selv. En upload kan godt tage noget tid, når det skal scannes under import. Et billed på 3000×3000 pixel (1200 ppi) tog mig ca. 15-20 sekunder.

Den danske oversættelse af Paperless backenden er ikke helt komplet, men absolut brugbar. Mulighed for at installere ekstra plugins er der ikke. Derved ville man f.eks kunne tilpasse systemet til bestemte arbejdsmønstre eller bestemte brancher. Parrede man f.eks systemet med Python PIL eller Pillow, ville systemet blive en temmelig kapabel backend til grafiske virksomheder. Desværre skriver udviklerne i dokumentationen at plugins næppe bliver en realitet. Det synes jeg er en skam, men okay, at koncentrere sig om kernefunktionaliten er også en mulighed at undgå, at systemet bliver for bredt.

Manglen på pluginudvidelser kompenseres dog af, at man kan tilføje specielle felter til sine dokumenttyper, og af muligheden for at bruge et REST API for at få Paperless til at arbejde sammen med andre typer software. Dermed altså stadig rige muligheder for integration med systemer udefra.

Alt i alt et solidt opensource produkt, som jeg sagtens kan anbefale at afprøve.

Installation og screenshots:
https://docs.paperless-ngx.com/setup/
https://docs.paperle … #paperless-a-history

Add comment

Fill out the form below to add your own comments