1

Bonjour,

Je n'arrive pas a enregistrer le PDF dans un fichier.

Le répertoire existe et a les droits 777

$pdf->Output('/upload/test.pdf','F');

Si je fait :
$pdf->Output();

Pas d'erreur et le fichier apparait bien.

2

		/** 
		* récupération du PDF 
		* 
		* @param	string	nom du fichier PDF 
		* @param	boolean	forcer l'affichage ou la récupération 
		* @return	string	contenu du pdf, ou true, fonction de $recup 
		*/
		function Output($nom_fichier = 'document.pdf', $return = false)


soit tu fait $pdf->Output() et ca envoie le document au navigateur, soit tu fait $content = $pdf->Output('document.pdf', true); puis tu enregistres le contenu dans le fichier de ton choix

il faut lire les commentaires des définitions de fonction, ca sert à ca smile
Ancien pseudo : lolo

3

Bonjour,

Merci pour ta réponse.

J'ai en fait lu la doc fpdf qui indique :

// enregistre le document test.PDF dans le répertoire local du serveur.
$PDF->Output("test.PDF", "F");

D'où mon test.

Il serait intéressent d'ajouter sur le site ou ici, un exemple des différent cas que l'on utilise tout les jour, enregistrer sur le serveur, envoyer par mail ...

Car si je suis ce que tu ma dit, je me retrouve avec le contenu de mon PDF dans une variable, mais après comment il faut faire pour générer le fichier physique ?


Dans HTML2pdf pour quelle raison l'option F n'est pas utiliser de fpdf pour faciliter la chose ?

/*
Destination où envoyer le document. Le paramètre peut prendre les valeurs suivantes :

* I : envoyer en inline au navigateur. Le plug-in est utilisé s'il est installé. Le nom indiqué dans name est utilisé lorsque l'on sélectionne "Enregistrer sous" sur le lien générant le PDF.
* D : envoyer au navigateur en forçant le téléchargement, avec le nom indiqué dans name.
* F : sauver dans un fichier local, avec le nom indiqué dans name (peut inclure un répertoire).
* S : renvoyer le document sous forme de chaîne. name est ignoré.
*/


En tout cas merci pour cette class super pratique et qui permet de gagner un temps précieux smile

4


Donc pour créer le fichier physiquement dans un répertoire cela est simple :

Exemple :

$content = $pdf->Output('', true);
file_put_contents("monrepertoire/doc.pdf", $content);

5

(quelle version de PHP, de html2pdf ?)

la méthode Output ne gère directement que 2 cas :
[ul]
[li]l'envoie au navigateur pour affichage : $html2df->Output('mon_fichier.pdf');
le fichier s'appelle alors 'mon_fichier.pdf'[/li]
[li]la récupération du contenu du pdf : $content = $html2df->Output('mon_fichier.pdf', true);
le nom du fichier n'a alors aucune importance, et le pdf est contenu dans $content[/li]
[/ul]

Ceci a été fait afin de simplifier l'utilisation de HTML2PDF pour les personnes ne connaissant pas fpdf. Si le contenu est récupéré, il suffit de l'enregistrer (voir les fonctions fopen, fclose, fwrite), ou de l'envoyer par mail en tant que fichier pdf rattaché (comme ici : http://prgm.spipu.net/?id=30&page)

Après, il est possible de directement utilisé la méthode output de fpdf, en faisant comme suit : $html2pdf->pdf->Output($nom_fichier, $destination);

$destination peut alors prendre les valeurs I, D, F, S de fpdf.

(attention, j'ai utilisé $html2pdf comme nom de variable de l'objet html2pdf à titre d 'exemple)

ATTENTION : file_put_contents n'est valable qu'en PHP5 il me semble
Ancien pseudo : lolo

6

Grrhh je dois vraiment être ....

Je vois bien mon fichier PDF généré, par contre le nom de la fenêtre et le nom du fichier (lorsque je clique sur Enregistrer sous) ne correspondent pas à ce que je voudrais.

J'ai essayé en faisant:

$html2pdf->Output('TOTO.pdf');

$html2pdf->pdf->Output('TOTO.pdf','I');

mais je n'arrive pas à obtenir comme nom de fichier 'TOTO.pdf'.

C'est quoi le souci?

7

chez moi, j'ai le comportement suivant :

quand je fais un clique-droit sur le lien, et que je fais "enregistrer la cible sous", c'est le nom du fichier php qui apparait, ce qui est normal car le fichier n'ayant pas encore été chargé, le nom du document est inconnu pour le navigateur

quand je clique sur le lien normalement, le fichier PDF apparait, mais le nom de la fenêtre est "exemple00.php (application/pdf Object)". Par contre, si je clique alors sur "enregistrer sous", c'est bien le nom "exmple00.pdf" qui apparait
Ancien pseudo : lolo

8

oui c'est exactement cela en fait, je me suis mal exprimé.
Je vois le fichier pdf dans le browser avec comme nom de la fenêtre "exempleexport.php (application/pdf Object)"
Quand je clique sur "enregistrer sous" le nom devient "exempleexport.pdf"

Mais ce que je voudrais c'est avoir le nom 'toto.pdf' pour le nom de la fenêtre et 'toto.pdf' lorsque je clique sur 'Enregistrer sous'.

C'est possible?