Como criar PDFs em Node.js usando PDFKit
PDFKit é uma biblioteca Node.js que torna mais fácil para os desenvolvedores criar e trabalhar com arquivos PDF. Ele oferece uma API direta, mas eficaz, para produzir PDFs e adicionar diferentes tipos de conteúdo a eles, como texto, imagens e formas.
Aprenda a usar o PDF Kit para criar PDFs em Node.js.
Configurando o PDFkit
Você deve ter Node.js e npm (o gerenciador de pacotes Node.js) instalados em sua máquina para acompanhar.
Certifique-se de ter essas ferramentas instaladas executando os seguintes comandos de terminal:
node -v
npm -v
Para começar a usar o PDFKit em seu projeto Node.js, instale-o executando o seguinte comando npm:
npm install pdfkit
Este comando irá instalar o PDFKit e adicioná-lo às dependências do seu projeto.
Criando um documento PDF com o PDFKit
Para criar um documento PDF usando o PDFKit, exija o pacote pdfkit e o módulo fs (sistema de arquivos) em seu arquivo de script:
const PDFDocument = require('pdfkit');
const fs = require('fs');
Em seguida, crie uma nova instância da classe PDFDocument . Esta classe representa um arquivo PDF:
const doc = new PDFDocument();
A instância criada é um fluxo legível, o que significa que você pode usar o método pipe() para salvar seu conteúdo em um arquivo.
Para fazer isso, canalize a instância do documento para um fluxo gravável criado por fs.createWriteStream :
doc.pipe(fs.createWriteStream('MyPDFDoc.pdf'));
O método createWriteStream salva o conteúdo de um arquivo PDF em um local especificado no sistema de arquivos local.
O bloco de código acima salvará o arquivo PDF resultante em seu diretório de trabalho atual, com o nome MyPDFDoc.pdf .
É importante sempre encerrar o fluxo após adicionar conteúdo ao PDF. Você pode fazer isso usando este comando:
doc.end();
Agora execute o comando node node [nome do script] para criar o arquivo PDF MyPDFDoc.pdf em seu diretório de trabalho atual.
Adicionando texto com PDFKit
Antes de canalizar seu documento para salvá-lo, você pode fazer várias alterações. O PDFKit simplifica a adição de texto aos documentos e inclui muitas opções para personalizar a exibição da saída.
Para adicionar texto ao documento, basta chamar o método text() e passar o texto que deseja adicionar como argumento:
doc.text("Coding is Easy!")
À medida que o PDFKIT adiciona texto ao documento, ele acompanha as posições X e Y atuais desse texto. Portanto, sempre que você chamar o método de texto, o PDFKit adicionará uma nova linha abaixo da anterior.
No entanto, ao fornecer as coordenadas X e Y para o método de texto após o próprio texto, você pode alterar sua posição:
doc.text('Coding is Easy!', 100, 100)
Para mover uma linha para cima ou para baixo, chame o método moveDown ou moveUp com o número de linhas que o texto deve mover:
doc.moveDown(3);
doc.moveUp();
Por padrão, chamar qualquer um dos métodos sem passar um argumento fará com que ele se mova apenas uma linha.
O PDFKit suporta cada uma das 14 fontes padrão definidas pelo formato PDF. A documentação de texto PDFKit tem uma lista completa dessas fontes padrão.
Use o método font() para especificar a fonte necessária. Basta passar o nome da fonte correspondente como uma string:
doc.font('Times-Roman')
.text('Coding is Easy!');
Você também pode alterar o tamanho da fonte e a cor do texto usando os métodos fontSize() e fillColor() , respectivamente.
Por exemplo:
// This changes the text color to red and gives it a font size of 8
doc.fillColor('red')
.fontSize(8)
.text('Coding is Easy!');
Adicionando imagens com o PDFKit
Para uma imagem em seu documento PDF, simplesmente passe seu caminho para o método image na instância do documento:
doc.image('path/to/image.jpeg')
PDFKit permite adicionar imagens em formato JPEG ou PNG.
Por padrão, o PDFKit inserirá a imagem em seu tamanho nativo. Você pode alterar as dimensões de uma imagem fornecendo um objeto contendo pares chave-valor como um argumento para o método image() . Você pode especificar uma largura, altura e alinhamento horizontal e vertical.
Por exemplo:
// Specifying the width alone
doc.image('path/to/image.jpg', { width: 300 });
// Specifying both the width and height
doc.image('path/to/image.jpg', { width: 300, height:200 })
Adicionando páginas com PDFKit
Para adicionar novas páginas ao documento PDF, basta chamar o método addPage na instância do documento:
doc.addPage()
Para adicionar conteúdo automaticamente toda vez que você adicionar uma nova página, use o evento pageAdded na instância do documento.
Por exemplo:
doc.on('pageAdded', () => doc.text("Coding is Easy!"));
O PDFKit permite especificar as dimensões da página ao criar um novo documento ou adicionar uma nova página a uma existente. Existem vários tamanhos de página predefinidos que a documentação em papel do PDFKit explica.
Para usar qualquer um desses tamanhos de página predefinidos, passe um objeto para o construtor PDFDocument ou para o método addPage() . Use a propriedade size para especificar uma string que é o nome do tamanho do papel.
Por exemplo:
// constructor
const doc = new PDFDocument({ size: 'A5' });
// addPage function
doc.addPage({ size: 'A7' });
Passar este objeto de opções para o construtor PDFDocument define o tamanho de página padrão para todo o documento. Você pode substituir esse padrão passando um valor diferente para o método addPage .
Você pode definir as margens da página passando um objeto para a propriedade margins ao adicionar páginas.
A propriedade margins pega um objeto com as propriedades top, bottom, left e right representando cada margem.
Por exemplo:
// Add different margins on each side
doc.addPage({
margins: {
top: 72,
bottom: 72,
left: 50,
right: 50
}
});
Esse código define as margens superior e inferior em 72 pontos e as margens esquerda e direita em 50 pontos. Observe que a margem padrão para documentos criados no PDFKit é uma margem de 1 polegada (72 pontos) em todos os lados.
Para definir todas as margens superior, inferior, esquerda e direita com o mesmo valor, simplesmente passe um objeto com uma propriedade de margem para o método addPage :
doc.addPage({ margin: 60 }) // add a 60 point margin to each side
As vantagens de criar PDFs com PDFKit no Node.js
O PDFKit permite que você produza documentos padrão e suportados de seus aplicativos Node.js. Com o PDFKit, você pode lidar facilmente com documentos complexos. Além disso, pode facilitar a entrega de documentos aos usuários e torná-los mais simples de compartilhar e imprimir.
Deixe um comentário