Quando si compila un modulo PDF e lo si invia a qualcuno, il destinatario può comunque cancellare i dati inseriti, modificare le risposte o eliminare le annotazioni, a meno che non si appiattisca prima il documento. L'appiattimento unisce tutti i livelli interattivi (aspetto dei widget del modulo, sovrapposizioni di annotazioni, timbri di firma digitale) al flusso di contenuto statico della pagina. Il risultato è un PDF senza oggetti modificabili: nessun campo del modulo da cancellare, nessun livello di annotazione da nascondere, nessun modo per modificare ciò che si è scritto. Questo è il passaggio corretto prima di archiviare un contratto firmato, presentare un modulo governativo o inviare una domanda completa: non si tratta solo di coprire visivamente i campi, ma di rimuovere la loro modificabilità dalla struttura stessa del PDF.
LuraPDF offre due distinte modalità di appiattimento per soddisfare diverse esigenze di output. L'appiattimento vettoriale utilizza pdf-lib per analizzare i flussi di contenuto delle pagine del PDF, unire i flussi di aspetto dei widget alla pagina e rimuovere le annotazioni e gli oggetti AcroForm. Il risultato è un PDF con il livello di testo intatto: tutto il testo rimane selezionabile, ricercabile e copiabile, e le dimensioni del file sono spesso inferiori a quelle dell'originale. L'appiattimento raster adotta un approccio diverso: pdf.js renderizza ogni pagina su una tela ad alta risoluzione e pdf-lib riscrive ogni immagine renderizzata come JPEG o PNG a pagina intera incorporata in un nuovo PDF. Ogni annotazione, campo modulo, elemento grafico e aspetto del font viene catturato nel rendering dei pixel: ciò che vedi è esattamente ciò che contiene l'output. Questo garantisce la fedeltà visiva su tutti i visualizzatori, ma a scapito della ricerca del testo. Entrambe le modalità vengono eseguite interamente nel browser: non viene caricato alcun file.