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
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 ?
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
j ai vu cette article mais moi j'ai bien deffini toutes mes variables ...
je comprend vraiment pas
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
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
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
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 ???
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 ;)
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