PHP créer une facture PDF
Bonjour Est-ce que quelqu'un sait comment je peux créer une facture PDF joliment formatée à travers 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 pour essayer et le style il serait bien autre chose tout à fait.
Merci
5 réponses
j'utilise TCPDF (voir http://www.tcpdf.org / ) pour ceci: son assez capable et pas trop douloureux pour se mettre en place. Je dirai que selon votre source de données, vous pourriez 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, et 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 à développer ici, mais vous devez avoir l'idée, et vous obtenez assez précis contrôle de mise en page.
je recommande de créer une représentation html / css de ce que vous voulez un PDF de et d'utiliser cela pour générer le PDF. Il y a des douzaines d'applications pour gérer la conversion, et il y a un bon fil avec beaucoup de réponses ici: convertir HTML + CSS en PDF avec PHP?
vous pouvez regarder html2Pdf. Il s'agit d'une classe php basée sur FPDF et elle vous permet de créer un fichier PDF à partir de HTML. Il suffit donc de formater votre texte en utilisant html, puis de créer son pdf. Son très flexible et donner greate contrôle.
la génération PDF a tendance à être délicate. Aussi longtemps que la facture est relativement simple, je recommande de créer un fichier d'image de modèle et d'utiliser imagettftext
pour imprimer des chaînes de caractères dessus (ou toute autre bibliothèque).
pour la conversion de fichier image en PDF imagemagick la suite d'outils peut être utilisée (tant qu'elle est disponible sur le serveur):
exec('convert -units \'PixelsPerInch\' -density 150 '.$filename.'.png '.$filename.'.pdf');
pour moi, toute l'approche a bien fonctionné.
Checkout php-pdf-invoice
bibliothèque de compositeur. La Bibliothèque est déjà conçue pour générer une facture donc c'est facile et rapide à intégrer!
composer require quickshiftin/php-pdf-invoice
vous pouvez générer des fichiers PDF qui ressemblent à ceci
il y a un exemple d'usage sur le README. Essentiellement vous implémentez deux interfaces, une pour les commandes, une autre pour les articles de commande. Vous pouvez configurer les polices et les couleurs à votre goût.