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 filePathstring 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 fileNamestring Nome do arquivo HTML.
contentUInt8Array | 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 filePathstring 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 fileNamestring Nome do arquivo de recurso.
contentUInt8Array | 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
addPageeaddPageContent. O PDF gerado será gravado no caminho especificado poroutputPath.Parameters:
Name Type Description outputPathstring Caminho do arquivo PDF de saída.