Export d'une liste en PDF avec TCPDF
Bonjour à tous,
J'essaye d'effectuer l'export d'une liste en PHP grâce à la librairie TCPDF. La génération du PDF s'effectue correctement, en revanche lorsque que je veux ouvrir le PDF dans le navigateur lors de la création avec l'option $bRes = $oPdf->Output( $fileurl,'I'); , je n'ai aucun retour ni aucune erreur dans les logs.
En revanche je constate que le fichier encodé sort vers la réponse de ma requête http lorsque je regarde dans ma console dev:
Citation:
%PDF-1.7
%âãÏÓ
7 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20200123232709+01'00') /Resources 2 0 R /MediaBox [0.000000 0.000000 595.276000 841.890000] /CropBox [0.000000 0.000000 595.276000 841.890000] /BleedBox [0.000000 0.000000 595.276000 841.890000] /TrimBox [0.000000 0.000000 595.276000 841.890000] /ArtBox [0.000000 0.000000 595.276000 841.890000] /Contents 8 0 R /Rotate 0 /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Annots [ 6 0 R ] /PZ 1 >>
endobj
8 0 obj
<</Filter /FlateDecode /Length 611>> stream
xíXÝOÛ0Ï_qoºþcwoÒ6A<´ÄTAiJ´ýõs¦uh(]B?(ueÕ:ßïww¾ØÆ¬¤áT÷{¸ºÑî'º÷*/.´ð¨{_]×|\FRðÌ`vJ81nsGÀmhµ¹6EÖ¹þÕ¶`²H
Ô,¨^]ÁÏ\sCM'Gr'Qæ8C˳Û+¸ZI!l&ApvÍ$¤Z6ÏùÙö¦:ùxGr~ ÐFvlÌ!Tnô@cæ"ÁFJ3a>UlÌ0Em¦§ÙÔ0kÀ]øËÄ<zþìg«\´UB/¸^ͧÇy<qôzxJKõÕ,¬ÙgõÐõàjï{§ èBàµîi&t^×õÑí7¸Òѧ¹ËÄ×!ë&jYQ+ÒËQûÑ»WÉ»×Û
½ãWí-j;È!rk©¶
Ci-joint mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| public static function exportToPdf($aParam){
if(isset($aParam['id_list']) && !empty($aParam['id_list'])){
require_once('medias/libraries/tcpdf/tcpdf.php');
$aRes = \models\mylists\mylists::getItemsFromIDList($aParam['id_list']);
$tbl="";
$tbl_header = '<table border="1">
<thead>
<tr>
<th class="lead" scope="col"><strong>Nom de la liste</strong></th>
<th class="lead" scope="col"><strong>Utilisateur</strong></th>
<th class="lead" scope="col"><strong>Objet</strong></th>
</tr>
</thead>';
$tbl_footer = '</table>';
$oPdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$oPdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$oPdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$oPdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
foreach($aRes as $row) {
$tbl .= "<tr><td>".$row['username']."</td>";
$tbl .= "<td>".$row['prenom']."</td>";
$tbl .= "<td>".$row['name']."</td>";
$tbl .= "</tr> ";
}
$oPdf->AddPage();
$oPdf->writeHTML($tbl_header . $tbl . $tbl_footer, true, 0, true, 0);
$oPdf->lastPage();
$fileurl = $_SERVER['DOCUMENT_ROOT']."medias/pdf/filename.pdf";
$bRes = $oPdf->Output( $fileurl,'FI');
$aResponse["message"] = "la liste a bien été exportée";
}
return $aResponse;
} |
De plus lors d'appel de l'export j'effectue une requete ajax avec Jquery vers mon url /exportToPDF géré par mon routeur côté php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $.ajax({
url : '/mylists/exportToPdf',
type : 'POST',
data: aParam,
dataType:'JSON',
success : function(oResult, statut){
var divResponse="";
$("div.response").show();
if(oResult.message != undefined){
divResponse = "<div class='alert alert-success' role='alert'>"+oResult.message+"</div>";
}
else
divResponse = "<div class='alert alert-danger' role='alert'>"+oResult.message_err+"</div>";
$("div.response").append(divResponse);
setTimeout(function() {
$('div.response').fadeOut('slow');
$('div.response').empty();
}, 7000);
}, |
Merci d'avance pour votre aide,
Cordialement,