
¿Puedo imprimir en el destino "Guardar como PDF" desde una línea de comando con Chrome o Chromium? Me gustaría poder convertir automáticamente archivos html a PDF con la funcionalidad integrada de Chrome.
Respuesta1
En lugar de abrir un navegador web completo, ¿por qué no utilizar el motor de renderizado HTML sólo para hacer el trabajo? Usarwkhtmltopdfpara realizar la conversión.
También puede convertir un sitio web existente a PDF
$ wkhtmltopdf http://google.com google.pdf
Nota: técnicamente el motor de renderizado de Google Chrome es Blink, que es una bifurcación de Webkit. Hay >90% de código común entre Blink y Webkit, por lo que debería obtener un resultado similar.
Respuesta2
Chrome ha comenzadosin cabezaprograma.
Con eso, podemos crear un pdf. por ejemplo, para Windows, navegue por su línea de comandos hasta
C:\Users\{{your_username}}\AppData\Local\Google\Chrome SxS\Application>
Luego presione el comando:
chrome --headless --print-to-pdf="d:\\{{path and file name}}.pdf" https://google.com
Respuesta3
Debes utilizar Google Chrome/Chromium 59 o una versión posteriorY solo está disponible para usuarios de MAC OS y Linux.
*Los usuarios de Windows todavía tienen que esperar algún tiempo hasta la versión 60*
Dominio :
$ 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/
Referencia : https://developers.google.com/web/updates/2017/04/headless-chrome
EDITAR :Google Chrome/Chromium 60 se ha implementado para usuarios de Windows.
Uso de comandos en CMD:
C:\Program Files\Google\Chrome\Application> chrome.exe --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/
El nombre de su archivo pdfarchivo1.pdfse salvará en
"C:\Archivos de programa o (x86)\Google\Chrome\Application\60.0.3112.113 (versión Chrome)\file1.pdf"
Respuesta4
Escribí un pequeño script contenedor para Chrome{,ium} sin cabeza, llamadohtml2pdf.
Ghostscript está ahí para reducir el tamaño del archivo y seleccionar un rango 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"
Uso de ejemplo:
html2pdf https://ucm.dev/resume.html ucm.pdf 1