>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Python

PdfDing e come domare il caos infinito dei PDF

Logo PdfDing

La maggior parte di noi ha una cartella Downloads o un server domestico dove centinaia di PDF si accumulano nel corso degli anni. Documentazione tecnica, libri di programmazione di sistema, ricevute, contratti, scansioni e articoli di ricerca. Di solito trovare il paragrafo giusto in un simile disastro diventa un incubo: un file è aperto nell'anteprima del browser, un altro è scaricato sul tablet, e le tue note sono rimaste sul laptop di lavoro.

Se hai mai usato linkding per i segnalibri, il concetto ti risulterà familiare. Lo sviluppatore mrmn2 ne ha tratto ispirazione per creare PdfDing — una soluzione leggera e self-hosted all-in-one per leggere, catalogare e modificare PDF direttamente tramite un'interfaccia web.

Screenshot demo di PdfDing

Cosa può fare il servizio

PdfDing risolve un problema semplice: fornisce un unico punto di accesso per tutti i tuoi documenti con sincronizzazione dello stato tra i dispositivi. Apri un libro sul desktop, chiudi la scheda, e la sera continui a leggere dalla stessa pagina sul telefono.

Il progetto copre le esigenze base di gestione documentale senza funzionalità aziendali superflue.

Lettura e sincronizzazione

La funzionalità principale del lettore è il tracciamento del progresso. L'interfaccia mostra barre di progresso chiare per ogni file, così puoi vedere immediatamente quale manuale è a metà e quale non hai ancora nemmeno sfiorato.

Per una lettura confortevole, l'autore ha aggiunto:

  • Tema scuro
  • Modalità di inversione colori per vecchie scansioni con sfondo bianco
  • Varie opzioni di layout delle pagine per schermi diversi
  • Pannello note con supporto Markdown direttamente accanto al documento

Annotazioni e firme

PdfDing include un editor di markup completo. Puoi evidenziare il testo con un evidenziatore, disegnare diagrammi a mano nei margini e inserire blocchi di testo.

Un vantaggio aggiuntivo è la gestione delle firme. Salvi la tua firma nel profilo una volta, e poi puoi applicarla rapidamente su contratti e fatture da qualsiasi dispositivo autorizzato. Tutti i commenti e gli evidenziamenti sono raccolti in un pannello separato, da cui possono essere esportati senza caricare il file sorgente più pesante.

Organizzazione del catalogo

Quando i documenti superano il centinaio, un elenco piatto smette di funzionare. In PdfDing puoi costruire la struttura più adatta alle tue esigenze:

  • Workspace per separare file personali e di lavoro
  • Collezioni nidificate
  • Tag multilivello
  • Preferiti e archivio per versioni obsolete

Sono disponibili azioni di massa per operazioni su più elementi. Puoi selezionare venti report del trimestre scorso e inviarli all'archivio o applicare un tag comune in un paio di clic.

Condivisione e sicurezza

Se devi mostrare un documento a un collega o cliente, non c'è bisogno di inoltrare il file tramite messenger. Nell'app puoi generare un link pubblico o un codice QR per un documento specifico o un'intera collezione. L'accesso può essere protetto da password o con limiti temporali se necessario.

Dal punto di vista della sicurezza, tutto è in ordine:

  • Supporto SSO tramite protocollo OIDC
  • Autenticazione a due fattori tramite codici TOTP
  • Chiavi hardware e biometria tramite standard WebAuthn

Come funziona internamente

Python alimenta il progetto sotto il cofano. L'autore non ha sovraccaricato il sistema con complessità di microservizi, optando per un'architettura monolitica che si implementa facilmente su un VPS modesto o su un Raspberry Pi domestico.

A proposito, lo sviluppo ha ricevuto supporto finanziario dal NGI0 Commons Fund europeo (programma Next Generation Internet di NLnet). È un buon segno: l'autore ha risorse per sviluppare la codebase e il progetto non verrà abbandonato un mese dopo il rilascio.

Logo fondazione NLnet

Come eseguirlo autonomamente

Il modo più semplice è avviare il servizio tramite Docker Compose. Crea un manifest standard:

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

Dopo aver eseguito docker compose up -d, il pannello web sarà disponibile sulla porta 80. Per l'uso in produzione, dovrai solo instradare il traffico attraverso Nginx Proxy Manager, Traefik o Caddy con un certificato SSL.

Per i cluster, la documentazione include chart Helm pronti all'uso, quindi anche il deployment in Kubernetes non sarà un problema.

A chi tornerà utile

PdfDing difficilmente sostituirà sistemi pesanti di gestione documentale come Paperless-ngx se hai bisogno di riconoscimento automatico del testo (OCR), pipeline complesse di elaborazione della posta in arrivo e parsing di codici a barre.

Ma se stai cercando un lettore e catalogo pulito e veloce per libri, documentazione, manuali e contratti con la possibilità di apporre rapidamente una firma dal tablet, questo progetto è perfetto. Puoi provare l'interfaccia prima di installarla sulla demo ufficiale.

Progetti correlati