Génération d'une facture pdf avec le PHP

Signaler
-
Messages postés
29439
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 septembre 2020
-
Bonjour, j'ai un probléme avec la génération d'une facture PDF avec le langage PHP s'il vous plaît aidez moi

2 réponses

Messages postés
29439
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 septembre 2020
336
Bonjour.
Et quel est ton souci ?
Quel code te pose problème ?
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
4
Bonjour,

Je n'ai pas la réponse à votre problème pour ce qui est de générer une facture en pdf via PHP.

Mais j'ai une solution qui exploite les fichiers WORD au format XML et avec un script PHP pour remplacer des "tags" par leur valeur.

Le contenu du fichier XML est généré par WORD. Ici tout est expliqué:
http://html5.immo-scope.com/article/php_publiPostageDocumentWord

Dans l'exemple c'est une lettre de relance. Mais dans votre cas, ce peut être justement une facture.

Le script travaille simplement sur une recherche remplacement, exemple:

<?php
$name = 'monCourrier.xml'; // nom du fichier à ouvrir
$myFile = file_get_contents('documents/'.$name);
 
$searchReplace = array(
    '«civilité»' => 'Mr',
    '«NOM»' => 'ALEXANDRIN',
    '«Prenom»' => 'Albert',
    '«Ad1»' => '98 rue Des Poêtes',
    '«cp»' => '92260',
    '«Ad2»' => null,
    '«ville»' => 'LA CELLE SAINT CLOUD',
    '«tel»' => '0143556677'
    );
 
$search  = array_keys($searchReplace);
$replace = array_values($searchReplace);
 
// envoi d'un en-tête php qui indique au navigateur web que le contenu qui arrive 
// est de type binaire et à exploiter par Word
header('Content-Type: application/msword; name="'.$name.'"');
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: attachment; filename="'.$name.'"');
 
// on génère le flux de données à la volée, aucun stockage sur disque
echo str_replace($search, $replace, $myFile);



Ici dans l'exemple, les données sont dans un ARRAY() PHP. Dans le script final, les données proviennent de la base de données.

A noter que en modifiant légèrement les dernières lignes header() on peut exploiter le contenu d'un fichier Excell au format XML, lequel fichier EXCELL peut être votre facture...

Le script PHP fait un echo (dernière ligne du script) ce qui envoie le flux XML modifié vers le navigateur web. Mais les en-têtes transmis précédemment indiquent au navigateur que le flux doit être traité par WORD (ou EXCELL si vous avez modifié ces header()) et ce sera WORD ou EXCELL qui ouvrira le document. Si c'est EXCELL, les champs calculés prendront en compte les valeurs injectées. Par exemple, votre script PHP n'aura pas besoin de calculer le TTC si vous injectez seulement une valeur HT. EXCELL calculera lui-même la valeur TTC...

Le contenu du fichier initial au format XML peut être considéré comme un template (feuille à remplir) que vous pouvez adapter très facilement via WORD (ou EXCELL), tant sur la forme que le fond, sous réserve de conserver les #étiquettes# traitées par PHP.

SI je vous suggère cette solution, c'est parce que je l'ai moi-même exploité pour des appels de charge de copropriété au format Excell.... et que c'est nettement moins prise de tête coté présentation que la génération d'un PDF depuis PHP.

A+


public function meilleurProgrammeurDuMonde() { return "MOI"; } // humour
Messages postés
29439
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 septembre 2020
336
La question n'étant pas clair... il est difficile de savoir si le souci est la création d'un document (remplissage de champs (tags)) ou la génération en format PDF...

NB: Pour la création d'un PDF on peut passer par exemple par : tFPDF
http://www.fpdf.org/fr/script/script92.php

Attendons d'avoir les réponses du Demandeur....