Ir para o conteúdo do rodapé
AJUDA DO NODE

JsdomNPM (Como funciona para desenvolvedores)

Ao combinar JSDOM e IronPDF no Node.js, os programadores têm acesso a um conjunto de ferramentas abrangente para criar e modificar documentos PDF. Uma implementação em JavaScript puro do DOM da W3C, chamada JSDOM, possibilita manipular documentos HTML e XML no lado do servidor de maneira semelhante ao que é possível em um navegador. Por outro lado, o IronPDF usa APIs simples do Node.js para facilitar a criação de PDFs de alta qualidade a partir de conteúdo HTML.

A combinação de JSDOM e IronPDF permite que os desenvolvedores transformem facilmente páginas da web em PDFs dentro de seus aplicativos Node.js , alterem PDFs preexistentes e criem documentos PDF a partir de modelos HTML em tempo real. Essa combinação é uma ótima opção para projetos que exigem recursos robustos de criação de PDFs, pois não só garante a conformidade com as tecnologias web atuais, como também acelera as operações de geração de documentos.

O que é JSDOM NPM?

JSDOM NPM (Node Package Manager) é uma biblioteca JavaScript que permite usar o Node.js para analisar e trabalhar com documentos HTML. Ele oferece um ambiente semelhante a um navegador dentro do Node.js e suporta o DOM (Document Object Model) da W3C. Como resultado, você pode manipular as características e o conteúdo de documentos HTML e XML programaticamente. Você pode até simular ações como cliques e envios de formulários.

JSDOM NPM (Como funciona para desenvolvedores): Figura 1

O JSDOM é muito útil para atividades como a criação de relatórios em HTML, o teste e a verificação de sites online e a extração de dados da web (web scraping). Ao trabalhar com páginas HTML em um ambiente de servidor, onde as funções padrão do navegador não estão disponíveis, isso ajuda os desenvolvedores. O pacote JSDOM NPM preenche a lacuna entre a funcionalidade do navegador do lado do cliente e o JavaScript do lado do servidor, lidando com a manipulação e interação de HTML em aplicações Node.js

Graças à implementação de diversas funcionalidades robustas para a web, o JSDOM em Node.js é uma ferramenta útil para desenvolvedores que trabalham em ambientes de servidor com documentos HTML e XML. As principais características do JSDOM são as seguintes:

Implementação DOM da W3C

O JSDOM oferece uma implementação abrangente em JavaScript de muitas das especificações DOM e HTML da W3C. Isso permite que você use APIs DOM conhecidas para manipular programaticamente documentos HTML e XML.

Ambiente semelhante a um navegador

Como o JSDOM imita um ambiente de navegador dentro do Node.js, você pode manipular páginas HTML da mesma forma que faria se o JavaScript estivesse sendo executado em um navegador. Isso abrange o trabalho com o modelo de objeto de documento, o gerenciamento de eventos, a execução de scripts e o acesso e alteração de itens.

Apoio a normas

São suportados os padrões modernos da web, incluindo HTML5, CSS3 e os recursos mais recentes do JavaScript . Isso garante a compatibilidade com a maioria dos conteúdos da web e possibilita manipular e analisar páginas complexas com precisão.

Análise sintática e serialização

O JSDOM pode analisar strings HTML e convertê-las em estruturas DOM, e os nós DOM podem ser serializados de volta em strings HTML. Isso permite a execução de scripts dentro da página e nos possibilita editar e gerar saída HTML atualizada a partir de páginas da web.

Configuração personalizável

O JSDOM pode ser configurado para imitar muitas funcionalidades relacionadas ao navegador, incluindo o processamento de recursos externos (como carregar scripts externos e executar scripts ou folhas de estilo externos), alternar entre diferentes mecanismos JavaScript (como V8 ou SpiderMonkey) e muito mais.

Integração com estruturas de teste

JSDOM é uma ferramenta popular para escrever testes unitários e testes de integração, incluindo manipulação do DOM, em frameworks de teste como Jest e Mocha. Isso possibilita testar aplicativos da web sem interface gráfica, sem a necessidade de um ambiente de navegador completo.

Acessibilidade e compatibilidade

É adequado para aplicações que precisam estar em conformidade com os padrões de acessibilidade, pois possui recursos de acessibilidade como compatibilidade com leitores de tela e suporte para propriedades ARIA.

Integração do ecossistema Node.js

