Bonjour à tous,

Je souhaiterai pouvoir afficher dans le navigateur ou plutôt faire un téléchargement automatique d'un pdf que je viens de générer avec html2pdf.
Je travaille en PHP avec un MVC et mon code se trouve dans le contrôleur.

J'ai commencé en voulant générer le pdf que j'envoie sur le serveur avec le code ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
// code connexion BD
require_once(ROOT."/html2pdf/html2pdf.class.php");
$fonts_hrqm_url = ROOT."/html2pdf/_tcpdf_5.0.002/fonts";
ob_start();
// code requêtes SQL
// code stockage html + résultats requêtes dans $content
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->setDefaultFont('Arial');
$html2pdf->WriteHTML($content);
$name = "test.pdf";
$path_pdf = ROOT.'/pdf/'.$name;
$html2pdf->Output($path_pdf, 'F');
Je n'ai pas mis tout le code (voir commentaires) mais s'il est nécessaire demandez le moi
Jusque là pas de problème, ce code marche parfaitement. Mon pdf est bien envoyé sur mon serveur avec le bon contenu et la bonne mise en page.

Mon soucis s'est que ce n'est pas ça qu'on m'a demandé ^^
On ne veut pas stocker le pdf, on veut pouvoir le télécharger.
Que le téléchargement se déclenche automatiquement quand le pdf est créé.
J'ai donc essayé ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
$html2pdf = new HTML2PDF('P', 'A4', 'fr');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->setDefaultFont('Arial');
$html2pdf->writeHTML($content);
$html2pdf->Output('test.pdf', 'D');
Mais voilà ça aurait été trop simple !
Quoi que je fasse j'ai toujours l'une de ces erreurs qui s'affichent :
Une erreur est survenue. Raison : error (404)
ou
%PDF-1.7
3 0 obj
<</Type /Page /Parent 1 0 R /MediaBox [0 0 595.28 841.89] /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R
/Annots [ 200001 0 R ]
/Contents 4 0 R>> endobj
4 0 obj
<</Filter /FlateDecode /Length 269>> stream ...
Cela fait plusieurs jours que je suis sur ce problème, à chercher dans les forums des solutions et croyez moi j'en ai pas mal testé !
Comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
header("Content-Type: application/pdf"); // avant le output
ob_get_contents();
header("Content-Type: application/force-download; name=\"$path_pdf\"");
Mais impossible de télécharger ce pdf... toujours les mêmes erreurs...

Est-ce que ça pourrait venir du fait que je fasse dans le contrôleur ?
J'avoue que je suis perdue et une aide extérieure est plus que la bienvenue

Merci d'avance à ceux qui prendront le temps de me répondre