Ir para o conteúdo principal

Perguntas

Posso imprimir um documento a partir da minha aplicação?

Sim, sem necessidade de instalar nada. Toda aplicação gerada inclui uma folha de estilo para impressão: um Ctrl+P, ou «Guardar como PDF», produz uma página A4 isenta da navegação, em preto sobre branco, independentemente do tema visível no ecrã. O estado de síntese vai mais longe: traz um botão «Imprimir» determinístico, as suas áreas coloridas sólidas são reproduzidas com fidelidade e as suas quebras de página nunca cortam uma linha de montante ao meio. O que deve saber, contudo: o PDF é gerado pelo navegador, não por uma biblioteca integrada, logo, não há modelo de fatura com a sua cabeça de carta, nem envio automático por correio eletrónico. Esta página explica exatamente o que sai da impressora, e o que não sai.

O que existe em todas as aplicações: uma folha A4 limpa

A folha de estilo para impressão não é uma opção a ativar: está escrita diretamente na folha de estilo de cada aplicação gerada e aplica-se exclusivamente à impressão, o renderizado no ecrã mantém-se idêntico ao carater, sem exceção. O seu funcionamento resume-se a quatro ações. Define o formato como A4, com margens de impressão legíveis. Remove do papel tudo o que não deve ser impresso: a barra lateral de navegação, a barra superior, o rodapé da sessão, o selo Blueprint e qualquer elemento marcado como não imprimível, o próprio botão «Imprimir» está nessa lista, pelo que nunca aparece na saída final.

Em seguida, força o fundo a branco e a tinta a preto, independentemente do tema ativo no momento da impressão: uma aplicação exibida em modo escuro não gera uma página negra, e o contraste é garantido sem consumir tinta desnecessariamente. Por fim, o ponto menos visível, mas mais útil, devolve à interface o comportamento de um documento. No ecrã, a aplicação ocupa toda a altura da janela e faz deslocar o conteúdo no seu interior; na impressão, esse mecanismo geraria uma página truncada à altura da primeira tela. As regras neutralizam-no: a altura acompanha o conteúdo, e uma lista de quarenta linhas imprime-se em tantas páginas quantas forem necessárias.

O estado de síntese: um documento entregável, com o seu botão

Uma secção de estado de síntese, um resumo numérico, um documento estruturado por rubricas, destina-se, por natureza, ao papel ou ao PDF. Por isso, inclui um botão «Imprimir», posicionado de forma determinística pelo gerador, sem dependências nem chamadas à rede: aciona a função de impressão do navegador e esconde-se automaticamente na saída impressa. O documento é adaptado em conformidade: a sombra projetada desaparece, os cantos arredondados tornam-se retos, a largura passa a ocupar toda a página e o deslocamento horizontal interno é desativado, para que nada fique fora dos limites do papel.

Dois pormenores distinguem um documento verdadeiro de uma simples captura de ecrã. Primeiro, os planos de cor, faixa de cabeçalho, linha de total, subtotais, são reproduzidos com fidelidade, embora os navegadores os tornem brancos por defeito ao imprimir: sem esta regra, a linha de total perderia precisamente aquilo que a distingue das restantes. Segundo, as quebras de página são controladas: uma linha de montante nunca é dividida entre duas folhas, e um título de rubrica nunca fica órfão no fundo da página, acompanha sempre as linhas que anuncia.

O PDF vem do navegador, e essa é uma escolha intencional

Nenhuma biblioteca de geração de PDF está integrada na aplicação entregue: o PDF é aquele produzido pela caixa de diálogo de impressão do seu navegador, através da opção «Guardar como PDF». Esta escolha tem implicações em ambos os sentidos, e é preferível conhecê-las. Pelo lado positivo: funciona sem ligação à internet, não tem custos, não acrescenta dependências a manter e funciona tanto num telemóvel como num computador. Pelo lado menos favorável: trata-se de uma ação manual, não existe um botão «enviar o PDF ao cliente», e o cabeçalho, o rodapé e o nome do ficheiro são definidos pelos parâmetros do navegador, não pela aplicação.

Para documentos com linhas, um resumo de encomenda, um estado detalhado, o gerador sabe produzir o respetivo layout sempre que a estrutura dos seus dados o justifique: um registo principal, linhas associadas e um montante por linha que seja RECALCULADO a partir dos campos dessa mesma linha. Este último ponto não é mero requinte: um montante recalculado em cada visualização não pode divergir dos seus componentes, ao passo que um montante armazenado não tem nada contra o que ser verificado. Quando a estrutura é ambígua, o gerador abstém-se antes de produzir um documento incorreto, é preferível não ter documento algum a ter um que minta.

O que isto não substitui

Sejamos claros: isto não é um módulo de faturação. Não há modelo de fatura com a sua cabeça de carta, nem numeração legal, nem menções obrigatórias inseridas automaticamente, nem envio ao cliente, e uma fatura eletrónica, no sentido regulamentar, não é, de todo, um PDF, mas sim um formato estruturado transmitido através de uma plataforma certificada, tema abordado numa pergunta específica. O que a impressão cobre é outra necessidade, a do dia a dia: produzir uma folha legível para entregar, afixar na oficina, levar para uma obra ou arquivar.

Para circular dados em vez de papel, cada lista inclui ainda um botão de exportação para CSV, que exporta as linhas visíveis e mostra o respetivo número no botão. E se surgir a necessidade real de um gerador de PDF, um modelo com a sua identidade visual, numeração, envio automático, continua a ser possível adicioná-lo: o código entregue é um projeto Next.js e Prisma convencional, inteiramente seu, e um programador pode integrar nele o que for necessário. Não é fornecido «pronto a usar»; é, simplesmente, viável, algo que não acontece com ferramentas fechadas.

Para saber mais

Perguntas relacionadas

Gerar uma aplicação que imprima de forma limpa