JSDOM funciona bem com outras bibliotecas e com o ecossistema Node.js em geral. Ele pode ser usado, por exemplo, em conjunto com pacotes como o Puppeteer para atividades mais complexas de extração de dados da web e automação, ou com o Cheerio para análise eficiente de HTML.

Criar e configurar JSDOM Node.js

Os passos abaixo podem ser usados ​​para construir e configurar o JSDOM em uma aplicação Node.js :

Instale o JSDOM

Primeiro, certifique-se de que o npm e o Node.js estejam instalados no seu computador. O npm pode ser usado para instalar o JSDOM:

npm install jsdom
npm install jsdom
SHELL

Uso básico do JSDOM

Este é um exemplo simples de como configurar um ambiente JSDOM e trabalhar com um documento HTML:

const { JSDOM } = require('jsdom');

// Example HTML content
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
  <title>JSDOM Example</title>
</head>
<body>
  <div id="content">
    <p>Hello, JSDOM!</p>
  </div>
</body>
</html>
`;

// Create a JSDOM instance
const dom = new JSDOM(htmlContent);

// Access and manipulate the DOM
const document = dom.window.document;
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = '<p>Hello, modified JSDOM!</p>';

// Serialize the modified DOM back to HTML
const modifiedHtml = dom.serialize();
console.log(modifiedHtml);
const { JSDOM } = require('jsdom');

// Example HTML content
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
  <title>JSDOM Example</title>
</head>
<body>
  <div id="content">
    <p>Hello, JSDOM!</p>
  </div>
</body>
</html>
`;

// Create a JSDOM instance
const dom = new JSDOM(htmlContent);

// Access and manipulate the DOM
const document = dom.window.document;
const contentDiv = document.getElementById('content');
contentDiv.innerHTML = '<p>Hello, modified JSDOM!</p>';

// Serialize the modified DOM back to HTML
const modifiedHtml = dom.serialize();
console.log(modifiedHtml);
JAVASCRIPT

JSDOM NPM (Como funciona para desenvolvedores): Figura 2

Opções de configuração

O construtor JSDOM aceita opções que você pode fornecer para personalizar diferentes partes de sua funcionalidade. Estas são algumas opções típicas de configuração:

Ele regula como scripts e folhas de estilo de recursos externos devem ser carregados pela API de objetos JSDOM. Decida se os scripts no HTML analisado devem ser executados pelo JSDOM. Permite que scripts em execução dentro do JSDOM tenham sua saída do console capturada. Simula o ambiente visual de um navegador, o que pode ter impacto em diversos cálculos de CSS e layout.

Esta é uma ilustração de como configurar o código JSDOM usando opções.

const { JSDOM } = require('jsdom');

const htmlContent = '<!DOCTYPE html><html><body><p>Hello, JSDOM!</p></body></html>';

const options = {
  resources: 'usable', // Load external resources (e.g., scripts, stylesheets)
  runScripts: 'dangerously', // Allow scripts to run
};

const dom = new JSDOM(htmlContent, options);

// Access the document and window objects
const document = dom.window.document;
const window = dom.window;

// Manipulate the DOM or interact with the window object here
console.log(document.documentElement.outerHTML); // Output the modified HTML
const { JSDOM } = require('jsdom');

const htmlContent = '<!DOCTYPE html><html><body><p>Hello, JSDOM!</p></body></html>';

const options = {
  resources: 'usable', // Load external resources (e.g., scripts, stylesheets)
  runScripts: 'dangerously', // Allow scripts to run
};

const dom = new JSDOM(htmlContent, options);

// Access the document and window objects
const document = dom.window.document;
const window = dom.window;

// Manipulate the DOM or interact with the window object here
console.log(document.documentElement.outerHTML); // Output the modified HTML
JAVASCRIPT

Uso avançado

Em situações mais complexas, como conectar código de teste com frameworks de teste ou emular interações do usuário, o JSDOM também pode ser aplicado. Aqui está uma ilustração de como usar JSDOM e Jest para testes:

const { JSDOM } = require('jsdom');

test('modifying DOM with JSDOM', () => {
  const dom = new JSDOM('<!DOCTYPE html><html><body><p>Hello, JSDOM!</p></body></html>');
  const document = dom.window.document;
  const contentParagraph = document.querySelector('p');

  // Assert initial content
  expect(contentParagraph.textContent).toBe('Hello, JSDOM!');

  // Modify content
  contentParagraph.textContent = 'Hello, modified JSDOM!';

  // Assert modified content
  expect(contentParagraph.textContent).toBe('Hello, modified JSDOM!');
});
const { JSDOM } = require('jsdom');

