Introdução
O Netuno gera arquivos PDF com suporte a imagens, tabelas, fontes, e muito mais.
Através do recurso PDF que permite uma abstração low-code do iTextPDF para as diversas linguagens de programação suportas pelo Netuno.
A aplicação que vem com o Netuno denominada demo (aplicação de demonstração) contém bastantes exemplos das possíveis implementações de código em várias linguagens, incluindo a demonstração da exportação para PDF através do serviço export-pdf
que se localiza em:
/apps/demo/server/services/samples/groovy/export-pdf.groovy
/apps/demo/server/services/samples/javascript/export-pdf.js
/apps/demo/server/services/samples/kotlin/export-pdf.kts
/apps/demo/server/services/samples/python/export-pdf.py
/apps/demo/server/services/samples/ruby/export-pdf.rb
Inicialização
Em primeiro lugar é preciso criar o objeto que vai conter o contexto do novo documento que está sendo criado, por padrão o tamanho das páginas é o A4.
Ao criar o documento é definido onde ele será gerado.
Se nada for definido, ele será gerado na saída de dados do serviço, por exemplo:
const pdfDocument = _pdf.newDocument()
Se for gerar o documento em um novo arquivo, por exemplo:
const pdfDocument = _pdf.newDocument(_os.file('/tmp/file.pdf'))
Ou ainda no storage
da aplicação:
const pdfDocument = _pdf.newDocument(_storage.filesystem('server', 'file.pdf'))
Por padrão o documento é criado com o formato de página A4.
Formato de Página
Para customizar o formato da página basta idicar na criação do documento.
Cria um novo documento para a saída de dados do serviço com páginas no formato carta:
const pdfDocument = _pdf.newDocument(_pdf.pageSize("letter"))
Cria um novo documento para um arquivo na raíz da aplicação com o formato de página B3:
const pdfDocument = _pdf.newDocument(_app.file('file.pdf'), _pdf.pageSize("B3"))
Cria um novo documento no storage
da aplicação com o formato de página legal:
const pdfDocument = _pdf.newDocument(_storage.filesystem('server', 'file.pdf'), _pdf.pageSize("legal"))
Veja a documentação sobre a definição do tamanho das páginas.
Os documentos PDF podem ser criados com a definição do tamanho da página personalizado, para isso utilize o pageSize
passando o valor da largura e altura da página, por exemplo:
_pdf.pageSize(50, 30)
Quebra de Página
Para criar uma nova página é utilizado o areaBreak
:
pdfDocument.add(
_pdf.areaBreak()
)
Fechar e Salvar o Documento
O documento só é totalmente guardado ou gerado, apenas quando o método close
for chamado, da seginte forma:
pdfDocument.close()