Salut à tous, je génère bien mes PDFs avec HTML2PDF à l'exception qu'il ne s'affiche pas sur mon navigateur, ce qui m'oblige à les télécharger sur mon serveur pour voir leurs rendus.
Pour info, voilà ce qui m'affiche quand je veux l'afficher sur mes navigateurs (Chrome 32 et FireFox 21) : "TCPDF ERROR: Some data has already been output, can't send PDF file"
Merci d'avance pour votre aide.
Toujours à la recherche du savoir
tu utilises mal la librairie,
html2pdf va envoyer les header "pdf" au navigateur puis les data du fichier,
ton script lui ne doit rien envoyer du tout, ni header ni même un espace, rien
ici donc ton script envois des données au navigateur, html2pdf s'en rend compte et te le signale
éventuellement regarde du coté des fonctions php ob_start et ob_get_clean
et la le mec il le pécho par le bras et il lui dit '
robinHood, je te remercie pour ta réponse ma je vois toujours pas comment y remédié. Si tu peux me donner la démarche. {
die ($e);
}
?>
</body>
</html>Pour plus de clarté voilà mon code <?php
require ('Connections/BD_GESTOCI.php');
require ('html2pdf/html2pdf.class.php');
if(isset($_GET['NumBEP'])){
$num = $_GET['NumBEP'];
// Pour savoir si le numéro bep envoyé existe
$Numbep = $bd_gestoci->query('
SELECT NumBEP
FROM bep
');
$existe = false;
while ($ebep = $Numbep->fetch())
if ($num == $ebep['NumBEP']){
$existe = true;
break;
}
if ($existe){
$sql = '
SELECT NumBEP as BEP, bep.NumBon AS BON, IndMarq AS MARQUETEUR, DateBon as DATE, bon.CdeReg as REGIME, ct.ImCit as CITERNE, ct.ImTract as TRACTEUR, CapCit as CAPACITE, LibelleProd as PRODUIT, bac.CdeBac as BAC, NumCuve as CUVE, CapCuve as VOLUME, VilleStat as VILLE, NomStat as STATION, ch.NomChauf as CHAUFFEUR
FROM bep
INNER JOIN bon ON bep.NumBon = bon.NumBon
INNER JOIN cuve ON cuve.NumBon = bon.NumBon
INNER JOIN bac ON bac.CdeBac = cuve.CdeBac
INNER JOIN produit p ON p.CdeProd = bac.CdeProd
INNER JOIN regime r ON r.CdeReg = bon.CdeReg
INNER JOIN certificat ct ON bon.CdeCert = ct.CdeCert
INNER JOIN citerne c ON c.ImCit = ct.ImCit
INNER JOIN tracteur tc ON tc.ImTract = ct.ImTract
INNER JOIN chauffeur ch ON ch.IdChauf = tc.IdChauf
INNER JOIN marqueteur m ON m.CdeMarq = bon.CdeMarq
INNER JOIN station s ON s.CdeStat = bon.CdeStat
WHERE NumBEP = :numbep
';
$q = array('numbep'=>$num);
$BEP = $bd_gestoci->prepare($sql);
$BEP->execute($q);
}
else {
header ('location:liste_enl.php');
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>BEP</title>
</head>
<body>
<?php
ob_start();
?>
<style>
strong {
text-decoration:underline;
margin-left: 20px;
}
.table{
border: solid 1px black;
border-collapse: collapse; /* Pour que les bordures du tableau se collent */
font-size:16px;
font-family:helvetica;
display:inline-block;
width:100%;
margin:auto;
margin-bottom: 20px;
margin-top: 20px;
}
.table th{
font-size:18px;
}
.table th, .table td {
border: solid 1px black;
padding:2px;
}
.info{
margin-top: 10px;
margin-bottom: 10px;
}
h4 {
margin-bottom: 10px;
}
</style>
<page backtop="60mm" backleft="10mm" backright="10mm" backimg="Images/Logo_GESTOCI.png" backimgx="8mm" backimgy="8mm" backimgw="100px">
<page_header>
<!--<img src="Images/Logo_GESTOCI.png" style="float:left" alt="Logo GESTOCI" title="Logo GESTOCI"/>-->
<span style="float:right;text-align:center"><h4>SOCIÉTÉ DE GESTION DES STOCKS PÉTROLIERS DE CÔTE D'IVOIRE</h4>Siège social : Boulevard de VRIDI<br>15 BP 89 Abidjan 15 - Tél. : 21 75 98 00 <br>Fax N° 21.27.17.82 - R.C N° CI-ABJ-05-R-4116 <br>CC N° : 8800097-E - Régime Imp. : Réel - Centre Imp. : DGI Plateau </span>
</page_header>
<page_footer>
<!-- PIED DE PAGE: Copyright L@SS M@O, The dictator -->
</page_footer>
<table class="table" style="width:100%;margin-bottom:20px">
<tr>
<th colspan="2" align="center"> BULLETIN D'ENLEVEMENT DE PRODUITS </th>
</tr>
<tr>
<td style="width:30%;text-align:left">Edite le: <?php echo date('d').'/'.date('m').'/'.date('Y'); ?></td>
<td style="width:70%;text-align:right">ET - OC0</td>
</tr>
</table><br/><br/>
<?php
$unbep = $BEP->fetch(PDO::FETCH_OBJ);
?>
<div class="info" style="width:100%">
<span>Dépôt : <strong>YAMOUSSOUKRO</strong></span>
<span style="margin-left:40px">DESTINATION : <span style="margin-left: 20px"><?php echo $unbep->VILLE; ?></span></span>
<span style="margin-left:20px">STATION : <span style="margin-left: 20px"><?php echo $unbep->STATION; ?></span></span>
</div>
<div class="info" style="width:100%">
<span>N°BEP : <strong><?php echo $unbep->BEP; ?></strong></span>
<span style="margin-left:120px">EXERCICE : <strong><?php echo date('Y'); ?></strong></span>
<span style="margin-left:80px">DATE : <strong><?php echo date('d/m/Y'); ?></strong></span>
</div>
<div class="info" style="width:100%">
<span>RÉGIME DOUANIER : <strong><?php echo $unbep->REGIME; ?></strong></span>
<span style="margin-left:60px">N°CITERNE : <strong><?php echo $unbep->CITERNE; ?></strong></span>
<span style="margin-left:40px">N°TRACTEUR : <strong><?php echo $unbep->TRACTEUR; ?></strong></span>
</div>
<div class="info" style="width:100%">
<span style="margin-left:250px">CAPACITE : <strong><?php echo $unbep->CAPACITE; ?></strong></span>
</div>
<table class="table" style="width:100%; text-align:center">
<thead>
<tr style="border:solid 1px black; ">
<th style="width: 30%">MARQUETEUR</th>
<th style="width: 12%">N_BON</th>
<th style="width: 18%">DATEBON</th>
<th style="width: 30%">PRODUIT</th>
<th style="width: 10%">BAC</th>
</tr>
</thead>
<tbody>
<?php
$BEP->closeCursor();
$BEP->execute($q);
while ($bep = $BEP->fetch(PDO::FETCH_OBJ))
{
?>
<tr>
<td style="width: 30%"><?php echo $bep->MARQUETEUR; ?></td>
<td style="width: 12%"><?php echo $bep->BON; ?></td>
<td style="width: 18%"><?php echo $bep->DATE; ?></td>
<td style="width: 30%"><?php echo $bep->PRODUIT; ?></td>
<td style="width: 10%"><?php echo $bep->BAC; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<br/><br/>
<h4>OBSERVATION</h4>
<table class="table" style="width: 100%; text-align:center; vertical-align:auto">
<tr>
<th style="width: 40%">GUICHET</th>
<th style="width: 30%">CHAUFFEUR</th>
<th style="width: 30%">DOUANE</th>
</tr>
<tr>
<td style="width: 40%"> </td>
<td style="width: 30%"><?php echo $unbep->CHAUFFEUR; ?><br/><br/><br/><br/><br/><br/><br/><br/><br/></td>
<td style="width: 30%"> </td>
</tr>
</table><br/><br/><br/><br/><br/>
<h4>COMPTABILITÉ</h4>
</page>
<?php
$content = ob_get_clean();
try {
$pdf = new HTML2PDF('P','A4','fr');
$pdf->pdf->SetDisplayMode('fullpage');
$pdf->writeHTML($content);
$pdf->Output('BEP.pdf','F');
}
catch (HTML2PDF_exception $e)
Toujours à la recherche du savoir
ca c'est en dehors de php et des ob_* :?>
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>BEP</title>
</head>
<body>
<?php
...
?>
</body>
</html>
et la le mec il le pécho par le bras et il lui dit '