Maison > développement back-end > tutoriel php > phpmaster | Générer des factures avec Zend-PDF

phpmaster | Générer des factures avec Zend-PDF

Lisa Kudrow
Libérer: 2025-03-02 08:40:10
original
301 Les gens l'ont consulté

Cet article montre comment utiliser ZEND_PDF pour générer dynamiquement les factures PDF. Les principaux avantages incluent la création de nouveaux PDF ou la modification de celles existantes, idéales pour les factures avec des données statiques (informations de l'entreprise, logo) et dynamique (client, détails de transaction). ZEND_PDF gère les polices, les couleurs et l'ajout de contenu, bien que le positionnement du texte puisse nécessiter un certain ajustement. Les factures générées peuvent être enregistrées dans un fichier ou envoyées directement au navigateur pour télécharger. Au-delà de la création de PDF de base, ZEND_PDF propose des fonctionnalités comme l'inclusion d'image, le style de police, l'insertion de liens et la gestion des erreurs. Cependant, des éléments complexes comme les tableaux nécessitent des calculs de placement des cellules manuelles.

Débutage: approche basée sur le modèle

La création d'un PDF à partir de zéro est possible, mais l'utilisation d'un modèle pré-conçu (par exemple, à partir de Word ou LibreOffice, exportée en PDF) est plus efficace. Cette approche minimise le codage et le temps de génération. Le modèle contient des éléments statiques (détails de l'entreprise, logo, etc.), tandis que les données dynamiques sont ajoutées par programme. Vous trouverez ci-dessous un exemple de modèle (remplacer par le vôtre).

phpmaster | Generating Invoices with Zend-Pdf

Configuration du framework zend:

Si vous êtes nouveau dans Zend Framework, téléchargez-le depuis https://www.php.cn/link/997440836d4c2346926d8aca03690f78 . Déballer sur votre serveur et utilisez Composer pour la gestion des dépendances: composer require zendframework/zendpdf. (Remarque: des exemples plus anciens ont utilisé un autoloader manuel; le compositeur est l'approche moderne recommandée).

Chargement du modèle PDF:

zend_pdf charge les PDF existants à l'aide de Zend_Pdf::load("/path/to/invoice-template.pdf");. L'objet résultant donne accès aux pages individuelles via le tableau pages (par exemple, $page = $invoice->pages[0];).

Polices et couleurs:

Avant d'ajouter du texte, définissez la police. ZEND_PDF prend en charge 14 polices standard (par exemple, Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES_BOLD);) ou des polices TrueType personnalisées via Zend_Pdf_Font::fontWithPath("/path/to/myfont.ttf");. Réglez la police et la taille en utilisant $page->setFont($font, 12);.

Les couleurs

sont spécifiées à l'aide d'objets Zend_Pdf_Color_* (notation de gris, RVB, CMYK ou HTML). Réglez la couleur de remplissage avec $page->setFillColor($color);.

Ajout de contenu:

$page->drawText($text, $x, $y); Ajoute du texte. Les coordonnées ($ x, $ y) sont en points (72 points = 1 pouce), origine inférieure gauche. Un positionnement précis peut nécessiter l'expérimentation.

phpmaster | Generating Invoices with Zend-Pdf

Exemples de données (remplacer par votre récupération de base de données):

$customerName = "Angelina Jolie";
$invoiceId = "DF-00025786423";
$items = array(
    array("Golden Globe Polish", 1, 25.50, 25.50),
    array("Trophy Shelf", 2, 180.00, 360.00),
    array("DIY Tattoo Kit", 1, 149.99, 149.99)
);
$subtotal = 535.49;
$discount = 10;
$amountDue = 481.94;
Copier après la connexion

Exemple de placement de texte (ajuster les coordonnées au besoin):

$page->drawText($customerName, 110, 641);
$page->drawText($invoiceId, 420, 642);
// ... other text additions ...
Copier après la connexion

Rendre la facture:

Enregistrez le PDF à l'aide de $invoice->save($pathToFile); ou envoyez-le directement au navigateur pour télécharger:

header("Content-Type: application/x-pdf");
header("Content-Disposition: attachment; filename=invoice-". date("Y-m-d-H-i") . ".pdf");
echo $invoice->render();
Copier après la connexion

Conclusion:

Ce guide fournit une compréhension fondamentale de Zend_PDF pour la génération de factures. Explorez les grandes capacités de la bibliothèque pour des fonctionnalités plus avancées. N'oubliez pas d'adapter des coordonnées pour correspondre à votre modèle. L'exemple de code complet est disponible sur github (lien à fournir si disponible).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal