Class: HtmlToPdf

@nginstack/engine/lib/print/HtmlToPdf~ HtmlToPdf


new HtmlToPdf()

Classe que permite gerar um PDF a partir de um HTML.

Atualmente a geração é realizada por meio do chrome-headless-shell, que é uma versão do Chrome sem interface gráfica voltada para automação e execução de testes. Uma versão considerada estável do chrome-headless-shell é descarregada e instalada automaticamente pelo sistema no primeiro uso da classe HtmlToPdf.

A implementação atual da classe HtmlToPdf é mais moderna e robusta que a anterior, baseada no wkhtmltopdf. A versão anterior ainda está disponível por meio do módulo @nginstack/engine/lib/print/WkHtmlToPdf.js, mas o seu uso é desencorajado. A implementação legada não recebe mais manutenção, estando sujeita a falhas de segurança e compatibilidade com novas funcionalidades do HTML e CSS. O módulo legado deve ser utilizado apenas nos casos onde o uso da nova implementação apresente incompatibilidades que não possam ser resolvidas com ajustes de HTML e CSS, e apenas de forma transitória, pois ele será removido em versões futuras do sistema.

Members


copies :number

Configura o número de copias das páginas a serem impressas no documento.

Type:
  • number

extraArguments :string

Argumentos adicionais de customização do documento impresso separados por espaço.

Esta é uma propriedade legada mantida apenas para fins de compatibilidade com códigos antigos que utilizam a implementação baseada no WkHtmlToPdf. São suportados apenas os seguintes argumentos:

  • --zoom n
  • --orientation landscape|portrait
  • --page-height n
  • --page-width n
  • --page-size a4|letter|legal|a3
  • -L n (margem esquerda)
  • -R n (margem direita)
  • -T n (margem superior)
  • -B n (margem inferior)
  • --footer-right [page]/[toPage]
  • --footer-font-size n
  • --footer-spacing n
  • --enable-local-file-access
  • --disable-smart-shrinking
Type:
  • string
Deprecated:
  • Yes

grayScale :boolean

Indica se deve imprimir em escala de cinza.

Type:
  • boolean

orientation :string

Configura a orientação da impressão em retrato ou paisagem. Valores possíveis: 'portrait' ou 'landscape'. O valor padrão é 'portrait'.

Type:
  • string

pageSize :string

Configura o tamanho da página. Valores possíveis: 'A4', 'A3', 'Letter' ou 'Legal'. O valor padrão é 'A4'.

Type:
  • string

timeout :number

Configura o tempo em milissegundos de espera para execução do comando de impressão. Se o processo de impressão não terminar dentro desse intervalo, ocorre um erro de "timeout". Por padrão se considera um tempo de espera de 3 minutos (180000 ms).

Type:
  • number

title :string

Configura título do PDF. Se vazio, a tag "title" da primeira página é utilizada como título.

Type:
  • string

Methods


addPage(filePath)

Adiciona uma página ao conjunto de impressão, informando o caminho do arquivo HTML.

Parameters:
Name Type Description
filePath string

Caminho do arquivo Html.

Example
const HtmlToPdf = require('@nginstack/engine/lib/print/HtmlToPdf.js');

 const pdf = new HtmlToPdf();
 pdf.addPage('./caminho/pagina.html');
 pdf.print('arquivo.pdf');

addPageContent(fileName, content)

Adiciona uma página ao conjunto de impressão, informando nome e conteúdo da página HTML. Utilize esse método quando a página for gerada pela aplicação e não existir em disco, ou quando for um arquivo da Virtual File System.

Parameters:
Name Type Description
fileName string

Nome do arquivo HTML.

content UInt8Array | ArrayBuffer | string

Conteúdo do arquivo HTML.

Example
const HtmlToPdf = require('@nginstack/engine/lib/print/HtmlToPdf');
const pdf = new HtmlToPdf();
pdf.addPageContent('test.html', htmlContent);
pdf.print('test.pdf');

addResource(filePath)

Adiciona um arquivo de recurso, como uma imagem ou arquivo CSS, no diretório temporário de geração do PDF, permitindo que ele possa ser referenciado pelas páginas HTML por meio do nome do arquivo.

Parameters:
Name Type Description
filePath string

Caminho do arquivo de recurso.

Example
const HtmlToPdf = require('@nginstack/engine/lib/print/HtmlToPdf.js');

 const pdf = new HtmlToPdf();
 pdf.addPage('./caminho/pagina.html');
 pdf.addResource('./caminho/imagem.png');
 pdf.print('arquivo.pdf');

addResourceContent(fileName, content)

Adiciona um arquivo de recurso, que será carregado por uma página HTML. Utilize esse método quando o recurso for gerado dinamicamente pela aplicação e não existir em disco, ou quando for um arquivo da Virtual File System.

Parameters:
Name Type Description
fileName string

Nome do arquivo de recurso.

content UInt8Array | ArrayBuffer | string

Conteúdo do arquivo de recurso.

Example
const HtmlToPdf = require('@nginstack/engine/lib/print/HtmlToPdf.js');

const pdf = new HtmlToPdf();
const htmlContent =
  '<html><head><link rel="stylesheet" href="style.css"></head>' +
  '<body>' +
  '<h1>Imagem de exemplo</h1><img src="image.jpeg">' +
  '</body>' +
  '</html>';
pdf.addPageContent('test.html', htmlContent);
pdf.addResourceContent('style.css', 'h1 { color: #4b6b3d; } img { max-width: 100%; }');
pdf.addResourceContent('image.jpeg', virtualFS.getFileContent(imageKey));
pdf.print('test.pdf');

print(outputPath)

Cria um PDF a partir das páginas HTML adicionadas previamente pelos métodos addPage e addPageContent. O PDF gerado será gravado no caminho especificado por outputPath.

Parameters:
Name Type Description
outputPath string

Caminho do arquivo PDF de saída.