Cómo imprimir para guardar como PDF desde una línea de comando con Chrome o Chromium

Cómo imprimir para guardar como PDF desde una línea de comando con Chrome o Chromium

¿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.

wktohtml

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

información relacionada