Ancre HTML lors de la génération d'un PDF
SOUMIE
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai créé un site PHP. Sur ce site, suite à un questionnaire répondu par les utilisateurs, je génère un PDF avec HTML2PDF(). La génération se passe très bien, si ce n'est une chose : les ancres HTML. En effet, dans mon PDF il y a une page avec un menu (un plan). Pour le rendre dynamique, je souhaite que lorsque je clique sur le numéro de la page, j'y aille directement (dans le même document/PDF). Pour ce faire, j'ai créé des ancres de type :
Ceci fonctionne très bien en HTML avant que le PDF soit généré mais dès que le PDF est généré, c'est l'adresse complète qui s'affiche, de type :
Résultat, le lien m'emmène vers une page extérieure et en ligne. Si je regarde le PDF hors connexion, je ne peux pas suivre le lien.
Si vous avez une solution je suis preneur et vous en remercie d'avance.
Cordialement,
J'ai créé un site PHP. Sur ce site, suite à un questionnaire répondu par les utilisateurs, je génère un PDF avec HTML2PDF(). La génération se passe très bien, si ce n'est une chose : les ancres HTML. En effet, dans mon PDF il y a une page avec un menu (un plan). Pour le rendre dynamique, je souhaite que lorsque je clique sur le numéro de la page, j'y aille directement (dans le même document/PDF). Pour ce faire, j'ai créé des ancres de type :
<a href="#pageDeux"> Page 2</a>
<div id="pageDeux">blabla...</div>
Ceci fonctionne très bien en HTML avant que le PDF soit généré mais dès que le PDF est généré, c'est l'adresse complète qui s'affiche, de type :
<a href="https://www.monsite.comp#pageDeux" > Page 2</a>
Résultat, le lien m'emmène vers une page extérieure et en ligne. Si je regarde le PDF hors connexion, je ne peux pas suivre le lien.
Si vous avez une solution je suis preneur et vous en remercie d'avance.
Cordialement,
Configuration: Macintosh / Safari 15.1
A voir également:
- Ancre HTML lors de la génération d'un PDF
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Save as pdf office 2007 - Télécharger - Bureautique
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Editeur html - Télécharger - HTML
- Notice de montage pdf - Guide
4 réponses
Bonjour,
Voir sur la doc l'exemple 7 qui crée une ancre pour l'élément "document_reprise" :
https://github.com/spipu/html2pdf/blob/master/examples/res/example07b.php
https://github.com/spipu/html2pdf/blob/master/examples/res/example07a.php
Il semble donc que HTML2PDF utilises l'attribut name pour gérer les ancres :
Voir sur la doc l'exemple 7 qui crée une ancre pour l'élément "document_reprise" :
https://github.com/spipu/html2pdf/blob/master/examples/res/example07b.php
https://github.com/spipu/html2pdf/blob/master/examples/res/example07a.php
Il semble donc que HTML2PDF utilises l'attribut name pour gérer les ancres :
<a href="#pageDeux">Page 2</a> <div name="pageDeux">...</div>
Merci beaucoup Pitet pour votre réponse mais j'avais déjà essayer et cela ne fonctionne pas. Le lien ouvre quand même la page sur internet.
Si dans le pdf, le lien href est un lien absolu vers le site, par exemple
il semble normal que le lien ouvre alors la page sur le site indiqué.
Le lien dans le PDF doit être en relatif sur le même document, par exemple
<a href="https://www.monsite.comp#pageDeux">Page 2</a>
il semble normal que le lien ouvre alors la page sur le site indiqué.
Le lien dans le PDF doit être en relatif sur le même document, par exemple
<a href="#pageDeux">Page 2</a>
Bonjour pitet,
Comme dans l’exemple de mon premier message, c’est déjà ce que j’ai fait bien évidemment.
Comme dans l’exemple de mon premier message, c’est déjà ce que j’ai fait bien évidemment.
En effet, le problème doit venir du fait que le ton lien semble passer en absolu dans le pdf, mais je n'arrive pas à reproduire ce problème.
Contrairement à ma première réponse, il semble que la balise div avec l'attribut name ne fonctionne pas, il faut également utiliser une balise a.
Mon test avec la dernière version de html2pdf (5.2.4) :
Sur mon poste avec ce test, le lien redirige bien vers la page 2 du pdf.
Contrairement à ma première réponse, il semble que la balise div avec l'attribut name ne fonctionne pas, il faut également utiliser une balise a.
Mon test avec la dernière version de html2pdf (5.2.4) :
$html2pdf = new Html2Pdf(); $html2pdf->writeHTML(' <page> Page 1 <a href="#page2">Lien vers page 2</a> </page> <page> <a name="page2"></a> Page 2 </page> '); $html2pdf->output();
Sur mon poste avec ce test, le lien redirige bien vers la page 2 du pdf.
Bonjour,
Pour créer un sommaire avec html2pdf il faut utiliser la fonction prévue à cet effet
et utiliser le modèle fourni dans les exemples
https://github.com/spipu/html2pdf/blob/master/examples/res/bookmark.php
Pour créer un sommaire avec html2pdf il faut utiliser la fonction prévue à cet effet
$html2pdf->createIndex('Sommaire', 25, 12, false, true, 1);*
et utiliser le modèle fourni dans les exemples
https://github.com/spipu/html2pdf/blob/master/examples/res/bookmark.php