test('modifying DOM with JSDOM', () => {
  const dom = new JSDOM('<!DOCTYPE html><html><body><p>Hello, JSDOM!</p></body></html>');
  const document = dom.window.document;
  const contentParagraph = document.querySelector('p');

  // Assert initial content
  expect(contentParagraph.textContent).toBe('Hello, JSDOM!');

  // Modify content
  contentParagraph.textContent = 'Hello, modified JSDOM!';

  // Assert modified content
  expect(contentParagraph.textContent).toBe('Hello, modified JSDOM!');
});
JAVASCRIPT

Começando

Para que o IronPDF e o JSDOM funcionem em Node.js, é necessário combinar essas bibliotecas para converter informações HTML em documentos PDF. O JSDOM permite que você trabalhe com documentos HTML usando programação, enquanto o IronPDF facilita a conversão de HTML para PDF. Aqui está um manual prático para você começar.

O que é o IronPDF for Node.js?

IronPDF for Node.js produz documentos PDF de qualidade superior a partir de texto HTML. Ao mesmo tempo que preserva a integridade do conteúdo original da web, facilita o processo de conversão de HTML, CSS e JavaScript em PDFs totalmente formatados. Aplicações web que precisam gerar documentos dinâmicos e imprimíveis, como relatórios, faturas e certificados, podem achar essa ferramenta especialmente útil.

Entre as muitas funcionalidades que o IronPDF oferece, estão configurações de página ajustáveis, cabeçalhos, rodapés e a capacidade de incorporar imagens e fontes. Para garantir que os PDFs gerados estejam de acordo com o design pretendido, permite layouts e estilos complexos. Além disso, o IronPDF gerencia a execução de JavaScript dentro do HTML, permitindo a renderização precisa de material dinâmico e interativo.

JSDOM NPM (Como funciona para desenvolvedores): Figura 3

Funcionalidades do IronPDF

Geração de PDF a partir de HTML

Converter JavaScript, HTML e CSS para PDF. Suporta consultas de mídia e design responsivo, dois padrões web contemporâneos. Útil para decorar dinamicamente documentos PDF, relatórios e faturas usando HTML e CSS.

Edição de PDF

É possível adicionar texto, imagens e outros conteúdos a PDFs preexistentes ou, alternativamente, extrair texto e imagens desses arquivos PDF. Combine vários PDFs em um único arquivo. Divida arquivos PDF em vários documentos separados. Inclua marcas d'água, anotações, cabeçalhos e rodapés.

Desempenho e confiabilidade

Alto desempenho e confiabilidade são qualidades desejáveis ​​em projetos de ambientes industriais. O IronPDF gerencia grandes conjuntos de documentos com facilidade.

Instale o IronPDF

Instale o pacote IronPDF para obter as ferramentas necessárias para trabalhar com PDFs em projetos Node.js.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Converter HTML para PDF usando JSDOM e IronPDF

Prepare o material HTML para ser convertido em PDF. A título de exemplo:


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example Document</title>
  <style>
    body {
      font-family: Arial, sans-serif;
    }
    .content {
      margin: 20px;
    }
  </style>
</head>
<body>
  <div class="content">
    <h1>Hello, JSDOM with IronPDF!</h1>
    <p>This is a sample HTML document converted to PDF using JSDOM and IronPDF.</p>
  </div>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example Document</title>
  <style>
    body {
      font-family: Arial, sans-serif;
    }
    .content {
      margin: 20px;
    }
  </style>
</head>
<body>
  <div class="content">
    <h1>Hello, JSDOM with IronPDF!</h1>
    <p>This is a sample HTML document converted to PDF using JSDOM and IronPDF.</p>
  </div>
</body>
</html>
HTML

Crie um script Node.js chamado convertToPdf.js que analise o conteúdo HTML usando JSDOM e crie um PDF usando IronPDF.

const { JSDOM } = require('jsdom');
const IronPdf = require("@ironsoftware/ironpdf");
const fs = require('fs');

// Configure IronPDF with the license key (if applicable)
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' });

// Load the HTML content from the file
const htmlContent = fs.readFileSync('example.html', 'utf8');

// Create a JSDOM instance and parse the HTML
const dom = new JSDOM(htmlContent);
const jdocument = dom.window.document;

