Como criar arquivos PDF em Node.js
Criar arquivos PDF programaticamente no Node.js requer uma biblioteca que trate a renderização de HTML com precisão, suporte CSS moderno e se integre de maneira limpa com os padrões assíncronos do Node. IronPDF usa um motor de renderização baseado em Chromium para converter conteúdo HTML em PDFs que correspondem à saída de impressão do Chrome, suportando CSS completo, JavaScript embutido e layouts responsivos sem esforço.
Este guia cobre o fluxo de trabalho completo: instalação, geração de PDFs a partir de strings HTML, arquivos HTML e URLs, configuração de opções de saída e aplicação de recursos empresariais como cabeçalhos, rodapés, assinaturas digitais e criptografia.
Início Rápido: Crie um PDF no Node.js
- Instale IronPDF via npm:
npm install @ironsoftware/ironpdf - Importe
PdfDocumentde@ironsoftware/ironpdf - Chame
PdfDocument.fromHtml()com seu conteúdo HTML - Chame
.saveAs()para gravar o arquivo PDF no disco
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/quickstart.js
Configure IronPdfEngine para sua plataforma antes de rodar em produção. Veja o guia de configuração IronPdfEngine para instruções no Windows, Linux, macOS e Docker.
Fluxo de trabalho mínimo (5 etapas)
- Instale o IronPDF:
npm install @ironsoftware/ironpdf - Importe
PdfDocumentde@ironsoftware/ironpdf - Gere um PDF usando
PdfDocument.fromHtml(),PdfDocument.fromFile()ouPdfDocument.fromUrl() - Aplique configurações opcionais: tamanho do papel, margens, cabeçalhos, rodapés
- Salve a saída com
pdf.saveAs("output.pdf")
Como faço para instalar o IronPDF for Node.js?
Install the @ironsoftware/ironpdf package using npm. O pacote funciona com Node.js 12.0 ou superior e suporta formatos de módulo ESM e CommonJS.
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
//:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/install.sh
npm install @ironsoftware/ironpdf
O IronPDF for Node.js depende do binário IronPDF Engine, que lida com o rendering baseado em Chromium subjacente. O motor é baixado automaticamente na primeira execução, mas você pode pré-instalar o pacote específico da plataforma para evitar downloads em tempo de execução. Isso é útil em ambientes de rede restritos ou pipelines de CI baseados em Docker:
| Plataforma | Pacote |
|---|---|
| Windows x64 | @ironsoftware/ironpdf-engine-windows-x64 |
| Linux x64 | @ironsoftware/ironpdf-engine-linux-x64 |
| macOS x64 | @ironsoftware/ironpdf-engine-macos-x64 |
| macOS ARM | @ironsoftware/ironpdf-engine-macos-arm64 |
PdfDocument configurando IronPdfGlobalConfig.setConfig({ licenseKey: "YOUR-KEY" }). Siga as instruções completas de configuração da chave de licença.Quais são os requisitos de sistema para o IronPDF?
IronPDF for Node.js executa no Node.js 12.0 ou superior em ambientes Windows, Linux, macOS e Docker. A biblioteca suporta arquiteturas x64 e ARM64, tornando-a adequada para desenvolvimento local e implantações em contêiner. Para ambientes em nuvem, o IronPDF também suporta conexão a um IronPDF Engine remoto em vez de executar o motor localmente.
Como Eu Crio um PDF a partir de HTML no Node.js?
Use PdfDocument.fromHtml() para gerar um PDF a partir de uma string HTML. O método aceita qualquer HTML válido, incluindo blocos <style> inline, fontes externas carregadas via CDN, e sistemas de layout como CSS Grid ou Flexbox. O renderizador Chromium resolve todos os recursos antes de gerar o PDF.
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-string-to-pdf.js
PdfDocument.fromHtml() retorna uma instância PdfDocument. Chame saveAs() com seu caminho de saída desejado para gravar o arquivo. O método é assíncrono, então use await ou encadeie um manipulador .then(). O motor Chromium lida com carregamento de fontes, folhas de estilo externas e resolução de ativos antes de capturar a saída. Para mais padrões, veja o exemplo de string HTML para PDF.
Como Eu Crio um PDF a partir de um Arquivo HTML?
Carregue um arquivo .html existente do disco usando PdfDocument.fromFile(). Essa abordagem funciona bem para documentos com modelo onde o HTML é mantido separado da lógica da aplicação.
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/html-file-to-pdf.js
O renderizador resolve caminhos de ativos relativos a partir do diretório do arquivo HTML, para que referências locais de CSS e imagem funcionem sem configuração adicional. Veja o exemplo de arquivo HTML para PDF para opções adicionais, incluindo como substituir o URL base para resolução de ativos.
Como Eu Gero um PDF a partir de um URL?
Use PdfDocument.fromUrl() para renderizar uma página web ao vivo como um PDF. O renderizador carrega a página como uma sessão de navegador completa, executando JavaScript, aplicando CSS, e esperando por conteúdo dinâmico antes de capturar a saída.
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/url-to-pdf.js
Para páginas que carregam conteúdo assincronamente via JavaScript, emparelhe isso com uma opção renderDelay (em milissegundos) para permitir tempo adicional antes da captura. O exemplo de URL para PDF demonstra configuração de atraso e cabeçalhos de autenticação.
O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário.
Como Eu Configuro as Configurações de Saída do PDF?
Passe um objeto de configuração como o segundo argumento para PdfDocument.fromHtml(), PdfDocument.fromFile(), ou PdfDocument.fromUrl(). O objeto de configuração aceita tamanho do papel, margens, orientação e opções de renderização.
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/pdf-settings.js
Principais opções de configuração incluem:
paperSize: aceita valores de enumPdfPaperSize(A4, Letter, Legal, e tamanhos personalizados)landscape: definatruepara orientação de página paisagemprintBackground: inclua cores de fundo CSS e imagensmarginTop/Bottom/Left/Right: margens da página em milímetrosrenderDelay: milissegundos para esperar antes de capturar páginas pesadas de JavaScript
Como Eu Adiciono Cabeçalhos e Rodapés a um PDF?
Adicione cabeçalhos e rodapés fornecendo as propriedades htmlHeader e htmlFooter no objeto de configuração. Ambos aceitam strings HTML completas, permitindo conteúdo estilizado com números de página, datas e texto dinâmico.
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/headers-footers.js
Use os tokens {page} e {total-pages} no HTML do rodapé; O IronPDF substitui os valores corretos no momento da renderização. Para mais padrões de cabeçalhos e rodapés, incluindo cabeçalhos e rodapés em HTML e técnicas avançadas de cabeçalho, veja os exemplos vinculados.
Como Eu Adiciono Segurança e Metadados a um PDF?
Aplique proteção por senha e criptografia a um PDF gerado usando os métodos de segurança PdfDocument. A biblioteca suporta senhas de proprietário e usuário, com controles de permissão granulares para impressão, cópia e edição.
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/security.js
Criptografia e descriptografia usam criptografia AES 256 bits por padrão quando senhas são aplicadas. Para fluxos de autenticação de documentos, o IronPDF também suporta assinaturas digitais usando certificados X.509.
PdfDocument.fromHtml() seguido do método de conversão PDF/A. IronPDF suporta conformidade PDF/A e padrões de acessibilidade PDF/UA.Como faço para mesclar e manipular PDFs existentes?
PdfDocument fornece métodos para mesclar, dividir e modificar arquivos PDF existentes. Carregue um PDF existente com PdfDocument.fromFile() e use os métodos de manipulação para adicionar ou remover páginas, carimbar conteúdo ou substituir texto.
:path=/static-assets/pdf/content-code-examples/tutorials/nodejs-create-pdf/merge-pdfs.js
PdfDocument.mergePdf() aceita um array de instâncias PdfDocument e retorna um único documento mesclado. A ordem das páginas segue a ordem do array, portanto a saída preserva a sequência dos arquivos de entrada.
Outras operações de manipulação comuns:
- Remove a page from a PDF using
removePages() - Inserir conteúdo HTML em um documento existente
- Localizar e substituir texto em todas as páginas
- Extrair texto de um PDF para indexação ou processamento.
Para cenários de alto volume, a geração de PDFs multithread permite processar vários documentos em paralelo. A compressão de PDF reduz o tamanho dos arquivos para armazenamento e transmissão.
Como faço para gerar PDFs para conteúdo complexo, como gráficos e páginas Angular?
O IronPDF renderiza páginas usando uma sessão completa do navegador Chromium, o que significa que as bibliotecas JavaScript que produzem gráficos, tabelas ou visualizações de dados são renderizadas corretamente, incluindo bibliotecas de gráficos JavaScript . Aplicativos de página única criados com frameworks como o Angular também são convertidos sem problemas usando o exemplo de Angular para PDF .
Para documentos com uso intensivo de Unicode ou saída em vários idiomas, o IronPDF lida com Unicode e conjuntos de caracteres internacionais sem configuração adicional. O exemplo de integração do Google Fonts mostra como carregar fontes da web no HTML renderizado para obter tipografia consistente no PDF de saída.
renderDelay em milissegundos para dar tempo de a página renderizar completamente.Quais são os próximos passos para criar PDFs em Node.js?
Este guia abordou o fluxo de trabalho principal do IronPDF : instalação da biblioteca, geração de PDFs a partir de strings HTML, arquivos e URLs, configuração das definições de saída, adição de cabeçalhos e rodapés, aplicação de segurança e manipulação de PDFs existentes.
Para continuar, experimente o tutorial completo HTML to PDF para um passo a passo mais aprofundado das opções de renderização ou navegue na Referência de API para a lista completa de métodos PdfDocument e propriedades de configuração.
Comece sua avaliação gratuita para gerar PDFs sem marcas d'água ou veja as opções de licenciamento para implantações em produção.
Perguntas frequentes
Qual é a maneira mais fácil de criar arquivos PDF em Node.js?
Instale IronPDF com npm install @ironsoftware/ironpdf, depois chame PdfDocument.fromHtml() com sua string HTML e salve o resultado usando saveAs(). A biblioteca lida com toda a renderização automaticamente.
Como faço para instalar o IronPDF for Node.js?
Execute npm install @ironsoftware/ironpdf no diretório do seu projeto. O binário do IronPDF Engine é baixado automaticamente na primeira utilização. Para ambientes offline ou CI, instale o pacote do motor específico da plataforma, como @ironsoftware/ironpdf-engine-linux-x64, separadamente.
Posso converter HTML para PDF preservando os estilos CSS e a formatação?
Sim. O IronPDF usa um motor de renderização baseado em Chromium que preserva todos os estilos CSS, fontes externas e execução de JavaScript ao converter HTML para PDF. A saída corresponde ao comportamento da visualização de impressão do Chrome.
Quais recursos do PDF estão disponíveis além da conversão básica de HTML?
O IronPDF suporta assinaturas digitais, criptografia AES de 256 bits, proteção por senha com permissões granulares, cabeçalhos e rodapés personalizados com tokens de número de página, mesclagem de PDFs, remoção de páginas, marcação de HTML, extração de texto, conformidade com PDF/A e geração multithread.
Como posso criar um PDF a partir de um arquivo HTML no disco?
Use PdfDocument.fromFile('./path/to/template.html'). O renderizador resolve os caminhos de ativos relativos a partir do diretório do arquivo HTML, de modo que referências locais de CSS e imagens funcionam sem configuração adicional.
Posso extrair texto de arquivos PDF existentes usando IronPDF?
Sim. Carregue um PDF existente com PdfDocument.fromFile() e use os métodos de extração de texto para ler conteúdo de qualquer página. O IronPDF suporta tanto a criação de novos PDFs quanto o processamento de documentos existentes.
O IronPDF suporta execução de JavaScript ao renderizar HTML?
Sim. O renderizador Chromium executa JavaScript antes de capturar o PDF. Para páginas que carregam conteúdo de forma assíncrona, ajuste a opção renderDelay em milissegundos para dar mais tempo à página antes da captura.

