Como imprimir para salvar como PDF a partir de uma linha de comando com Chrome ou Chromium

Como imprimir para salvar como PDF a partir de uma linha de comando com Chrome ou Chromium

Posso imprimir no destino "Salvar como PDF" a partir de uma linha de comando com o Chrome ou o Chromium? Gostaria de poder converter automaticamente arquivos HTML em PDF com a funcionalidade integrada do Chrome.

Responder1

Em vez de acessar um navegador inteiro, por que não usar o mecanismo de renderização HTML apenas para fazer o trabalho? Usarwkhtmltopdfpara realizar a conversão.

wktohtml

Você também pode converter um site existente em PDF

$ wkhtmltopdf http://google.com google.pdf

Nota: tecnicamente, o mecanismo de renderização do Google Chrome é o Blink, que é um fork do Webkit. Há mais de 90% de código comum entre Blink e Webkit, então você deve obter um resultado semelhante.

Responder2

O Chrome foi iniciadosem cabeçaprograma.

Com isso, podemos criar um pdf. por exemplo, para Windows, navegue em sua linha de comando para

C:\Users\{{your_username}}\AppData\Local\Google\Chrome SxS\Application>

Em seguida, aperte o comando:

chrome --headless --print-to-pdf="d:\\{{path and file name}}.pdf" https://google.com

Responder3

Você deve estar usando o Google Chrome/Chromium 59 ou versão posteriore está disponível apenas para usuários de MAC OS e Linux.

*Os usuários do Windows ainda precisam esperar algum tempo até a versão 60*

Comando:

$ google-chrome --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

$ chromium-browser --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

Referência: https://developers.google.com/web/updates/2017/04/headless-chrome

EDITAR:O Google Chrome/Chromium 60 foi lançado para usuários do Windows.

Uso de comando no CMD:

C:\Program Files\Google\Chrome\Application> chrome.exe --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

Nome do seu arquivo PDFarquivo1.pdfserá salvo em

"C:\Arquivos de programas ou (x86)\Google\Chrome\Application\60.0.3112.113 (versão do Chrome)\file1.pdf"

Responder4

Eu escrevi um pequeno script wrapper para Chrome{,ium} headless, chamadohtml2pdf.
Ghostscript existe para reduzir o tamanho do arquivo e selecionar um intervalo de páginas:

#!/bin/sh -eu
in=$1 out=$2 page0=${3:-} page1=${4:-$page0}
${CHROME:-chromium} --headless --disable-gpu \
    --run-all-compositor-stages-before-draw --print-to-pdf-no-header \
    --print-to-pdf="$out" "$in"
GS_ARGS=
if [ -n "$page0" ]; then
        GS_ARGS="-dFirstPage=$page0 -dLastPage=$page1"
fi
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH $GS_ARGS -sOutputFile="$2.tmp" "$2"
mv "$2.tmp" "$2"

Exemplo de uso:

html2pdf https://ucm.dev/resume.html ucm.pdf 1

informação relacionada