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.
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
"/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.