Variable DOMPDF

Fabienua
Invité n'ayant pas de compte PHPfrance

24 juin 2011, 22:00

Bonjour,

Savez-vous si il est possible de générer un pdf grâce à DOMPDF, qui comporte du php (echo de variables) ?

Quand je le fais, DOMPDF m'affiche le nom de ma variable, mais ne l'interprête pas ...

Pourriez-vous m'aider ?

Merci beaucoup !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 juin 2011, 22:54

salut,

a priori c'est fait pour.

quel est ton code ? :)

@+
Il en faut peu pour être heureux ......

Fabienua
Invité n'ayant pas de compte PHPfrance

24 juin 2011, 22:56

J'ai ça dans ma page principale :
<table>

	<!--On affiche les coordonnées de l'expéditeur-->
	<tr>
    	<td colspan="8"><?php echo $_POST['prenom'].' '.$_POST['nom']; ?></td>
    </tr>
    <tr>    
        <td colspan="8"><?php echo $_POST['rue']; ?></td>
    </tr>
    <tr>    
        <td colspan="8"><?php echo $_POST['complement']; ?></td>
    </tr>
    <tr>    
        <td colspan="8"><?php echo $_POST['codepostal'].' '.$_POST['ville']; ?></td>       
	</tr>
    
    
    
    <!--On affiche les coordonnées du destinataire-->
    <tr>
    	<td colspan="8" style="padding-left:400px;">***</td>
    </tr>
    <tr>    
        <td colspan="8" style="padding-left:400px;">***</td>
    </tr>
    <tr>    
        <td colspan="8" style="padding-left:400px;">***</td>
    </tr>
    
    
    
    <tr>
    	<td colspan="8"><h3>Commande de tirages photos</h3></td>
    </tr>   
    
    
    <tr>
    	<td colspan="8"><h4>Tirages 10x15</h4></td>
    </tr>  
    
    
    
    
    <tr>
    <?php
	//J'affiche les tirages 10x15 séléctionnés par l'utilisateur si il y en a
	
	if ($nb1015>0) {
						for ($i=0; $i < $nb1015;$i++)
							{
								if ($i>0){
								if($i%4==0){
								echo '</tr><tr>';
								}
								}
								echo'<td width="40px"><strong>N° '.$_SESSION['ref1015'][$i].'</strong></td>';
								echo'<td><em>Qté '.$_SESSION['quant1015'][$i].'</em></td>';
							}
					}
					
					else echo '<td colspan="8">Vous n\'avez pas commandé de tirage 10x15.</td>'; 
	?>
    </tr>
    
    
     <tr>
    	<td colspan="8"><h4>Tirages 15x23</h4></td>
    </tr> 
    
    <tr>
    <?php
	//J'affiche les tirages 15x23 séléctionnés par l'utilisateur si il y en a
	if ($nb1523>0) {
		
			for ($i=0; $i < $nb1523;$i++)
				{
					if ($i>0){
								if($i%4==0){
								echo '</tr><tr>';
								}
								}
					echo'<td width="40px"><strong>N° '.$_SESSION['ref1523'][$i].'</strong></td>';
					echo'<td><em>Qté '.$_SESSION['quant1523'][$i].'</em></td>';
				}
			}
			
			else echo '<td colspan="8">Vous n\'avez pas commandé d\'agrandissement 15x23.</td>';
	?>
    </tr>
    
    
 	<tr>
    	<td colspan="8" style="padding-left:400px;"><strong>TOTAL 10x15</strong> : <?php echo $totalquant1015 ?> x 0,50 = <?php echo $totalquant1015*0.5; ?> €</td>
    </tr>
    
    <tr>
    	<td colspan="8" style="padding-left:400px;"><strong>TOTAL 15x23</strong> : <?php echo $totalquant1523; ?> x 2 = <?php echo $totalquant1523*2; ?> €</td>
    </tr>
    
    <tr>
    	<td colspan="8" style="padding-left:400px;"><strong>FRAIS D'EXPÉDITION</strong> : <?php echo $fdp ?> €</td>
    </tr>
    
     <tr>
    	<td colspan="8" style="padding-left:400px;"><strong>TOTAL</strong> : <?php echo (($totalquant1015*0.5)+($totalquant1523*2) + $fdp) ?> € </td>
    </tr>
    
    
            
</table>

fabienua
Invité n'ayant pas de compte PHPfrance

24 juin 2011, 22:57

Et ça dans la page qui appelle la conversion en PDF :
<?php
session_start();
require('dompdf/dompdf_config.inc.php');

$dompdf = new DOMPDF();

$filename = 'etape4.php';

$dompdf->load_html_file($filename);

$dompdf->render();

$dompdf->stream('commande_photos.pdf', array('Attachement'=>true));


?> 

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 juin 2011, 03:17

au vu du ton code je peux déjà te dire que c'est relativement normal, si comme je le pense etape4.php c'est le code fournit avant ?

car dans ce cas tu n'aura pas de valeurs dans $_POST car la méthode va cherche le contenu du fichier, donc au mieux le code php sera dans le fichier.

vu le nom de la classe et de la méthode utilisée, la classe attend du code html qu'elle n'a pas étant donné que le code contient du php est qu'il y a une balise inconnue (<?php .... ?> c'est pas une balise html ;) et je ne sais pas comment la classe gère la chose.

donne nous plus d'info sur ce que tu fait, si ce n'est pas ce que j'ai décris ci dessus.

Pour que la chose fonction, il vaut mieux que tu mette le tout dans une variables et que tu le donne "a manger" à la classe en tant que chaine de caractère plutôt que fichier ;).

j'en profite pour te dire que si deux personne valide une commande en même temps sur ton le 1ère risque de se retrouver avec la commande du second (même nom de fichier pour tout le monde et écrasement du fichier en cas d’existence préalable. Tu devrais utiliser un nom unique pour le fichier (par exemple un md5 de l'adresse mail) histoire d'être certain qu'il n'ai de mélange ;)


@+
Il en faut peu pour être heureux ......