Convertisseur Web en PDF en ligne avec table des matières. Comment transformer facilement une page Web en PDF ? Avec l'aide de spéciaux

Maison / Technologies
  • Java,
  • PDF
    • Tutoriel

    C'était très inattendu pour moi que dans le hub Java, il n'y ait pratiquement aucune information sur l'utilisation de Document PDF C'est pourquoi, par expérience personnelle, je souhaite utiliser l'exemple d'un servlet pour montrer avec quelle facilité vous pouvez transformer n'importe quelle page Web en un document PDF.

    Préambule:
    Écrivons un simple servlet qui prendra la page Web que nous spécifions via le protocole HTTP et générera un document PDF à part entière basé sur celle-ci.
    Bibliothèques utilisées :
    • Flying Saucer PDF est la bibliothèque principale qui nous aidera à créer un document PDF à partir de HTML/CSS
    • iText est une bibliothèque incluse avec celle décrite ci-dessus, mais je n'ai pas pu m'empêcher de l'inclure dans la liste des bibliothèques car... c'est sur cette base que le document PDF sera généré
    • HTML Cleaner - une bibliothèque qui nettoiera notre code HTML

    Descriptions des bibliothèques pour la configuration Maven (pom.xml)

    org.xhtmlrenderer soucoupe-volante-pdf 9.0.4 net.sourceforge.htmlcleaner nettoyeur html 2.6.1

    Constitution des pages :
    L'un des plus points importants est la formation de la page. Le fait est que c'est à partir de la page elle-même, à l'aide de CSS, que sont définis les paramètres du futur document PDF.

    Regardons la mise en page :

    page.jsp

    <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%! private SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); %> Exemple

    Bonjour Habr! Heure actuelle :<%=sdf.format(new Date())%>
    Nouvelle page !


    Ici, je veux souligner quelques points. Tout d’abord : tous les chemins doivent être absolus! Images, styles, adresses de polices, etc., les chemins absolus doivent être spécifiés pour tout. Passons maintenant aux règles CSS (ce qui commence par le symbole @).
    @font-face- c'est une règle qui indiquera à notre générateur PDF quelle police prendre et d'où. Le problème est que la bibliothèque qui générera le document PDF ne contient pas de polices incluant le cyrillique. C'est pourquoi il faudra ainsi déterminer TOUS polices utilisées dans votre page, même si elle est polices standards: Arial, Verdana, Tahoma, etc., en sinon Vous risquez de ne pas voir l'alphabet cyrillique dans votre document.
    Faites attention aux propriétés telles que "-fs-pdf-font-embed: embed;" et "-fs-pdf-font-encoding: Identity-H;", ces propriétés sont nécessaires, n'oubliez pas de les ajouter.
    @page- il s'agit d'une règle qui définit les retraits d'un document PDF, ainsi que sa taille. Ici, je voudrais noter que si vous spécifiez le format de page A3 (et comme le montre la pratique, cela est souvent nécessaire, car la page ne rentre pas dans le document en largeur), cela ne signifie pas que l'utilisateur devra imprimer le document (si vous le souhaitez) au format A3, tout simplement tout le contenu sera réduit/augmenté proportionnellement à la taille souhaitée (généralement A4). Ceux. se référer à la valeur de la propriété taille sceptique, mais sachez que cela peut jouer un rôle clé pour vous.
    @médias- une règle qui permet de créer des classes CSS pour un type spécifique d'appareil, dans notre cas il s'agit de « print ». Dans cette règle, nous avons créé une classe après laquelle notre générateur de documents PDF créera une nouvelle page.
    Servlette :
    Écrivons maintenant une servlet qui nous renverra le document PDF généré :

    PdfServlet.java

    paquet ru.habrahabr.web_to_pdf.servlets ; importer org.htmlcleaner.CleanerProperties ; importer org.htmlcleaner.HtmlCleaner ; importer org.htmlcleaner.PrettyXmlSerializer ; importer org.htmlcleaner.TagNode ; importer org.xhtmlrenderer.pdf.ITextRenderer ; importer javax.servlet.ServletException ; importer javax.servlet.http.HttpServlet ; importer javax.servlet.http.HttpServletRequest ; importer javax.servlet.http.HttpServletResponse ; importer java.io.* ; importer java.net.HttpURLConnection ; importer java.net.URL ; importer java.net.URLConnection ; /** * Date : 31/03/2014 * Heure : 9h33 * * @auteur Ruslan Molchanov ( [email protégé]) */ classe publique PdfServlet étend HttpServlet ( chaîne finale statique privée PAGE_TO_PARSE = "http://localhost:8080/page.jsp"; chaîne finale statique privée CHARSET = "UTF-8"; @Override protected void service (HttpServletRequest req, HttpServletResponse resp) lance ServletException, IOException ( try ( resp.setContentType("application/pdf"); byte pdfDoc = performPdfDocument(PAGE_TO_PARSE); resp.setContentLength(pdfDoc.length); resp.getOutputStream().write(pdfDoc); ) catch (Exception ex) ( resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.write(" Quelque chose ne va pas

    "); ex.printStackTrace(out); ex.printStackTrace(); ) ) /** * Méthode qui prépare un document PDF. * @param path chemin d'accès à la page * @return PDF document * @throws Exception */ private byte performPdfDocument( String path) throws Exception ( // Récupère le code HTML de la page String html = getHtml(path); // Buffer qui contiendra le code HTML formaté ByteArrayOutputStream out = new ByteArrayOutputStream(); // Formatage HTML code /* cette procédure est facultative, mais je recommande fortement d'utiliser ce bloc */ HtmlCleaner Cleaner = new HtmlCleaner();


    D'ailleurs, il n'est pas du tout nécessaire d'écrire un servlet à ces fins ; vous pouvez transférer la logique de ce servlet même vers une application console qui enregistrera les documents PDF dans des fichiers. Comme vous l'avez peut-être remarqué, il n'est pas nécessaire de configurer, modifier, ajouter, etc. dans le servlet. (enfin, à l'exception du chemin d'accès à la page et, éventuellement, de l'encodage), par conséquent, tout le travail de préparation d'un document PDF est très simple et se déroule exclusivement dans la vue.

    En fin de compte, vous devriez vous retrouver avec un document PDF qui ressemble à ceci.

    Bon moment à tous !

    Malgré le fait que dans chaque navigateur, vous pouvez créer rapidement des signets pour vos pages préférées, il est parfois très nécessaire d'enregistrer la page Web souhaitée au format PDF. (ne serait-ce que parce que cette page peut être supprimée ou modifiée du site au fil du temps) ...

    De plus, les informations au format PDF peuvent être facilement lues sur le plus différents appareils(il est pris en charge par tous les lecteurs sans exception), peut être édité dans Word et transféré à d'autres utilisateurs. Et la page elle-même ne se corrodera pas avec le temps, son formatage et sa conception ne changeront pas. En général, une chose utile et nécessaire !

    Dans cet article, je vais examiner plusieurs façons de procéder rapidement et facilement. En fait, passons aux choses sérieuses...

    Utilisation de l'impression via un navigateur

    1) Quel que soit votre navigateur (Chrome, Opera, Edge, Firefox, etc.), appuyez sur la combinaison de boutons Ctrl+P(cette combinaison signifie imprimer la page). Cette fonction est également disponible dans le menu du navigateur.

    2) Ensuite, modifiez l'imprimante par défaut en « Enregistrer au format PDF » ou « Microsoft Print to PDF » (en fonction de votre navigateur et de votre système d'exploitation - vous pouvez avoir différentes options disponibles : les deux ou une seule d'entre elles). Voir quelques captures d'écran ci-dessous.

    3) Définissez maintenant les paramètres de base : nombre de pages à enregistrer, mise en page, marges, couleur, en-têtes et pieds de page, etc. Cliquez ensuite sur le bouton « Imprimer ».

    En fait, cette tâche est terminée. Le PDF résultant peut désormais être ouvert dans Word, Adobe PDF Reader et des centaines d'autres programmes prenant en charge ce format.

    Avec l'aide de spéciaux extensions

    Pour les navigateurs les plus populaires, il existe désormais de nombreux modules complémentaires et extensions qui vous permettent d'enregistrer vos pages préférées comme dans stockage en nuage, et aux fichiers PDF sur votre disque dur.

    Je voudrais souligner un ajout très intéressant : PDF MAGE.

    Mage PDF

    Un petit add-on pour Firefox, Opera, Chrome, qui permet de sauvegarder l'intégralité d'une page web sur votre disque dur en 1 clic !

    Je constate qu'après avoir cliqué sur l'icône PDF Mage, la page actuelle est simplement téléchargée au format PDF dans votre dossier de téléchargement. Il est tout simplement impossible d'imaginer quelque chose de plus pratique...

    Je vais vous montrer avec un exemple.

    Après avoir installé l'extension, vous aurez une petite icône dans le menu. Après avoir trouvé une page intéressante, faites simplement un clic gauche dessus.

    Dans un instant, le navigateur lui-même commencera automatiquement à télécharger le fichier PDF. En fait, tout se fait sans mouvements inutiles, rapidement et facilement !

    Utiliser les services en ligne

    Il existe également de nombreux services Internet sur Internet qui vous permettent d'enregistrer rapidement n'importe quelle page sur Internet au format PDF. L'essence du travail est approximativement la suivante : vous insérez dans le spécial. chaînez l'URL de la page que vous devez enregistrer.

    Ensuite, cliquez sur le bouton pour générer un fichier PDF. Au bout d'un moment, vous recevez un lien pour télécharger votre PDF. Bien sûr, vous pouvez l'utiliser, mais à mon humble avis, tout cela est fastidieux et adapté à un usage temporaire. Par exemple, vous avez des « problèmes » avec votre navigateur ou Windows, vous êtes tombé sur une page « étrange » qui ne veut pas être enregistrée en utilisant les méthodes précédentes.

    Et donc, le plus populaire des services de ce type :

    1. - un service simple et pratique en anglais. Il y a une offre spéciale sur le site. une ligne où vous collez l'URL, et à côté se trouve un bouton de génération. À la fin, téléchargez le PDF terminé sur votre disque dur.
    2. - un autre service extérieur qui fonctionne de manière similaire.
    3. - un service très populaire, grâce à son aide, plus de 5 000 000 de pages ont déjà été enregistrées dans le monde entier ! Ici, entre autres choses, vous pouvez télécharger des modules complémentaires pour le navigateur (afin de ne pas visiter le site à chaque fois que vous devez enregistrer la page).
    4. - un service assez simple et pratique. Un minimum d'informations inutiles sur le site.

    C'est tout pour moi, bonne chance à tous !


    Pourquoi avez-vous besoin de sauvegarder les pages d’un site Web ? Eh bien, peut-être souhaitez-vous lire des informations hors ligne ou faire des observations sur le site, ou souhaitez-vous le faire dans un autre but. Personnellement, je me fiche de savoir pourquoi vous en avez besoin, je vais juste vous dire comment le faire différents navigateurs. Alors, comment enregistrer une page de site Web au format PDF dans les navigateurs Chrome, Opera, Yandex, Firefox ?

    Commençons par le navigateur Chrome.

    Tout d’abord, vous devez trouver la page qui vous intéresse. J'utiliserai le site Web automobile ax4.ru comme exemple.

    Dans le coin supérieur droit, cliquez sur quelque chose qui ressemble à un sandwich. Dans le menu qui apparaît, cliquez sur « Joint».

    Ensuite, vous verrez que la valeur par défaut est le nom de l'imprimante que vous avez installée ou une autre programmée par le navigateur. Il faut le changer en cliquant sur le bouton correspondant " Changement».

    Quand on appuie sur " Changement", un menu apparaîtra dans lequel vous devrez sélectionner l'élément " Enregistrer au format PDF».

    Après quoi, sur la gauche, le nom de l’imprimante deviendra « » enregistrer au format PDF" Il ne vous reste plus qu'à appuyer sur le bouton " Sauvegarder».

    Sélectionnez un emplacement de sauvegarde (pour moi, c'est le bureau).


    Voilà, vous pouvez maintenant ouvrir le fichier enregistré Fichier PDF. Cela ne ressemble peut-être pas à grand-chose, mais vous pouvez en copier du texte très facilement.

    Maintenant, j'ouvre le fichier PDF via Foxit Reader. Comme je l'ai mentionné plus tôt, vous pouvez utiliser un autre programme.
    C'est tout, pas très joli, mais vous voyez l'idée. Vous pouvez créer un fichier PDF à partir de n'importe quelle page Web.

    Pour ce faire, j'irai sur le site d'actualités nz1.ru et sélectionnerai quelques actualités.

    Comme vous l'avez déjà compris, la procédure est similaire dans tous les navigateurs. Cliquez sur la ressemblance de sandwich dans le coin supérieur droit, puis « En plus" Et " Joint».

    Enregistrer au format PDF.

    Sélectionnez ensuite un emplacement de sauvegarde. Par exemple, Bureau.

    Ouvrez le fichier via n'importe quel programme qui lit Format PDF, nous utilisons.

    Je vais vous montrer en utilisant l'exemple d'un site avec des images sympas prikolnie-kartinki.ru.

    DANS Navigateur Mozilla Firefox fait les choses un peu différemment. Cliquez sur le sandwich dans le coin supérieur droit de l’écran et sélectionnez « Joint».

    © 2024 ermake.ru -- À propos de la réparation de PC - Portail d'information