Perché un rettangolo nero non è sufficiente

La maggior parte degli strumenti PDF consente agli utenti di "oscurare" il testo disegnando un rettangolo nero sopra le parti sensibili. Il rettangolo nasconde le parole sullo schermo, ma i caratteri sottostanti rimangono nel flusso di contenuto del file. Chiunque può selezionare il testo nascosto, copiarlo o eseguire un semplice script per estrarlo. In altre parole, i dati sono ancora presenti; il rettangolo nero è solo una copertura visiva.

Il problema affrontato dallo sviluppatore

L'autore aveva bisogno di un editor PDF che funzionasse interamente nel browser, senza caricare i file su un server. Questo vincolo rende impossibile fare affidamento su un servizio back-end per rimuovere il testo. Le attuali soluzioni lato client si limitano ad aggiungere una forma sopra il contenuto, lasciando intatto il testo originale. La sfida consisteva nel rimuovere il testo in modo permanente, mantenendo l'operazione veloce e il documento utilizzabile.

Rasterizzazione selettiva delle pagine: l'idea centrale

Invece di convertire l'intero PDF in un'immagine — un passaggio che aumenterebbe eccessivamente la dimensione del file e distruggerebbe la funzione di ricerca — la soluzione rasterizza solo le pagine che contengono le oscurazioni. Queste pagine diventano bitmap; tutte le altre rimangono PDF vettoriali, preservando la selezione del testo, la ricerca e le dimensioni ridotte del file.

L'approccio produce un documento che appare normale: 19 pagine rimangono nitide e ricercabili, mentre l'unica pagina sensibile è un'immagine composta solo da pixel in cui le informazioni nascoste non esistono più.

Tre regole pratiche per una conversione affidabile

  1. Renderizzare a tre volte la scala – La bitmap viene generata con una risoluzione tre volte superiore a quella normale della pagina. Un rendering a bassa risoluzione appare sfocato accanto alle pagine vettoriali circostanti, il che può destare sospetti o apparire semplicemente poco professionale.
  2. Fondere tutti gli elementi visivi nella bitmap – Annotazioni, firme, filigrane e il rettangolo di oscuramento vengono composti insieme prima che la pagina venga rasterizzata. Mescolare annotazioni vettoriali con un'immagine raster sulla stessa pagina può confondere i lettori PDF, causando errori di visualizzazione.
  3. Ancorare alla viewport, non ai pixel – Le annotazioni sono legate alle coordinate della viewport della pagina. Quando un utente zooma, gli elementi rimangono allineati invece di spostarsi o scalare in modo incoerente, il che altrimenti esporrebbe il testo sottostante.

Protezione contro le race condition

Il rendering di ogni pagina è un compito asincrono. Se un utente ridimensiona rapidamente la finestra del browser, più processi di rendering possono sovrapporsi, producendo frame corrotti o sovrapposti sulla canvas. L'implementazione introduce un token di rendering per pagina: ogni nuova richiesta di rendering invalida il token precedente, causando l'annullamento del compito più vecchio. Il risultato è un'esperienza fluida e senza glitch, anche in caso di rapidi cambiamenti dell'interfaccia utente.

Quali sono i compromessi

Trasformare una pagina in una bitmap rimuove qualsiasi testo nascosto, ma elimina anche la possibilità di cercare o copiare il contenuto di quella pagina.

Possibili sviluppi futuri

In sintesi

Un semplice rettangolo nero non elimina i dati; li nasconde soltanto. Convertendo in bitmap ad alta risoluzione solo le pagine che necessitano di oscuramento e lasciando il resto del PDF basato su vettori, un editor che funziona solo nel browser può cancellare permanentemente il testo sensibile mantenendo il documento veloce, ricercabile e privato. Il metodo bilancia sicurezza e usabilità, ma gli utenti dovrebbero prestare attenzione all'impatto cumulativo sulla dimensione del file e sulla ricercabilità quando oscurano molte pagine.