Bonjour à tous,

Alors voila, j'ai suivit le tutoriel pour générer un PDF à partir d'une page PHP, et je me retrouve avec cet erreur.

Ma page contient un tableau remplie par une BDD, voici le code:

<?php
                ob_start();
                ?>
                <table class="features-table">
                    <thead>
                        <tr>
                            <td class="titreTableauFuite"><?php echo _('Nom du site'); ?></td>
                            <td class="titreTableauFuite2"><?php echo _('Date inspection'); ?></td>

                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td class="donnes"><?php echo $NomSite; ?></td>
                            <td class="donnes"><?php echo $Date; ?></td>
                        </tr>

                    </tbody>

                    <thead>
                        <tr>
                            <td class="titreTableauFuite3"><?php echo _('Localisation'); ?></td>
                            <td class="titreTableauFuite4"><?php echo _('Type de gaz'); ?></td>

                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td class="donnes"><?php echo _('Module'); ?> : <?php echo $Module; ?></td>                 
                            <td class="donnes"><?php echo _('Nom'); ?> : <?php echo $NomGaz; ?></td>

                        </tr>
                        <tr>
                            <td class="donnes"><?php echo _('Niveau'); ?> : <?php echo $Niveau; ?></td>                 
                            <td class="donnes"><?php echo _('COV'); ?>(%) : <?php echo $COV; ?></td>

                        </tr>
                        <tr>
                            <td class="donnes"><?php echo _('Tag equipement'); ?> : <?php echo $Tag; ?></td>                 
                            <td class="donnes"><?php echo _('facteur de reponse'); ?> : <?php echo $FacteurR; ?></td>

                        </tr>

                    </tbody>

                    <thead>
                        <tr>
                            <td class="titreTableauFuite3"><?php echo _('Equipement fuyard'); ?></td>
                            <td class="titreTableauFuite4"><?php echo _('Description'); ?></td>

                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td class="donnes"><?php echo _('Type'); ?> : <?php echo $Type; ?></td>                 
                            <td class="donnes"><?php echo _('Description'); ?> : <?php echo $Description; ?></td>

                        </tr>

                    </tbody>

                    <thead>
                        <tr>
                            <td class="titreTableauFuite3"><?php echo _('Evaluation du debit d emission'); ?></td>
                            <td class="titreTableauFuite4"><?php echo _('Evaluation du debit d emission'); ?></td>

                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td class="donnes"><?php echo _('Calibration'); ?>(%) : <?php echo $Calibration; ?></td>                 
                            <td class="donnes"><?php echo _('Criticite'); ?>(h) : <?php echo $Criticite; ?></td>

                        </tr>
                        <tr>
                            <td class="donnes"><?php echo _('Temps utilisation'); ?> : <?php echo $TempUti; ?></td>                 
                            <td class="donnes"><?php echo _('Accessibilite'); ?>(%) : <?php echo $Accessibilite; ?></td>

                        </tr>
                        <tr>
                            <td class="donnes"><?php echo _('F.correlation A'); ?> : <?php echo $F_CorrelationA; ?></td>                 
                            <td class="donnes"><?php echo _('Concentration mesure ou estime'); ?>(ppm) : <?php echo $Concentration; ?></td>

                        </tr>
                        <tr>
                            <td class="donnes"><?php echo _('F.correlation B'); ?> : <?php echo $F_CorrelationB; ?></td>                 
                            <td class="donnes"><?php echo _('Emission de fuite'); ?>(kg/an) : <?php echo $Emission; ?></td>

                        </tr>
                        <tr>
                            <td class="donnes"><?php echo _('Saturation F'); ?> : <?php echo $Saturation; ?></td>                 
                            <td class="donnes"></td>

                        </tr>

                    </tbody>

                    <thead>
                        <tr>
                            <td class="titreTableauFuite3"><?php echo _('Photo'); ?></td>
                            <td class="titreTableauFuite4"><?php echo _('Localisation'); ?></td>

                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td class="donnes">
                                <img src="<?php echo $Photo ?>" class="image" alt="" usemap="#map"/>
                            </td>                 
                            <td class="donnes"><?php echo "Rien"; ?></td>

                        </tr>
<!-- <tr>
               <td class="donnes">

                   <object id="Object1" type="application/x-shockwave-flash" data="video/player_flv_mini.swf" width="320" height="240">                                  
                       <param name="movie" value="video/player_flv_mini.swf" />
                       <param name="wmode" value="opaque" />
                       <param name="allowScriptAccess" value="sameDomain" />
                       <param name="quality" value="high" />
                       <param name="menu" value="true" />
                       <param name="autoplay" value="false" />
                       <param name="autoload" value="false" />
                       <param name="FlashVars" value="flv=<?php echo $Video; ?>&width=320&height=240&autoplay=1&autoload=1&buffer=5&playercolor=000000 &loadingcolor=9b9a9a&buttoncolor=ffffff&slidercolor=ffffff" />
                   </object> 
               </td>                 
               <td class="donnes"><?php echo $Commentaire; ?></td>

           </tr>-->
                    </tbody>
                </table>
                <?php
                $content = ob_get_clean();

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

J'ai enlevé tous les accents, vérifier qu'il n'y avait pas de saut de ligne sur le haut de page avant ma balise <?php donc maintenant je ne vois pas trop ou se situe le problème.

Voici l'erreur entière : TCPDF ERROR: Some data has already been output, can't send PDF file

6 réponses


iluzzion
Auteur
Réponse acceptée

je viens de trouver le problème, il venait de mon ob_start();

voici le mauvais code:

?>
<?php
ob_start();
?>

et voici le bon:

ob_start();
?>

Merci de ton aide :) mon problème est résolue, maintenant j'ai une petite question, tu a l'air de maitriser le sujet, sais tu si c'est possible de faire une sort d'imprimer écran d'une vidéo flv et de transférer ça sur le pdf ?

Car j'ai une un photo et une vidéo sur ma page, la photo passe bien sur le pdf, mais las la vidéo flv, alors y aurait'il une méthode pour fair ceci ?

Comment ce code est-il appelé? Tu utilises des variables donc j'en déduis que le code que tu présentes doit être inclus dans un autre fichier. Si le fichier qui l'inclus affiche du contenu avant ton code, le problème est à ce niveau.
Rien ne doit être afficher avant la génération du pdf.

iluzzion
Auteur

hum en fait tout été fait sur la même page, au dessus de ce code j'avais ma balise php dans laquel je récupère les variables etc..

J'ai donc fait un lien qui appel ma page php contenant seulement le code que j'ai LINK et j'ai toujours la même erreur

Bizarre. J'ai repris ton code en remplaçant les echo $variable par echo '$variable' pour compenser l'absence de ces variables et le code marche nickel... Essai en créant un nouveau fichier puis en copiant le code dedans, on ne sait jamais.

iluzzion
Auteur

J'ai essayé moi aussi avec des echo'$variable' et ça ne marche pas

Je pense que le mieux serait que tu valides ta réponse pour clore le sujet et d'en ouvrir un autre avec ta nouvelle question, afin que tout le monde puisse la voir. Concernant l'extraction d'images d'une vidéo, je ne l'ai jamais fait personnellement. Cependant, lors de mon stage, mon tuteur s'en est chargé, en utilisant FFFmpeg. Je te conseille donc de t'y intéresser :)