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   -
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 :

<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:

4 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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 :
<a href="#pageDeux">Page 2</a>
<div name="pageDeux">...</div>
0
SOUMIE Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
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.
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Si dans le pdf, le lien href est un lien absolu vers le site, 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>
0
SOUMIE Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour pitet,
Comme dans l’exemple de mon premier message, c’est déjà ce que j’ai fait bien évidemment.
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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) :
$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.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

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


0