1

Bonjour,

J'utilise HTML2PDF et je ne comprends pas ce qui peut ralentir à ce point la génération d'un tableau.
Le code HTML est moche mais c'est pas ça qui importe, ce que je souhaite savoir c'est quel est l'élément qui fait qu'un rapport met tant de temps entre 2 tableaux...
Il n'y a pas grand chose : des tableaux imbriqués, des styles, des "p", et c'est à peu près tout... Je me demande ce qui peut provoquer tant de ralentissement pour si peu.
Il y a surement quelque chose que je fais que je ne devrais pas faire ...

<page orientation="P">
<table id="_11310136425p03">
   <tr>
     <td id="_11310136425p03z0" valign="top" colspan="2">
        <p> </p><p></p><p></p><p>Q1</p><p></p><p></p><p>Q2</p><p></p><p></p><p>0%</p><p></p><p></p><p>25%</p><p></p><p> </p><p> </p>
        <table style="background-color:#2514ea;width:100%;border:0px solid #fead00;" border="0">
           <tbody>
              <tr>
                <td style="width:50%;">Copie de Copie de Q1</td>
                <td style="width:50%;"></td>
              </tr>
            </tbody>
         </table>
         <p></p><p></p><p></p><p>Q1</p><p></p><p></p><p>Q2</p><p></p><p></p><p>0%</p><p></p><p></p><p>25%</p><p></p><p> </p><p> </p>
         <table style="background-color:#2514ea;width:100%;border:0px solid #fead00;" border="0">
          <tbody>
            <tr>
              <td style="width:50%;">Copie de Q1</td>
              <td style="width:50%;">Ceci est la description du parcours copie de Q1</td>
            </tr>
          </tbody>
         </table>
         <p></p><p></p><p></p><p>Q1</p><p></p><p></p><p>Q2</p><p></p><p></p><p>0%</p><p></p><p></p><p>25%</p><p></p><p> </p><p> </p>
         <table style="background-color:#2514ea;width:100%;border:0px solid #fead00;" border="0">
            <tbody>
               <tr><td style="width:50%;">Q1</td><td style="width:50%;"></td></tr>
            </tbody>
         </table>
         <p></p>
       </td>
    </tr>
    <tr>
       <td id="_11310136425p03z1" valign="top"><p> </p><p> </p></td>
       <td id="_11310136425p03z2" valign="top"><p> </p><p> </p><p> </p><p> </p></td>
    </tr>
    <tr><td id="_11310136425p03z3" valign="top"><p>nom nom </p></td><td id="_11310136425p03z4" valign="top"><p>nom nom </p></td></tr>
</table>
</page>

<!-- ça plusieurs fois avec des éléments différents -->

