Ao preencher um formulário em PDF e enviá-lo para alguém, o destinatário ainda poderá apagar suas entradas, alterar suas respostas ou excluir anotações — a menos que você primeiro "achate" o documento. O achatamento mescla todas as camadas interativas (aparência dos widgets do formulário, sobreposições de anotações, carimbos de assinatura digital) no fluxo de conteúdo estático da página. O resultado é um PDF sem objetos editáveis: nenhum campo de formulário para apagar, nenhuma camada de anotações para ocultar, nenhuma maneira de alterar o que você escreveu. Este é o passo correto antes de arquivar um contrato assinado, preencher um formulário governamental ou enviar uma inscrição concluída — não apenas cobrindo os campos visualmente, mas removendo a capacidade de edição da própria estrutura do PDF.
O LuraPDF oferece dois modos distintos de achatamento para atender a diferentes requisitos de saída. O achatamento vetorial utiliza a biblioteca pdf-lib para percorrer os fluxos de conteúdo das páginas do PDF, mesclar os fluxos de aparência dos widgets na página e remover as anotações e os objetos AcroForm. O resultado é um PDF com a camada de texto intacta — todo o texto permanece selecionável, pesquisável e copiável, e o tamanho do arquivo geralmente é menor que o original. O achatamento raster adota uma abordagem diferente: o pdf.js renderiza cada página em uma tela em alta resolução, e a biblioteca pdf-lib grava cada imagem renderizada como um JPEG ou PNG de página inteira incorporado em um novo PDF. Cada anotação, campo de formulário, gráfico e aparência de fonte é capturado na renderização de pixels — o que você vê é exatamente o que a saída contém. Isso garante fidelidade visual em todos os visualizadores, mas sacrifica a capacidade de pesquisa de texto. Ambos os modos são executados inteiramente no seu navegador — nada é carregado.