// Convert the HTML to PDF
IronPdf.PdfDocument.fromHtml(jdocument.documentElement.outerHTML).then((pdfres) => {
  const filePath = `${Date.now()}.pdf`;
  pdfres.saveAs(filePath).then(() => {
    console.log('PDF saved successfully!');
  }).catch((e) => {
    console.log(e);
  });
});
const { JSDOM } = require('jsdom');
const IronPdf = require("@ironsoftware/ironpdf");
const fs = require('fs');

// Configure IronPDF with the license key (if applicable)
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' });

// Load the HTML content from the file
const htmlContent = fs.readFileSync('example.html', 'utf8');

// Create a JSDOM instance and parse the HTML
const dom = new JSDOM(htmlContent);
const jdocument = dom.window.document;

// Convert the HTML to PDF
IronPdf.PdfDocument.fromHtml(jdocument.documentElement.outerHTML).then((pdfres) => {
  const filePath = `${Date.now()}.pdf`;
  pdfres.saveAs(filePath).then(() => {
    console.log('PDF saved successfully!');
  }).catch((e) => {
    console.log(e);
  });
});
JAVASCRIPT

JSDOM NPM (Como funciona para desenvolvedores): Figura 4

Carregar conteúdo HTML a partir de um banco de dados, arquivo ou conteúdo criado dinamicamente. Para criar um documento PDF a partir do conteúdo HTML analisado, use o IronPDF. A string HTML é aceita pela função RenderHtmlAsPdf do IronPDF, que então retorna uma Promise com os dados do PDF. Utilizando o módulo de sistema de arquivos (fs) do Node.js, o IronPDF cria o documento PDF como um buffer (pdfBuffer), que pode ser salvo em um arquivo. O tratamento de erros garante resiliência em caso de problemas, como HTML corrompido ou dificuldades de rede, durante a criação de PDFs.

JSDOM NPM (Como funciona para desenvolvedores): Figura 5

Conclusão

Para criar documentos PDF de alta qualidade a partir de informações HTML de forma programática, o JSDOM oferece uma opção confiável. Com o JSDOM, os desenvolvedores podem interagir com elementos do DOM e editar informações dinamicamente, facilitando a análise e manipulação de páginas HTML em um ambiente de navegador simulado. Essa funcionalidade é essencial para tarefas como extração de dados, geração de relatórios dinâmicos e web scraping.

Com seus recursos robustos para converter textos HTML em PDFs, que oferecem controle preciso sobre layout, paginação, cabeçalhos, rodapés e outros recursos específicos de PDF, o IronPDF é um ótimo complemento para o JSDOM. Isso facilita a conversão de estruturas HTML complexas de aplicativos Node.js diretamente em arquivos PDF prontos para impressão.

A combinação de JSDOM e IronPDF permite que os desenvolvedores criem documentos PDF a partir de modelos HTML ou informações geradas dinamicamente de forma automática. Isso torna os documentos úteis para uma variedade de casos de uso, como a produção de relatórios, certificados, faturas e muito mais. Essa integração atende de forma eficiente aos requisitos exclusivos de aplicativos centrados em documentos dentro do ecossistema Node.js , utilizando os pontos fortes de ambas as bibliotecas para melhorar a produtividade e preservar a fidelidade dos documentos.

IronPDF e Iron Software permitem ampliar as capacidades do seu kit de ferramentas de desenvolvimento .NET com OCR, leitura de código de barras, criação de PDFs, integração com o Excel e outros recursos. O IronPDF combina os sistemas e o conjunto de ferramentas altamente configuráveis ​​da Iron Software com seu suporte principal para fornecer aos desenvolvedores aplicativos e recursos online adicionais, bem como um desenvolvimento mais eficiente, tudo por apenas $799 na edição básica.

Quando as opções de licenciamento são claras e adaptadas ao projeto, os desenvolvedores podem selecionar o modelo ideal com maior facilidade. Essas funcionalidades auxiliam os desenvolvedores a resolver uma ampla gama de problemas de maneira simples, eficaz e bem integrada.

Darrius Serrant
Engenheiro de Software Full Stack (WebOps)

Darrius Serrant é bacharel em Ciência da Computação pela Universidade de Miami e trabalha como Engenheiro de Marketing WebOps Full Stack na Iron Software. Atraído por programação desde jovem, ele via a computação como algo misterioso e acessível ao mesmo tempo, tornando-a o meio ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim