>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Python

PdfDing en het temmen van de eindeloze PDF-chaos

PdfDing Logo

De meesten van ons hebben een Downloads map of thuisserver waar honderden PDF's zich in de loop der jaren ophopen. Technische documentatie, boeken over systeemprogrammering, bonnetjes, contracten, scans en onderzoekspapers. Meestal wordt het vinden van de juiste paragraaf in zo'n rommel een nachtmerrie: één bestand is geopend in de browservoorbeeld, een ander is gedownload naar een tablet, en je aantekeningen zijn achtergelaten op je werklaptop.

Als je ooit linkding voor bookmarks hebt gebruikt, zal het concept je bekend voorkomen. Ontwikkelaar mrmn2 putte er inspiratie uit om PdfDing te creëren — een lichtgewicht zelfgehoste all-in-one oplossing voor het lezen, catalogiseren en bewerken van PDF's direct via een webinterface.

PdfDing Demo Screenshot

Wat de service kan doen

PdfDing lost een simpel probleem op: het biedt een enkel toegangspunt voor al je documenten met statesynchronisatie tussen apparaten. Je opent een boek op je desktop, sluit de tab, en 's avonds lees je verder vanaf dezelfde pagina op je telefoon.

Het project dekt basis documentmanagementbehoeften zonder uitgebreide enterprise-functionaliteit.

Lezen en synchronisatie

De belangrijkste functie van de lezer is voortgangsregistratie. De interface toont duidelijke voortgangsbalken voor elk bestand, zodat je direct kunt zien welk handboek half gelezen is en welk je nog niet eens hebt aangeraakt.

Voor comfortabel lezen voegde de auteur toe:

  • Donker thema
  • Kleurinversie-modus voor oude scans met witte achtergrond
  • Meerdere paginalay-out opties voor verschillende schermen
  • Notitiespanel met Markdown-ondersteuning direct naast het document

Annotaties en handtekeningen

PdfDing bevat een volwaardige markup-editor. Je kunt tekst markeren met een marker, handgetekende diagrammen in de marges tekenen en tekstblokken invoegen.

Een apart pluspunt is de afhandeling van handtekeningen. Je slaat je handtekening één keer op in je profiel op, en vervolgens kun je deze snel op contracten en facturen stampen vanaf elk geautoriseerd apparaat. Alle opmerkingen en markeringen worden verzameld in een apart panel, vanwaar ze kunnen worden geëxporteerd zonder het zwaarste bronbestand te uploaden.

Catalogusorganisatie

Wanneer documenten de honderd overschrijden, werkt een platte lijst niet meer. In PdfDing kun je de structuur bouwen die bij je past:

  • Workspaces voor het scheiden van persoonlijke en werkbestanden
  • Geneste collecties
  • Multi-level tags
  • Favorieten en archief voor verouderde versies

Bulkacties zijn beschikbaar voor massaoperaties. Je kunt twintig rapporten van het afgelopen kwartaal selecteren en in een paar klikken naar het archief sturen of een gemeenschappelijke tag toepassen.

Delen en beveiliging

Als je een document aan een collega of klant wilt laten zien, is er geen noodzaak om het bestand via de messenger door te sturen. In de app kun je een openbare link of QR-code genereren voor een specifiek document of een hele collectie. Toegang kan indien nodig met een wachtwoord worden beveiligd of tijdsgebonden worden beperkt.

Vanuit een beveiligingsperspectief is alles ook in orde:

  • SSO-ondersteuning via OIDC-protocol
  • Twee-factor-authenticatie via TOTP-codes
  • Hardware-sleutels en biometrie via WebAuthn-standaard

Hoe het onder de motorkap werkt

Python powers het project onder de motorkap. De auteur heeft het systeem niet overladen met microservices-complexiteit, maar koos voor een monolithische architectuur die gemakkelijk kan worden gedeployed op een bescheiden VPS of thuis-Raspberry Pi.

Overigens ontving de ontwikkeling financiële ondersteuning van het European NGI0 Commons Fund (Next Generation Internet programma van NLnet). Dat is een goed teken: de auteur heeft middelen om de codebase te ontwikkelen, en het project zal niet een maand na release worden verlaten.

NLnet foundation logo

Hoe je het zelf kunt draaien

De makkelijkste manier is om de service te draaien via Docker Compose. Maak een standaard manifest:

services:
  pdfding:
    image: mrmn/pdfding:latest
    container_name: pdfding
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    environment:
      - SECRET_KEY=your-super-secret-key-change-me

Na het draaien van docker compose up -d is het webpaneel beschikbaar op poort 80. Voor productiegebruik hoef je alleen maar verkeer te routeren via Nginx Proxy Manager, Traefik of Caddy met een SSL-certificaat.

Voor clusters bevat de documentatie kant-en-klare Helm charts, dus deployment in Kubernetes zal ook geen probleem zijn.

Voor wie is het nuttig

PdfDing zal waarschijnlijk geen zware documentmanagementsystemen zoals Paperless-ngx vervangen als je automatische tekstherkenning (OCR), complexe inkomende mailverwerkingspijplijnen en streepjescode-parsing nodig hebt.

Maar als je op zoek bent naar een schone, snelle lezer en catalogus voor boeken, documentatie, handleidingen en contracten met de mogelijkheid om snel een handtekening vanaf een tablet te zetten, is dit project perfect. Je kunt de interface uitproberen voordat je installeert op de officiële demo.

Gerelateerde projecten