Introdução
O pdfmake é uma biblioteca JavaScript pura para geração de PDFs, que pode ser utilizada tanto no lado do cliente quanto no sevridor. Embora não forneça uma API dedicada para campos de formulário, é possível criar documentos PDF que permitem a inserção de conteúdo interativo, como caixas de texto e caixas de seleção, através da configuração cuidadosa de permissões e layout.
Configuração Inicial
Para começar, é necessário instalar o pdfmake. O repositório pode ser clonado e as dependências instaladas com npm:
git clone https://exemplo.com/pdfmake-repo
cd pdfmake-repo
npm install
O código principal reside no diretório src, com o arquivo src/Printer.js sendo responsável pela randerização e geração do PDF.
Controle de Permissões para Documentos Interativos
A chave para criar PDFs preenchíveis está na configuração das permissões do documento. Ao definir a permissão preencherFormularios como verdadeira, os usuários poderão adicionar e modificar conteúdo interativo em visualizadores de PDF compatíveis.
var configuracao = {
senhaProprietario: 'senha-forte-123',
permissoes: {
impressao: 'altaResolucao',
modificacao: false,
copia: false,
anotacoes: true,
preencherFormularios: true,
acessibilidade: true,
montagem: true
},
conteudo: [
'Este documento PDF permite interações do usuário.',
'Adicione anotações ou preencha os campos disponíveis.'
]
};
var geradorPdf = pdfmake.createPdf(configuracao);
geradorPdf.write('documentos/formulario-interativo.pdf');
Design de Layout para Formulários
Utilize tabelas e estilos para estruturar visualmente os campos do formulário. Embora os campos não sejam nativos, bordas e margens podem simular áreas de entrada.
var estrutura = {
conteudo: [
{ text: 'Formulário de Cadastro', estilo: 'cabecalho' },
{
estilo: 'tabela',
tabela: {
corpo: [
['Nome:', { texto: '', borda: [false, false, false, true] }, 'CPF:', { texto: '', borda: [false, false, false, true] }],
['Data de Nascimento:', { texto: '', borda: [false, false, false, true] }, 'Telefone:', { texto: '', borda: [false, false, false, true] }],
['Endereço:', { texto: '', coluna: 3, borda: [false, false, false, true] }, '', '']
]
},
disposicao: 'semBordas'
},
{ text: 'Preencha os campos acima e salve o arquivo.', estilo: 'subcabecalho' }
],
estilos: {
cabecalho: { tamanhoFonte: 18, negrito: true, margem: [0, 0, 0, 10] },
subcabecalho: { tamanhoFonte: 14, negrito: true, margem: [0, 10, 0, 5] },
tabela: { margem: [0, 5, 0, 15] }
}
};
Recursos Avançados: Assinatura Digital
Para documentos que exigem validação, adicione uma seção de assinatura. Isso complementa a funcionalidade de formulário, garantindo a intgeridade do documento.
var documento = { conteudo: [ 'Conteúdo do contrato ou documento formal...', { texto: 'Área de Assinatura', estilo: 'assinatura' }, { texto: '________________________', alinhamento: 'centro' }, { texto: 'Assinatura', alinhamento: 'centro', margem: [0, 0, 0, 20] } ], estilos: { assinatura: { tamanhoFonte: 14, negrito: true, margem: [0, 40, 0, 5] } } };
<h2>Solução de Problemas Comuns</h2>
- O PDF gerado não permite preenchimento: Verifique se a permissão
preencherFormulariosestá ativada e utilize um visualizador de PDF que suporte interatividade, como o Adobe Acrobat Reader. - Limitar preenchimento a áreas específicas: Use layouts com grades e dicas visuais claras para guiar o usuário.
- Definir campos de formulário predefinidos: O pdfmake atualmente não suporta campos nativos, mas estilos podem simular a aparência, combinados com permissões adequadas.