web-dev-qa-db-fra.com

options supplémentaires dans Chrome headless print-to-pdf

J'ai besoin d'aide une fois de plus. J'essaye d'imprimer une page en pdf en utilisant la fonction sans tête du chrome. Cependant, l'en-tête et le pied de page sont présents dans le pdf. J'ai trouvé que cette option avait été implémentée dans Devtools.

https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF

Cependant, je ne trouve pas comment utiliser ces options dans l'interface de ligne de commande. Est-il également possible d'invoquer les Devtools à partir de sélénium?

De plus, comment puis-je appeler Page.PrintToPDF dans les outils de développement. J'ai essayé d'exécuter la commande dans la console. Il montre que la page est indéfinie. 

18
user2580925

Ajoutez ce CSS à la page que vous créez dans un PDF pour supprimer l'en-tête et le pied de page implémentés de Chrome Headless.

CSS:

@media print {
  @page { margin: 0; }
  body { margin: 1.6cm; }
}

Vous devez formater votre commande comme ci-dessous pour créer le PDF:

"C:\PATH\TO\CHROME\EXECUTABLE\FILE", "--headless","--disable-gpu","--print-to-pdf=" + directory path to where you want the file to go followed by the desired file name/fileName.pdf,"--no-margins", "the path to the file you want turned into a pdf"

Exemple 1:

C:\chrome-win/chrome --headless --disable-gpu --print-to-pdf=C:\user\fileName.pdf --no-margins C:\Projects\index.html

Exemple 2:

Vous pouvez également tester cette fonctionnalité en naviguant dans votre ligne de commande jusqu'au dossier contenant le fichier exécutable de Chrome et en exécutant cette commande:

chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/

edit: faute de frappe fixe

8
nuccio

"/path/to/google-chrome": il s'agit du chemin d'accès de Google Chrome.

'—headless ': navigateur Chrome dans un environnement sans interface graphique sans l'interface utilisateur complète du navigateur

'—run-all-compositor-stages-before-draw': il empêche la création de pdf avant que toutes les données soient rendues (après que toutes les données soient restituées, le pdf sera créé).

'—virtual-time-budget = x: Cela retarde le processus de création de PDF, ici x sera les millisecondes.

'—print-to-pdf': Ce drapeau crée le pdf de l'URL donnée.

URL: l'URL de la page Web.

Formatage de page PDF (avec CSS) Ajout de ceci (aux fichiers css):

 @media print {
            @page { margin: 0mm 0mm 0mm 0mm;
            size:8in 9.5in;
            }
            }

Le code CSS ci-dessus n'a aucun effet sur le rendu de la page Web, mais affecte le formatage de la page dans PDF uniquement.

0
Ayaz Ur Rashid