Ancre HTML lors de la génération d'un PDF

SOUMIE Messages postés 24 Statut Membre -  
Pitet Messages postés 2845 Statut Membre -
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

4 réponses

  1. SOUMIE Messages postés 24 Statut Membre 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
    1. Pitet Messages postés 2845 Statut Membre 530
       
      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
  2. SOUMIE Messages postés 24 Statut Membre 1
     
    Bonjour pitet,
    Comme dans l’exemple de mon premier message, c’est déjà ce que j’ai fait bien évidemment.
    0
    1. Pitet Messages postés 2845 Statut Membre 530
       
      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