Ferramentas de visualização de PDF para 2022
No mundo digital de hoje, é crucial ter a capacidade de converter páginas da web ou documentos HTML em arquivos PDF. Isso pode ser útil para gerar relatórios, criar faturas ou simplesmente compartilhar informações em um formato mais apresentável. Neste artigo, vamos explorar como converter páginas HTML em PDF usando Node.js e Puppeteer, uma biblioteca de código aberto desenvolvida pelo Google.
Introdução ao Puppeteer
Puppeteer é uma poderosa biblioteca Node.js que permite aos desenvolvedores controlar navegadores sem interface gráfica, principalmente o Google Chrome ou o Chromium, e executar diversas ações como extração de dados da web, captura de tela e geração de PDFs. O Puppeteer oferece uma API abrangente para interagir com o navegador, tornando-o uma excelente opção para converter HTML em PDF.
Por que Puppeteer?
- Facilidade de uso: O Puppeteer oferece uma API simples e fácil de usar que abstrai as complexidades de trabalhar com navegadores sem interface gráfica.
- Poderoso: O Puppeteer oferece amplas funcionalidades para manipular páginas web e interagir com elementos do navegador.
- Escalável: Com o Puppeteer, você pode facilmente escalar seu processo de geração de PDF executando várias instâncias do navegador em paralelo.
Configurando seu projeto Node.js
Antes de começarmos, você precisará configurar um novo projeto Node.js. Siga estes passos para começar:
- Instale o Node.js se ainda não o fez (você pode baixá-lo no site do Node.js).
- Crie uma nova pasta para o seu projeto e abra-a no Visual Studio Code ou em qualquer outro editor de código específico.
-
Execute
npm initpara criar um novo arquivopackage.jsonpara o seu projeto. Siga as instruções e preencha as informações solicitadas.
-
Instale o Puppeteer executando
npm install puppeteer.
Agora que nosso projeto está configurado, vamos mergulhar no código.
Carregando modelo HTML e convertendo para arquivo PDF
Para converter modelos HTML em um arquivo PDF usando o Puppeteer, siga estes passos:
Crie um arquivo chamado "HTML To PDF.js" na pasta.
Importando Puppeteer e fs
const puppeteer = require('puppeteer');
const fs = require('fs');
O código começa importando duas bibliotecas essenciais: puppeteer, uma ferramenta versátil para controlar navegadores sem cabeça como Chrome e Chromium, e fs, um módulo embutido do Node.js para lidar com operações de sistema de arquivos. O Puppeteer permite automatizar uma ampla gama de tarefas baseadas na web, incluindo renderização de HTML, captura de telas e geração de arquivos PDF.
Definindo a função exportWebsiteAsPdf
async function exportWebsiteAsPdf(html, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: true // Launches the browser in headless mode
});
// Create a new page
const page = await browser.newPage();
// Set the HTML content for the page, waiting for DOM content to load
await page.setContent(html, { waitUntil: 'domcontentloaded' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
A função exportWebsiteAsPdf serve como o núcleo de nosso trecho de código. Esta função assíncrona aceita uma string html e um outputPath como parâmetros de entrada e retorna um arquivo PDF. A função executa os seguintes passos:
- Inicia uma nova instância de navegador sem interface gráfica usando o Puppeteer.
- Cria uma nova página no navegador.
- Define a string
htmlfornecida como o conteúdo da página, aguardando o carregamento do conteúdo do DOM. - Emula o tipo de mídia 'tela' para aplicar o CSS usado para telas em vez de estilos específicos para impressão.
- Gera um arquivo PDF a partir do conteúdo HTML carregado, especificando margens, impressão de fundo e formato (A4).
- Fecha a instância do navegador.
- Retorna o arquivo PDF criado.
Utilizando a função exportWebsiteAsPdf
// Usage example
// Get HTML content from HTML file
const html = fs.readFileSync('test.html', 'utf-8');
// Convert the HTML content into a PDF and save it to the specified path
exportWebsiteAsPdf(html, 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
A última seção do código ilustra como usar a função exportWebsiteAsPdf. Realizamos os seguintes passos:
- Leia o conteúdo HTML de um arquivo HTML usando o método
readFileSyncdo módulofs. - Chame a função
exportWebsiteAsPdfcom a stringhtmlcarregada e ooutputPathdesejado. - Utilize um bloco
.thenpara lidar com a criação bem-sucedida do PDF, registrando uma mensagem de sucesso no console. - Empregue um bloco
.catchpara gerenciar quaisquer erros que ocorram durante o processo de conversão de HTML para PDF, registrando uma mensagem de erro no console.
Este trecho de código fornece um exemplo abrangente de como converter um modelo HTML em um arquivo PDF usando Node.js e Puppeteer. Ao implementar essa solução, você pode gerar PDFs de alta qualidade de forma eficiente, atendendo às necessidades de diversas aplicações e usuários.

Converter URLs em arquivos PDF
Além de converter modelos HTML, o Puppeteer também permite converter URLs diretamente em arquivos PDF.
Importando Puppeteer
const puppeteer = require('puppeteer');
O código começa importando a biblioteca Puppeteer, que é uma ferramenta poderosa para controlar navegadores sem interface gráfica, como o Chrome e o Chromium. O Puppeteer permite automatizar uma variedade de tarefas baseadas na web, incluindo a renderização do seu código HTML, a captura de screenshots e, no nosso caso, a geração de arquivos PDF.
Definindo a função exportWebsiteAsPdf
async function exportWebsiteAsPdf(websiteUrl, outputPath) {
// Create a browser instance
const browser = await puppeteer.launch({
headless: true // Launches the browser in headless mode
});
// Create a new page
const page = await browser.newPage();
// Open the URL in the current page
await page.goto(websiteUrl, { waitUntil: 'networkidle0' });
// To reflect CSS used for screens instead of print
await page.emulateMediaType('screen');
// Download the PDF
const PDF = await page.pdf({
path: outputPath,
margin: { top: '100px', right: '50px', bottom: '100px', left: '50px' },
printBackground: true,
format: 'A4',
});
// Close the browser instance
await browser.close();
return PDF;
}
A função exportWebsiteAsPdf é o núcleo de nosso trecho de código. Esta função assíncrona aceita um websiteUrl e um outputPath como seus parâmetros de entrada e retorna um arquivo PDF. A função executa os seguintes passos:
- Inicia uma nova instância de navegador sem interface gráfica usando o Puppeteer.
- Cria uma nova página no navegador.
- Navega até o
websiteUrlfornecido e aguarda que a rede fique inativa usando a opçãowaitUntildefinida comonetworkidle0. - Emula o tipo de mídia 'tela' para garantir que o CSS usado para telas seja aplicado em vez de estilos específicos para impressão.
- Converte a página web carregada em um arquivo PDF com as margens, impressão de fundo e formato (A4) especificados.
- Fecha a instância do navegador.
- Retorna o arquivo PDF gerado.
Utilizando a função exportWebsiteAsPdf
// Usage example
// Convert the URL content into a PDF and save it to the specified path
exportWebsiteAsPdf('https://ironpdf.com/', 'result.pdf').then(() => {
console.log('PDF created successfully.');
}).catch((error) => {
console.error('Error creating PDF:', error);
});
A seção final do código demonstra como usar a função exportWebsiteAsPdf. Executamos os seguintes passos:
- Chame a função
exportWebsiteAsPdfcom owebsiteUrldesejado eoutputPath. - Use um bloco
thenpara lidar com a criação bem-sucedida do PDF. Neste bloco, registramos uma mensagem de sucesso no console. - Use um bloco
catchpara lidar com quaisquer erros que ocorram durante o processo de conversão de site para PDF. Se ocorrer um erro, registramos uma mensagem de erro no console.
Integrando este trecho de código em seus projetos, você pode converter URLs em arquivos PDF de alta qualidade usando Node.js e Puppeteer sem esforço.

Melhor Biblioteca HTML Para PDF para Desenvolvedores C
Explore o IronPDF , uma biblioteca .NET popular usada para gerar, editar e extrair conteúdo de arquivos PDF. Oferece uma solução simples e eficiente para criar PDFs a partir de HTML, texto, imagens e documentos PDF existentes. O IronPDF é compatível com projetos .NET Core, .NET Framework e .NET 5.0+, tornando-se uma opção versátil para diversas aplicações.
Principais características do IronPDF
Conversão de HTML para PDF com o IronPDF : O IronPDF permite converter conteúdo HTML, incluindo CSS, em arquivos PDF. Este recurso permite criar documentos PDF com precisão de pixels a partir de páginas da web ou modelos HTML.
Renderização de URL: O IronPDF pode buscar páginas da web diretamente de um servidor usando uma URL e convertê-las em arquivos PDF, facilitando o arquivamento de conteúdo da web ou a geração de relatórios a partir de páginas da web dinâmicas.
Fusão de texto, imagem e PDF: O IronPDF permite mesclar texto, imagens e arquivos PDF existentes em um único documento PDF. Essa funcionalidade é particularmente útil para criar documentos complexos com múltiplas fontes de conteúdo.
Manipulação de PDF: O IronPDF oferece ferramentas para editar arquivos PDF existentes, como adicionar ou remover páginas, modificar metadados ou até mesmo extrair texto e imagens de documentos PDF.
Conclusão
Em conclusão, gerar e manipular arquivos PDF é um requisito comum em muitas aplicações, e ter as ferramentas certas à disposição é crucial. As soluções apresentadas neste artigo, como usar Puppeteer com Node.js ou IronPDF com .NET, oferecem métodos poderosos e eficientes para converter conteúdo HTML e URLs em documentos PDF profissionais e de alta qualidade.
O IronPDF, em particular, destaca-se pelo seu extenso conjunto de recursos, tornando-se uma das principais opções para desenvolvedores .NET . O IronPDF oferece um período de teste gratuito que permite explorar suas funcionalidades.
Os usuários também podem se beneficiar do pacote Iron Suite , um conjunto de cinco bibliotecas profissionais .NET , incluindo IronXL , IronPDF , IronOCR e outras.