<style type="text/css">#_11310136425p022{
width:794px;
height:1123px;
background-color:#FFF;
position:relative;
padding-left:40px;
padding-top:20px;
padding-right:40px;
}
#_11310136425p022z0{
width:716px;
height:198px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p022z1{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p022z2{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p022z3{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p022z4{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p05{
width:794px;
height:1123px;
background-color:#FFF;
position:relative;
padding-left:40px;
padding-top:20px;
padding-right:40px;
}
#_11310136425p05z0{
width:716px;
height:198px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p05z1{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p05z2{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p05z3{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p05z4{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p04{
width:794px;
height:1123px;
background-color:#FFF;
position:relative;
padding-left:40px;
padding-top:20px;
padding-right:40px;
}
#_11310136425p04z0{
width:716px;
height:198px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p04z1{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p04z2{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p04z3{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p04z4{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p03{
width:794px;
height:1123px;
background-color:#FFF;
position:relative;
padding-left:40px;
padding-top:20px;
padding-right:40px;
}
#_11310136425p03z0{
width:716px;
height:198px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p03z1{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p03z2{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p03z3{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
#_11310136425p03z4{
width:329px;
height:403px;
border-collapse:collapse;
margin:0;
padding:0;
}
p{margin:0px;}</style>


VOici le résultat du debug :

step                                  time       delta         memory           peak
Init debug                          0.4 ms      0.4 ms    33 448.5 Ko    33 501.7 Ko
  PAGE 1 Begin                    888.2 ms    887.9 ms    34 182.7 Ko    34 549.9 Ko
    Table n1 Begin                997.6 ms    109.3 ms    34 286.3 Ko    34 549.9 Ko
      Table n2 Begin            4 725.9 ms  3 728.3 ms    34 437.8 Ko    34 591.1 Ko
      Table 2 End               5 016.0 ms    290.1 ms    34 437.3 Ko    34 591.1 Ko
      Table n3 Begin            5 960.6 ms    944.7 ms    34 444.4 Ko    34 591.1 Ko
      Table 3 End               6 466.0 ms    505.3 ms    34 465.4 Ko    34 594.3 Ko
      Table n4 Begin            7 554.4 ms  1 088.4 ms    34 471.2 Ko    34 595.0 Ko
      Table 4 End               7 859.0 ms    304.6 ms    34 444.5 Ko    34 595.0 Ko
    Table 1 End                 9 120.0 ms  1 261.0 ms    34 441.5 Ko    34 595.0 Ko
  PAGE 2 End                    9 126.7 ms      6.8 ms    34 441.2 Ko    34 595.0 Ko
  PAGE 3 Begin                  9 128.2 ms      1.4 ms    34 441.2 Ko    34 595.0 Ko
    Table n5 Begin              9 201.6 ms     73.5 ms    34 463.5 Ko    34 595.0 Ko
      Table n6 Begin           14 048.7 ms  4 847.1 ms    34 522.3 Ko    34 677.5 Ko
      Table 6 End              14 428.9 ms    380.2 ms    34 520.6 Ko    34 677.5 Ko
      Table n7 Begin           15 614.4 ms  1 185.6 ms    34 527.5 Ko    34 677.5 Ko
      Table 7 End              16 125.0 ms    510.6 ms    34 548.8 Ko    34 679.3 Ko
      Table n8 Begin           17 321.5 ms  1 196.5 ms    34 554.5 Ko    34 679.3 Ko
      Table 8 End              17 725.1 ms    403.6 ms    34 527.9 Ko    34 679.3 Ko
    Table 5 End                19 220.9 ms  1 495.8 ms    34 524.4 Ko    34 679.3 Ko
  PAGE 4 End                   19 227.7 ms      6.8 ms    34 524.2 Ko    34 679.3 Ko
  PAGE 5 Begin                 19 229.1 ms      1.3 ms    34 524.2 Ko    34 679.3 Ko
    Table n9 Begin             19 314.8 ms     85.8 ms    34 546.5 Ko    34 679.3 Ko
      Table n10 Begin          24 217.4 ms  4 902.6 ms    34 605.2 Ko    34 760.5 Ko
      Table 10 End             24 616.4 ms    398.9 ms    34 603.5 Ko    34 760.5 Ko
      Table n11 Begin          25 752.5 ms  1 136.1 ms    34 610.5 Ko    34 760.5 Ko
      Table 11 End             26 213.4 ms    460.9 ms    34 631.8 Ko    34 763.2 Ko
      Table n12 Begin          27 351.7 ms  1 138.4 ms    34 637.5 Ko    34 763.2 Ko
      Table 12 End             27 707.3 ms    355.6 ms    34 610.8 Ko    34 763.2 Ko
    Table 9 End                28 825.7 ms  1 118.4 ms    34 607.4 Ko    34 763.2 Ko
  PAGE 6 End                   28 831.6 ms      5.9 ms    34 607.2 Ko    34 763.2 Ko
  PAGE 7 Begin                 28 832.8 ms      1.2 ms    34 607.2 Ko    34 763.2 Ko
    Table n13 Begin            28 910.3 ms     77.5 ms    34 629.4 Ko    34 763.2 Ko
      Table n14 Begin          33 435.3 ms  4 525.0 ms    34 688.2 Ko    34 843.4 Ko
      Table 14 End             33 865.6 ms    430.3 ms    34 686.5 Ko    34 843.4 Ko
      Table n15 Begin          35 140.6 ms  1 275.1 ms    34 693.4 Ko    34 843.4 Ko
      Table 15 End             35 650.3 ms    509.7 ms    34 714.7 Ko    34 846.6 Ko
      Table n16 Begin          36 997.6 ms  1 347.3 ms    34 720.4 Ko    34 846.6 Ko
      Table 16 End             37 339.6 ms    342.0 ms    34 693.8 Ko    34 846.6 Ko
    Table 13 End               38 575.1 ms  1 235.5 ms    34 690.4 Ko    34 846.6 Ko
  PAGE 8 End                   38 583.4 ms      8.3 ms    34 690.2 Ko    34 846.6 Ko
Before output                  38 606.2 ms     22.8 ms    34 360.4 Ko    34 846.6 Ko


Merci d'avance pour tout et désolé si ma question est ridicule ou mon HTML illisible smile

2

il faut éviter d'avoir des tables imbriquées inutilement, c'est très consommateur de ressource.
Ancien pseudo : lolo

3

Merci pour cette réponse,

Ce html me sert à représenter une page au format A4 (portrait), la table de 1er niveau représente cette page et chaque cellule une zone à l'intérieur de cette page. Le contenu des zones est généré dynamiquement et peut parfois augmenter la hauteur totale de la page. J'avais essayé de symboliser cette page avec une div mais il me semblait que html2pdf ne pouvait pas découper une div sur plusieurs page alors qu'il s'en sort très bien avec une table, y a-t-il une méthode pour contourner ce problème ?