probleme avec html2pdf

Par djoufouf, il y a 10 ans


bonjour,

voila j ai un autre soucis ,

je voudrais afficher mes organes et mes noms de membres mais le soucis c est qu il prend trop de temps et puis il s arrete pour me dire

ERREUR n°2
Fichier : R:\wamp\www\Projet\html2pdf\html2pdf.class.php
Ligne : 3396

Phrase de 1000 lignes => trop long
Phrase : India
Largeur case : 180.00155555556
Longueur text : 5.7361666666667

voici mon code

Code :

<?php require('connexion.php'); ob_start(); ?> <link rel="stylesheet" href="style.css" /> <style type="text/css"> table{ width:100%; } .table-header-rotated{ color: red; text-align: right; width: auto; height: 15px; font-size:10px; padding-right:0px; } .table-header-rotated th { transform: rotate(90deg); transform-origin: left top 0;} </style> <page backtop="20mm" backleft="10mm" backright="10mm" backbottom="30mm"> <?php echo"<table class=table-header-rotated> <thead> <tr> <th></th>"; $cpt=0; $conn; $tmp2=16; $table= array(); $stid5 = oci_parse($conn, "SELECT BODY_NAME_EN, BODY_ACRONYM, BODY_ID FROM BODY WHERE BODY_ID in (select role_body_id_fk from role where role_member_id_fk in (select member_id from member where MEMBER_NATION_COUNTRY_ID_FK=".$tmp2." AND BODY_BODYTYPE_CODE_FK='DE' OR BODY_BODYTYPE_CODE_FK='AP' )) order by body_name_en"); oci_execute($stid5); $countBody = oci_fetch_all($stid5, $res, 0, -1, OCI_FETCHSTATEMENT_BY_ROW); $j=0; while ($j < $countBody){ echo"<tr class=rotate-45>"; echo $res[$j]['BODY_NAME_EN']; $j++; echo "<br></tr>"; } echo"</tr> </thead> <tbody>"; $stid2 = oci_parse($conn, 'SELECT COUNTRY_NAME_EN,MEMBER_LASTNAME, MEMBER_PHOTO_URL, MEMBER_FIRSTNAME, MEMBER_ID FROM MEMBER INNER JOIN COUNTRY ON MEMBER_NATION_COUNTRY_ID_FK=COUNTRY_ID WHERE MEMBER_NATION_COUNTRY_ID_FK='.$tmp2.' ORDER BY MEMBER_LASTNAME'); oci_execute($stid2); while (($row = oci_fetch_array($stid2, OCI_BOTH)) != false) { ////je prend le nom prenom et id $TmpNom=$row['MEMBER_LASTNAME']; $TmpPrenom=$row['MEMBER_FIRSTNAME']; $memberId=$row['MEMBER_ID']; $memberPhoto=$row['MEMBER_PHOTO_URL']; $memberCountry=$row['COUNTRY_NAME_EN']; echo"<tr>"; echo $TmpNom,' ',$TmpPrenom ; echo "</tr>"; } echo "</tbody> </table> </page>"; ?> <?php $content=ob_get_clean(); require('html2pdf/html2pdf.class.php'); try{ $pdf = new HTML2PDF('P','A4','fr'); $pdf->writeHTML($content); $pdf->Output('testpdf.pdf'); }catch (HTML2PDF_exception $e){ die($e); }?>

c est a propos de la creation du pdf

require('html2pdf/html2pdf.class.php'); try{ $pdf = new HTML2PDF('P','A4','fr'); $pdf->writeHTML($content); $pdf->Output('testpdf.pdf'); }catch (HTML2PDF_exception $e){ die($e); }?>

car j ai testé mon $content et il est bon

la je bloque vraiment je comprend pas pourquoi c est aussi lent

merci pour vos reponse

17 réponses

betaWeb, il y a 10 ans

Salut,

Il faut découper le contenu incriminé et le mettre sur plusieurs pages. As-tu activer le multipages ?

djoufouf, il y a 10 ans

euh je ne sais pas du tout ou l activer lol pourrais tu m'aider
merci :D

betaWeb, il y a 10 ans

Commences par activer le debugmode $pdf->setModeDebug() et c/c ce qu'elle te renvoie.
As-tu des images dans ton PDF ?

djoufouf, il y a 10 ans

j ai vu cette article mais moi j'ai bien deffini toutes mes variables ...

je comprend vraiment pas

djoufouf, il y a 10 ans

mes requetes fonctionnes séparement mais quand je les met ensemble elles plantent ...

--------------------edit

enfin elle ne plante pas car quand je fais un echo de mon $content il affiche tout ce que j ai demandé.

c est juste au moment ou il ecrit en php qu il y a un probleme

kewai, il y a 10 ans

Je pense que c'est l'user input qui pose problème. en d'autres termes toi, ce que tu essayes de lui donner à traiter.
Vu ton premier messages ca prend trop de temps donc c'est trop gros pour le serveur. Ca dépasse la mémoire alloué ou le temps.

Je peux que supposer et je suis pas précis, car je vois pas vraiment clair sur ton soucis

djoufouf, il y a 10 ans

voici ce que j ai dans mon $content

---------------------------------------------les 2 requetes --------------------------------------------------------------------
Andean Community

Australia and New Zealand

Central America

Delegation to the ACP-EU Joint Parliamentary Assembly

Delegation to the Euro-Latin American Parliamentary Assembly

Delegation to the Euronest Parliamentary Assembly

Delegation to the UfM Parliamentary Assembly

India

NATO

Pan-African Parliament

People's Republic of China

United States

ARIMONT PascalBELET IvoROLIN ClaudeVANDENKENDELAERE Tom

--------------------------------------------------end --------------------------------------------------------

la dedans j ai les 2 requetes et comme vous pouvez le voir je n ai meme pas 20lignes

je comprend vraiment pas

betaWeb, il y a 10 ans

Quel rapport avec une base de données ? ^^
On parle de formatage et non de contenu ;)

