@hostaqui/pdf-maker
v1.1.0
Published
[](https://github.com/HOSTAQUI/pdf.maker/actions/workflows/build.yml) [ de forma programática, utilizando o poder do Puppeteer.
✨ Tecnologias
- TypeScript: Para um código mais seguro e manutenível.
- Puppeteer: Para controle do browser e geração do PDF.
- Handlebars: Para geração de PDFs a partir de templates.
- Jest: Para garantir a qualidade e o funcionamento dos testes.
- ESLint & Prettier: Para manter o código limpo e padronizado.
📦 Instalação
Para instalar o pacote, utilize o seguinte comando:
npm install @hostaqui/pdf-maker
# ou
yarn add @hostaqui/pdf-makerSe você for utilizar o handler de Handlebars, precisará instalar a dependência manualmente:
npm install handlebars
# ou
yarn add handlebars🚀 Como Usar
A função principal da biblioteca é a render. Ela é flexível e permite gerar um PDF de diferentes fontes.
Gerando PDF a partir de um HTML
Você pode fornecer o conteúdo HTML diretamente como uma string.
import { render } from '@hostaqui/pdf-maker';
import { writeFileSync } from 'fs';
async function generatePdfFromHtml() {
const htmlContent =
'<h1>Olá, Mundo!</h1><p>Este é um PDF gerado a partir de um HTML.</p>';
const pdfBuffer = await render({
handler: 'html',
options: {
content: htmlContent,
// Opcional: passe as opções do Puppeteer aqui
pdf: {
format: 'A4',
printBackground: true,
},
},
});
writeFileSync('meu-pdf.pdf', pdfBuffer);
}
generatePdfFromHtml();Gerando PDF a partir de uma URL
Basta fornecer a URL da página que você deseja converter para PDF.
import { render } from '@hostaqui/pdf-maker';
import { writeFileSync } from 'fs';
async function generatePdfFromUrl() {
const pdfBuffer = await render({
handler: 'url',
options: {
url: 'https://google.com',
// Opcional: passe as opções do Puppeteer aqui
pdf: {
landscape: true,
},
},
});
writeFileSync('meu-pdf-da-url.pdf', pdfBuffer);
}
generatePdfFromUrl();Gerando PDF a partir de um template Handlebars
Você pode usar templates Handlebars para gerar PDFs dinâmicos.
import { render } from '@hostaqui/pdf-maker';
import { writeFileSync } from 'fs';
async function generatePdfFromHandlebars() {
const template =
'<h1>Olá, {{nome}}!</h1><p>Seu pedido de número {{pedidoId}} foi confirmado.</p>';
const data = {
nome: 'Gabriel',
pedidoId: '12345',
};
const pdfBuffer = await render({
handler: 'handlebars',
options: {
content: template,
data: data,
// Opcional: passe as opções do Puppeteer aqui
pdf: {
format: 'Letter',
},
},
});
writeFileSync('meu-pdf-dinamico.pdf', pdfBuffer);
}
generatePdfFromHandlebars();⚙️ API de Métodos
render(options: RenderOptions): Promise<Buffer>
Esta é a função principal e exportada. Ela recebe um objeto de opções e retorna uma Promise que resolve com o Buffer do PDF gerado.
RenderOptions
🤝 Como Contribuir
Contribuições são sempre bem-vindas! Siga os passos abaixo para contribuir:
- Fork este repositório: Crie uma cópia do projeto na sua conta do GitHub.
- Clone o seu fork:
git clone https://github.com/hostaqui/pdf.maker.git - Crie uma branch para sua feature:
git checkout -b minha-nova-feature - Instale as dependências:
npm install - Faça suas alterações: Implemente sua nova funcionalidade ou correção.
- Execute os testes:
npm run test - Faça o commit das suas alterações: Utilize o padrão de Conventional Commits. Ex:
feat: Adiciona suporte para EJSoufix: Corrige problema de renderização de imagens. - Envie para a sua branch:
git push origin minha-nova-feature - Abra um Pull Request: Crie um Pull Request para a branch
maindo repositório original.
📜 Licença
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
✨ Créditos
Este projeto é mantido pela HOSTAQUI e foi desenvolvido por Gabriel Hijazi.
