Comment convertir une page Web en PDF en préservant son aspect (exactement comme sur un navigateur Web) et son texte / liens?

24

Je cherche un moyen de convertir une page Web en PDF, mais en préservant l'aspect de la page Web. Préservant également le texte de la page Web (pouvant être sélectionné), consultable [La génération d'une capture d'écran d'image pour la page Web rendrait le texte ni sélectionnable ni consultable].

Je cherche à imprimer la page Web au format PDF telle quelle (comme sur le navigateur Web) sans aucune manipulation sur le style ou l'alignement, ni perte de composants statiques d'une page Web.

Cela aiderait à préserver les copies hors ligne de pages Web qui sont facilement lisibles, annotables et consultables.


Vous n'avez pas besoin de lire ci-dessous (la question est juste la section ci-dessus) pour obtenir ma question. La section suivante énumère simplement ce que j'ai obtenu grâce à la recherche ou aux réponses des autres de manière imbriquée afin d'obtenir une réponse à la question.

Résultats de recherche (suggestions qui n'ont pas résolu mon problème)

Résultats jusqu'à présent sur la recherche d'une solution (Tous ne fonctionnent toujours pas comme solution à cette question)

J'ai essayé ces moteurs d'impression Web PDF mais tous manipulent l'apparence des pages, encore plus dommageables et rendant certaines à peine lisibles: (Des exemples de captures d'écran de pages sont inclus entre crochets)

  • Chrome [ Original , styles d'impression ( désactivé | non désactivé )]
  • Firefox [ Original , styles d'impression (désactivé p1 , p2 | non désactivé p1 , p2 )]
  • Lisibilité
    • Cela simplifie la page Web (ce qui est une bonne chose pour une lecture ciblée - mais ce n'est pas ce que je recherche). Je cherche à conserver toutes les propriétés de positions / styles de la page Web comme on le voit sur le navigateur Web au format PDF sans aucune manipulation.
  • Foxit Reader
  • NovaPDF
  • CutyCapt [ Original , facteur de zoom: 0.4 : captures d'écran, PDF généré]
    • J'ajouterai des liens après avoir résolu les problèmes de fonctionnement du programme sous Windows "
  • wkhtmltopdf [ Original , facteur de zoom: 0,4 : captures d'écran , PDF généré ]
    • Il ne prend pas en charge CSS3.

Tous les plugins de capture d'image de capture d'écran de page Web (par exemple, Abduction , Awesome Screenshot , Fireshot , Firefox Screenshot Developer Tool , Full Page Screen Capture , Page2Images , web-capture , ...) ne répondent pas à ma question, car ils ne conservent pas le texte et liens .

Scrible est excellent pour préserver les pages Web, comme c'est le cas pour d'autres annotations et recherches, mais malheureusement toujours en ligne et sans conversion au format PDF.

Il y a deux autres questions sur la communauté similaires à la mienne, cependant, celle-ci est un peu différente mais avec ces distinctions importantes:

Plus de questions similaires où la préservation du texte et des liens n'est pas une exigence (les pages sont capturées sous forme de captures d'écran d'images principalement):


Remarques

Système d'exploitation: Windows 10

Omar
la source
Si vous souhaitez imprimer à partir d'un navigateur, vous devez d'abord désactiver toutes les feuilles de style d'impression pour conserver l'apparence de l'écran de la page Web.
DavidPostill
Voir Comment obtenir WYSIWYP (imprimer ce que vous voyez) dans un navigateur Web? . Voir ma réponse à cette question.
DavidPostill
Ensuite, vous pouvez imprimer à l'aide de l' enregistreur CutePDF .
DavidPostill
@DavidPostill Il semble que la désactivation des styles d'impression ne fonctionne pas ou n'affecte pas le navigateur pour afficher correctement le PDF. Un exemple de captures d'écran a été ajouté à la version modifiée de la question.
Omar
J'ai eu la même question aujourd'hui et cette page m'a aidé (bien que la sortie soit une version mobile de la page): stackoverflow.com/questions/9540990/…
MicroMachine

Réponses:

7

Nous avons rencontré le même problème dans un projet universitaire et avons pu le résoudre en utilisant

wkhtmltopdf

Nous avons beaucoup apprécié les capacités de cet outil en ligne de commande. Nous l'avons également appelé en utilisant du code python pour rendre l'état actuel des pages Web. Il a la possibilité de livrer la page Web au format PDF, généralement pas parfait pour conserver la vue du site Web en raison du formatage de la page (A4 par exemple), ou au format PNG (préserve la vue de la page mais pas les liens)

Il y a aussi le projet de lisibilité (pour Python: pypi.python.org/pypi/readability-lxml) que nous avons utilisé qui fait assez bien la suppression des publicités et la détection de contenu (par exemple pour les articles de journaux et autres). Si vous voulez juste un addon ou une extension pour votre navigateur, l'implémentation de lisibilité suivante pourrait satisfaire votre besoin:

https://www.readability.com/addons/

sebisnow
la source
Malheureusement, wkhtmltopdf n'a pas conservé la position des éléments de la page. Page d'exemple : Facteur de zoom: 0.4: Captures d'écran , PDF généré
Omar
La lisibilité simplifie la page (ce qui est une bonne chose, mais ce n'est pas ce que je recherche). J'ai besoin de conserver toutes les propriétés de position / style de la page comme vu sur le navigateur Web au format PDF sans aucune manipulation.
Omar
Avez-vous utilisé l'option wkhtmltopng de l'outil, comme png les positions devraient être correctes (au moins beaucoup mieux que dans la version pdf où la page est ajustée au format A4)
sebisnow
3

Contribuer une autre réponse pour les utilisateurs potentiels. Dans Firefox, il existait auparavant un module complémentaire "Imprimer les pages au format PDF". Vous pouvez rechercher sa dernière version 0.1.9.3 (travail uniquement sur les versions pré-Quantum).

Actuellement, il y a cet addon pour Chrome et Firefox qui fonctionne assez bien: PDFMage

  • Enregistrer toutes les images dans la page
  • Générez du texte en tant que texte, pas en tant qu'image, vous pouvez rechercher du texte dans un PDF généré.
  • Liens hypertexte de conservation
  • A la possibilité d'enregistrer une longue page Web au format PDF d'une page (afin que les images ne soient pas divisées entre les pages)
nmhung1985
la source
2

J'ai vraiment eu du mal avec cela et j'ai essayé la plupart des outils mentionnés jusqu'à présent. Les meilleurs résultats que j'ai obtenus étaient en utilisant le mode sans tête de Chrome. La commande sur MacOS ressemblerait à ceci:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --headless --print-to-pdf=test.pdf http://127.0.0.1:8080

La meilleure liste d'options de ligne de commande que j'ai trouvée était ici .

Cependant, cela a posé des problèmes. Plus précisément, mes pages sont très lourdes en javascript et je ne pouvais pas attendre que la fonction d'impression attende la fin de l'exécution. Donc, ma sortie ne contenait pas les images.

La solution que j'ai trouvé un paquet NodeJS: chrome-headless-render-pdf. Sa documentation limitée est ici . Cela fonctionne et il est facilement scriptable.

AlanObject
la source
2

J'ai eu le même problème et je l'ai résolu via Chrome et avec un pilote d'imprimante gratuit appelé PDF995. Cela fait partie d'une suite d'utilitaires PDF; le site Web de l'éditeur est http://www.pdf995.com/ .

Cependant, je pense que tout navigateur Web et tout convertisseur PDF suffiront. Bref, voici ce que j'ai fait:

  1. sélectionnez tout ou mettez tout en surbrillance.
  2. Cliquez avec le bouton droit sur la sélection en surbrillance ou appuyez sur Ctrl + P (les deux options vous donnent des résultats légèrement différents, mais vous vous retrouvez avec le même résultat une fois terminé).

  3. Si vous avez fait un clic droit sur 2., la sélection (le raccourci), cliquez sur "imprimer" et seulement tout ce que vous avez sélectionné sera sur l'aperçu avant impression. Assurez-vous de changer la destination de votre imprimante pour le convertisseur pdf que vous décidez d'utiliser (PDF995 ou autre).

  4. Cliquez sur "imprimer" et il enregistre en tant que document pdf.

  5. Si vous avez appuyé sur Ctrl + P en 2. (la manière légèrement plus longue) à la place, cliquez sur "Plus de paramètres" et faites défiler jusqu'à "Options".

  6. Cliquez sur la case qui dit "Sélection uniquement" et tout dans le raccourci que j'ai décrit suivra.

  7. N'oubliez pas de changer la destination de votre imprimante pour le convertisseur pdf que vous choisissez (PDF995 ou autre).

  8. Cliquez sur "imprimer".

user726167
la source
1

Si vous êtes sous Linux, essayez ce petit outil en ligne de commande CutyCapt , qui ne dépend que de Qt et QtWebkit, et exporte au format PDF.

Ziggy Crueltyfree Zeitgeister
la source
0

Bien que ce ne soit pas exactement votre demande car non en PDF, si l'objectif est purement de conserver une copie hors ligne des pages Web pour un examen ultérieur, l'enregistrer en tant que page Web ferait exactement cela.

La grande mise en garde est qu'il créera un fichier .html et un dossier avec tout le contenu multimédia de la page plutôt qu'un seul document.

Dans Chrome et Firefox, vous pouvez enregistrer une page en faisant un clic droit dessus et en choisissant Enregistrer sous ... Dans Internet Explorer, vous pouvez l'enregistrer sous Fichier -> Enregistrer sous (en appuyant sur la touche Alt pour que les menus apparaissent).

Pyheme
la source
L'enregistrement de la page Web au format .html la rendrait non annotable. Donc, j'en ai besoin au format PDF.
Omar
C'est un bon point! Je viens de me souvenir d'une extension qui vous permet de désactiver facilement les feuilles de style liées à l'impression. Une recherche rapide sur Google m'a conduit à la discussion lorsque j'en ai entendu parler pour la première fois, sur Superutilisateur: Comment obtenir WYSIWYP (imprimer ce que vous voyez) dans un navigateur Web?
Pyheme
J'ai essayé de faire "Enregistrer sous" en utilisant Chrome. Il crée un fichier .HTML et un dossier. Le fichier .HTLM manquait beaucoup de choses sur la page.
SherlockSpreadsheets
0

Essayez ce service. Crée un PDF à partir d'un site Web tel que vous le voyez dans le navigateur. https://lomotoh.com/ (je suis affilié à ce site)

David Herse
la source
Cela préserve les liens, mais pas le texte sélectionnable, ce qui est une exigence de la question.
fixer1234
Semble être sélectionnable pour certains sites. Je pense que cela dépend du type de police personnalisée que le site utilise.
David Herse
0

Au moins tout le texte de certaines pages est consultable, sélectionnable, coupé et collable. J'ai essayé sur une page collée de façon robotisée par un ordinateur à partir de texte et de pixels et elle a tout réglé en image.

J'utilise ces choses depuis des années. J'obtiens les meilleurs résultats sous Linux en reconstruisant la page dans un mot XX de votre choix et en exportant le résultat au format PDF. Je peux obtenir ce que je veux à un coût considérable. De l'arc mon utilisation limitée ivin Le site David Herse mis en place https://lomotoh.com/ (je ne suis pas affilié à ce site) fonctionne aussi bien que tout ce que j'ai jamais utilisé. Je serai mon go to ressource pour couvrir les pages Web en PDF jusqu'à ce que je trouve mieux ou qu'il en coûte trop cher pour moi de payer sur mon propre porte-monnaie.

Gordon Couger
la source