djoufouf, il y a 10 ans

enfaite je pense voir ou est mon probleme mais je ne sais pas comment le regler que je fais mon code comme cela

<?php require('connexion.php'); ob_start(); ?> <link rel="stylesheet" href="style.css" /> <style type="text/css"> table{ width:100%; } .table-header-rotated{ color: red; text-align: right; width: auto; height: 15px; font-size:10px; padding-right:0px; } .table-header-rotated th { transform: rotate(90deg); transform-origin: left top 0;} </style> <page backtop="20mm" backleft="10mm" backright="10mm" backbottom="30mm"> <?php echo"<table class=table-header-rotated> <thead> <tr> <th></th>"; $cpt=0; $conn; $tmp2=16; echo"</tr> </thead> <tbody>"; $stid2 = oci_parse($conn, 'SELECT COUNTRY_NAME_EN,MEMBER_LASTNAME, MEMBER_PHOTO_URL, MEMBER_FIRSTNAME, MEMBER_ID FROM MEMBER INNER JOIN COUNTRY ON MEMBER_NATION_COUNTRY_ID_FK=COUNTRY_ID WHERE MEMBER_NATION_COUNTRY_ID_FK='.$tmp2.' ORDER BY MEMBER_LASTNAME'); oci_execute($stid2); while (($row = oci_fetch_array($stid2, OCI_BOTH)) != false) { ////je prend le nom prenom et id $TmpNom=$row['MEMBER_LASTNAME']; $TmpPrenom=$row['MEMBER_FIRSTNAME']; $memberId=$row['MEMBER_ID']; $memberPhoto=$row['MEMBER_PHOTO_URL']; $memberCountry=$row['COUNTRY_NAME_EN']; echo"<tr>"; echo $TmpNom,' ',$TmpPrenom ; echo "</tr>"; } echo "</tbody> </table> </page>"; ?> <?php $content=ob_get_clean(); require('html2pdf/html2pdf.class.php'); try{ $pdf = new HTML2PDF('P','A4','fr'); $pdf->writeHTML($content); $pdf->Output('testpdf.pdf'); }catch (HTML2PDF_exception $e){ die($e); }?>

http://www.hostingpics.net/viewer.php?id=716778pdf3.png

le soucis doit certainement venir de la non ? mais comment le regler ??

j ai un affichage de nom en double( par dessus les premiers noms) est ce normal ???

djoufouf, il y a 10 ans

Personne n'a de reponse ?

betaWeb, il y a 10 ans

Regarde au niveau de ton code, il te faut un peu chercher par toi-même car sans ça tu n'arrivera jamais à résoudre quoi que ce soit ;)
Et puis il se peut aussi que la lib ait des soucis, tu peux aussi poster un topic sur leur forum afin de leur demander de l'aide ;)

djoufouf, il y a 10 ans

ok merci a toi en tout cas

Underscreen, il y a 10 ans

Salut
Pour le coup j'ai eu ce soucis récement donc je sais de quoi il s'agit.
Quand à résoudre le problème ça va dépendre de toi mais clairement c'est que ton contenu dépasse la taille de ta page et du coup html2pdf gueule !!

En gros il fois soit gérer les retour à la ligne soit et du coup réduire la taille en largeur par rapport à ta page et pareil en longueur.
Si la page est trop longue alors ils faut faire plusieurs pages.
Bon courage dans ta démarche en tout cas

djoufouf, il y a 10 ans

j ai resolu le probleme , j'ai suprimé les tbody thead etc et mtn cela fonctionne, je ne comprend pas pourquoi il ne prend pas en charge mais bon ca fonctionne c est le principal

maintenant j ai remarquer aussi qu il ne prend pas en compte les <th>

je pense que je vais tout simplement changer de librairie lol

Merci a vous en tout cas