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


djoufouf
Auteur
Réponse acceptée

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

Salut,

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

djoufouf
Auteur

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

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

Tu as regardé dans la doc ou sur le forum dédié du site ?
Petite recherche rapide je tombe sur ça http://www.yaronet.com/board/topic/141396

djoufouf
Auteur

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

je comprend vraiment pas

djoufouf
Auteur

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

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

Je pense que ton contenu est trop important, il te faut le scinder en plusieurs parties.
A quoi ressemble ton contenu ? Tu as fait une table ?
Regarde le tuto de @Grafikart : http://www.grafikart.fr/tutoriels/php/generer-pdf-html2pdf-167

djoufouf
Auteur

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

djoufouf
Auteur

le soucis c est que j ai tout regarder mais il n utilise pas une base de données donc je me suis basé sur lui (cette video http://www.grafikart.fr/tutoriels/php/generer-pdf-html2pdf-167) jusqu au bug lol

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

djoufouf
Auteur

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
Auteur

Personne n'a de reponse ?

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
Auteur

ok merci a toi en tout cas

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