Bonjour tout le monde sait-il comment créer une facture PDF bien formatée via PHP?
Idéalement, je cherche quelque chose avec un en-tête et ensuite une liste détaillée des produits avec une sorte de table autour. Après un rapide Google, je serais à l'aise avec la génération d'un PDF, mais essayer de la styliser serait une autre chose.
Merci
J'utilise TCPDF (voir http://www.tcpdf.org/ ) pour cela: c'est assez capable et pas trop pénible pour obtenir une configuration. Je dirai que, selon votre source de données, vous pouvez avoir des problèmes. Dans mon cas, mes données proviennent d'une interface SOAP vers mon système de comptabilité et utilisent CodeIgniter pour mon application. Je peux le faire:
$address = $extraclient->get_company_address();
// generate the PDF invoice
$this->load->library('pdfinvoice');
// set document information
$this->pdfinvoice->SetSubject("Invoice " . $data_invoice['code_invoice']);
// add a page
$this->pdfinvoice->AddPage();
$this->pdfinvoice->StartPageOffset();
// write the client's details out
$width = $this->pdfinvoice->GetPageWidth()/2;
$margins = $this->pdfinvoice->getMargins();
$this->pdfinvoice->SetFont('times', 'b', $this->pdfinvoice->bigFont );
$this->_row($width, array("From:", "To:"));
$this->pdfinvoice->SetFont('times', 'i', $this->pdfinvoice->smallFont );
$this->_row($width, array("MY NAME", $customer['name_contact']));
$this->_row($width, array($address['phone'], $customer['name_customer']));
$this->_row($width, array($address['street'], $customer['address1_street']));
$this->_row($width, array($address['city']. ", ".$address['state']." ".$address['zipcode'],
$customer['address1_city']. ", ".$customer['address1_state']." ".$customer['address1_Zip
Le code complet est franchement trop long à insérer ici, mais vous devriez avoir l’idée, et vous obtenez un contrôle de mise en page assez précis.
Je recommanderais de créer une représentation HTML/CSS de ce que vous voulez un PDF et de l'utiliser pour générer le PDF. Il existe des dizaines d'applications pour gérer la conversion, et il existe un bon fil avec beaucoup de réponses ici: Convertir HTML + CSS en PDF avec PHP?
Vous voudrez peut-être regarder html2Pdf. C'est une classe php basée sur FPDF qui vous permet de créer un fichier PDF à partir de HTML. Il vous suffit donc de formater votre texte en utilisant HTML, puis de créer son pdf. C'est très flexible et donne un bon contrôle.
Même si vous pouvez générer des documents pdf par programme, nous avons découvert qu'il est préférable de générer une page HTML du document PDF et d'utiliser un outil/service pour convertir le code HTML en PDF.
Si vous recherchez une application que vous pouvez héberger, vous pouvez vérifier:
Si vous ne souhaitez pas gérer l'utilitaire vous-même, il existe de nombreux services en ligne gratuits/payants, dont certains sont énumérés ci-dessous:
La génération de PDF a tendance à être délicate. Tant que la facture est relativement simple, je vous recommande de créer un fichier image modèle et d’utiliser imagettftext
pour imprimer des chaînes par dessus (ou toute autre bibliothèque).
Pour les fichiers image en PDF conversion imagemagick tool suite peut être utilisé (tant qu'il est disponible sur le serveur):
exec('convert -units \'PixelsPerInch\' -density 150 '.$filename.'.png '.$filename.'.pdf');
Pour moi, toute l'approche a bien fonctionné.
Extraire la bibliothèque php-pdf-invoice
de composer. La bibliothèque est déjà conçue pour générer une facture, donc son intégration est simple et rapide!
composer require quickshiftin/php-pdf-invoice
Vous pouvez générer des fichiers PDF qui ressemblent à ceci
Il y a un exemple d'utilisation sur le fichier README. Vous implémentez essentiellement deux interfaces, une pour les commandes, une autre pour les postes de commande. Vous pouvez également configurer les polices et les couleurs selon vos préférences.