ホームページ >バックエンド開発 >PHPチュートリアル >phpmaster | Zend-PDFで請求書を生成します

phpmaster | Zend-PDFで請求書を生成します

Lisa Kudrow
Lisa Kudrowオリジナル
2025-03-02 08:40:10304ブラウズ

この記事では、zend_pdfを使用してPDF請求書を動的に生成する方法を示しています。 主な利点には、新しいPDFの作成や既存のPDFの変更、静的(会社情報、ロゴ)と動的(顧客、トランザクションの詳細)データの両方を備えた請求書に最適です。 zend_pdfはフォント、色、コンテンツの追加を処理しますが、テキストの配置には調整が必要になる場合があります。 生成された請求書をファイルに保存するか、ダウンロードのためにブラウザに直接送信することができます。 基本的なPDF作成を超えて、Zend_PDFは、画像包含、フォントスタイリング、リンク挿入、エラー処理などの機能を提供します。 ただし、テーブルのような複雑な要素は、手動のセル配置計算を必要とします。

始めましょう:テンプレートベースのアプローチ

ゼロからPDFを作成することは可能ですが、事前に設計されたテンプレート(例:単語やLibreofficeから、PDFとしてエクスポート)を使用する方が効率的です。 このアプローチは、コーディングと生成時間を最小限に抑えます。 テンプレートには静的要素(会社の詳細、ロゴなど)が含まれていますが、動的データはプログラムで追加されます。 以下は、例のテンプレートです(独自のものと交換してください)。

phpmaster | Generating Invoices with Zend-Pdf

Zend Frameworkのセットアップ: Zend Frameworkを使用する場合は、

https://www.php.cn/link/9974440836d4c2346926d8aca03690f78

からダウンロードしてください。 サーバーに梱包し、依存関係管理のためにコンポーザーを使用してください:。 (注:古い例ではマニュアルオートローダーを使用しました。作曲家は推奨される現代的なアプローチです)。 composer require zendframework/zendpdfPDFテンプレートのロード:

を使用して既存のPDFをロードします。 結果のオブジェクトは、配列を介して個々のページへのアクセスを提供します(例:

)。

Zend_Pdf::load("/path/to/invoice-template.pdf");フォントと色:pages$page = $invoice->pages[0];

テキストを追加する前に、フォントを定義します。 zend_pdfは、

を介して14の標準フォント(例:)またはカスタムTrueTypeフォントをサポートしています。

を使用してフォントとサイズを設定します

オブジェクト(Grayscale、RGB、CMYK、またはHTML表記)を使用して色が指定されています。 塗りつぶしの色をZend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES_BOLD);Zend_Pdf_Font::fontWithPath("/path/to/myfont.ttf");で設定します $page->setFont($font, 12);

コンテンツの追加:

Zend_Pdf_Color_* $page->setFillColor($color);

テキストを追加します。座標($ x、$ y)は、ポイント(72ポイント= 1インチ)、左の起源です。 正確な位置決めには実験が必要になる場合があります

例データ(データベースの取得に置き換えます):

$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;

テキスト配置の例(必要に応じて座標を調整):

$page->drawText($customerName, 110, 641);
$page->drawText($invoiceId, 420, 642);
// ... other text additions ...

請求書のレンダリング:

$invoice->save($pathToFile);を使用してPDFを保存するか、ダウンロードのためにブラウザに直接送信してください:

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

結論:

このガイドは、請求書生成のZend_pdfの基本的な理解を提供します。 より高度な機能を得るために、図書館の広範な機能を調べてください。 テンプレートに合わせて座標を適応させることを忘れないでください。 完全なコードの例はGitHubで利用できます(利用可能な場合は提供されるリンク)。

以上がphpmaster | Zend-PDFで請求書を生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。