2017-06-21 1 views
0

J'essaie de générer des PDF en utilisant un HTML très simple. Cependant, il contient 5 images (moins de 50 Ko au total).DOMPDF générant pdf très lent

Il génère un fichier PDF très lent. Il prend plus de 12 secondes pour générer le PDF. Je cours sur Windows 10 (i5-4590) avec XAMPP.

Ci-dessous mon code:

<?php 
require_once 'dompdf/autoload.inc.php'; 
use Dompdf\Dompdf; 
$dompdf = new DOMPDF(); 

$html = <<<EOD 
<html> 
    <head> 
     <style type="text/css"> 
     html { 
      margin: 1%; 
      padding: 0; 
     } 
     .header, 
     .footer { 
      width: 100%; 
      text-align: center; 
      position: fixed; 
      font-size: 26px; 
     } 
     .header { 
      top: 0px; 
     } 
     .footer { 
      bottom: 18px; 
     } 
     .center { 
      margin: 0 auto; 
     } 
     .divTable{ 
      display: table; 
      width: 100px; 
      text-align: center; 
      margin: 0 auto; 
     } 
     .divTableRow { 
      display: table-row; 
     } 
     .divTableHeading { 
      margin: 0 auto; 
     } 
     .divTableCell, .divTableHead { 
      display: table-cell; 
      padding: 0 33px; 
     } 
     .bottom .divTableCell { 
      padding-top: 30px; 
     } 
     .divTableHeading { 
      display: table-header-group; 
      font-weight: bold; 
     } 
     .divTableFoot { 
      display: table-footer-group; 
      font-weight: bold; 
     } 
     .divTableBody { 
      display: table-row-group; 
     } 
     div.img-border img { 
      border-style: solid solid solid solid; 
      border-width: 2px 2px 2px 2px; 
      border-color: #eb0089; 
     } 
     </style> 
    </head> 
    <body> 
     <div class="center"> 
      <div class="divTable top"> 
       <div class="divTableBody"> 
        <div class="divTableRow"> 
         <div class="divTableCell" style="padding-left:0px;"><div class="img-border"><img src="300-small.png"></div></div> 
         <div class="divTableCell"><div class="img-border"><img src="300-small.png"></div></div> 
         <div class="divTableCell" style="padding-right:0px;"><div class="img-border"><img src="300-small.png"></div></div> 
        </div> 
       </div> 
      </div> 
      <div class="divTable bottom"> 
       <div class="divTableBody"> 
        <div class="divTableRow"> 
         <div class="divTableCell" style="padding-left:0px;"><div class="img-border"><img src="300-large.png"></div></div> 
         <div class="divTableCell" style="padding-right:0px;"><div class="img-border"><img src="300-large.png"></div></div> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="footer"> 
      $customer_title - $customer_order_number 
     </div> 
    </body> 
</html> 
EOD; 

$dompdf->set_option('dpi' , '300'); 
$dompdf->load_html($html); 
$dompdf->setPaper('A4', 'portrait'); 
$dompdf->render(); 
$dompdf->stream("sample.pdf", array("Attachment"=>0)); 

Je suis à défaut de comprendre sur la façon de le rendre plus rapide traiter.

+0

De quel type d'images PNG s'agit-il? J'ai vu dans le passé certains types d'images PNG (par exemple en niveaux de gris) qui, pour des raisons inconnues, nécessitaient un temps de traitement important. En outre, le fait que vous utilisiez PNG signifie que Dompdf effectuera un traitement supplémentaire. Si vous passez en JPG ou supprimez les images, le temps de traitement s'améliore-t-il? – BrianS

+0

@BrianS Je ne sais pas pourquoi c'était lent, et comment il a été réparé, mais ça fonctionne bien maintenant. J'ai essayé avec beaucoup d'images (png et jpg), avec le même résultat avant. Je n'ai rien changé en termes de code générateur de PDF. Mais le code du projet dans son ensemble a beaucoup changé. –

Répondre

0

Dans la troisième DIV de la première ligne de la table vous avez oublié un devis de clôture pour l'attribut class:

<div class="divTableCell style="padding-right:0px;"> 

devrait être

<div class="divTableCell" style="padding-right:0px;"> 

Et la même erreur dans la deuxième DIV du deuxième rang.

+0

Merci. J'ai mis à jour ceci. Mais cela n'a pas amélioré le temps de chargement. –

+0

Est-ce vraiment la raison de générer un fichier lentement ??? – CyberAbhay