1

[Résolu]

C'est un problème de parsing du code HTML. Lorsque le contenu d'une balise html remplis plus qu'une page du PDF, la balise n'est pas refermé en fin de page et pas ré-ouverte au début de la suivante.

ex.:
<page> <div> ... Début du texte ... </page> <page> ... Fin du texte ... </div> </page>

Solution lorsque le texte est généré dynamiquement sans savoir si celui-ci fera plus d'une page, ne pas utiliser de balise DIV , P, TD, etc..., laisser le texte brut et donner le style à la balise page.

ex.:
<page format="A5" orientation="portrait" backtop="40pt" backright="40pt" backbottom="40pt" backleft="40pt" style="text-align:justify;font-family:times;font-size:11pt;"> <h4><?php CswString::p($bookM->title); ?></h4> <?php CswString::p($bookM->value); ?> </page>

______________________________________________________________________________

Bonjour Spipu,

Je rencontre deux problèmes concernant la génération d'un livre au format PDF. J'utilise ta librairie HTML2PDF et je te remercie du travail que tu as effectué.

Mes problèmes sont les suivants:

- Problème retour à la ligne sur certaine page:
->lien du PDF: xxxxx

A partir de la page 20, je ne sais pour quelle raison les textes sortent du PDF et la page 26 la mise en page redevient normal.

- Problème de génération de page:
->lien du PDF: xxxxx

Ex.: La page 8 correspond à une balise de fin de page "</page>" et la page 9 à une balise de début "<page>". Tout se passe bien j'ai bien le nouvel auteur qui commence en début de page 9. Hors la page 12 correspond à la fin d'un auteur (balise "</page>") mais là et je ne sais pour quel raison j'ai une page blanche (page 13) qui vient s'ajouter entre l'auteur suivant qui commence à la page 14 (balise "<page>").

J'ai testé l'affichage du contenu HMTL dans une page standard tout fonctionne bien mais une fois passé dans HTML2PDF l'erreur apparait.

Ci-joint le template HTML: <?php foreach($stories as $key => $story): ?> <page format="A5" orientation="portrait" backtop="40pt" backright="40pt" backbottom="40pt" backleft="40pt"> <page_footer> <div style="padding-bottom:20pt;padding-right:40pt;font-family:times;text-align:right;">[[page_cu]]</div> </page_footer> <div style="text-align:justify;font-family:times;font-size:11pt;"> <img src="<?php CswString::print($story['avatar']) ?>" style="width:160pt;" /> <h2><?php CswString::print($story['informations']->middlename); ?></h2> <h4>Présentation</h4> <p style="width:100%;display:block;white-space:pre-line"> <?php CswString::print($story['informations']->introduction); ?> </p> <?php foreach($story['bookmarks'] as $bookM): ?> <h3><?php CswString::print($bookM->bookmark); ?></h3> <p style="width:100%;display:block;white-space:pre-line"> <?php CswString::print($bookM->value); ?> </p> <?php endforeach; ?> </div> </page> <?php endforeach; ?>
Et l'instance HMTL2PDF: <?php require_once '../outline/libs/html2pdf/html2pdf.class.php'; // @version 4.03 // print cover ob_start(); require_once '../outline/templates/covers/print-cover.php'; $content_html = ob_get_clean(); /*echo $content_html; die();*/ $html2pdf = new HTML2PDF('P', 'A4', 'fr', true, 'UTF-8', array(0, 0, 0, 0)); $html2pdf->pdf->SetDisplayMode('fullpage'); $html2pdf->writeHTML($content_html); $html2pdf->Output($coverPath . 'book.pdf', 'F'); ?>

Merci pour ton aide.
i love php