Rumah >pembangunan bahagian belakang >tutorial php >phpmaster | Menjana invois dengan zend-pdf
Artikel ini menunjukkan cara menggunakan Zend_PDF untuk menghasilkan invois PDF secara dinamik. Faedah utama termasuk membuat PDF baru atau mengubah suai yang sedia ada, sesuai untuk invois dengan data statik (syarikat, logo) dan dinamik (pelanggan, butiran transaksi). Zend_PDF mengendalikan fon, warna, dan penambahan kandungan, walaupun kedudukan teks mungkin memerlukan beberapa pelarasan. Invois yang dihasilkan boleh disimpan ke fail atau dihantar terus ke penyemak imbas untuk dimuat turun. Di luar penciptaan PDF asas, Zend_PDF menawarkan ciri -ciri seperti kemasukan imej, gaya font, penyisipan pautan, dan pengendalian ralat. Walau bagaimanapun, elemen kompleks seperti jadual memerlukan pengiraan penempatan sel manual.
Bermula: Pendekatan berasaskan template
Mewujudkan PDF dari awal adalah mungkin, tetapi menggunakan templat yang telah direka sebelum ini (mis., Dari Word atau LibreOffice, dieksport sebagai PDF) lebih cekap. Pendekatan ini meminimumkan pengekodan dan masa generasi. Templat ini mengandungi unsur -unsur statik (butiran syarikat, logo dan lain -lain), manakala data dinamik ditambah secara programatik. Berikut adalah templat contoh (ganti dengan anda sendiri).
Menyediakan Rangka Kerja Zend:
Jika anda baru untuk Rangka Kerja Zend, muat turunnya dari https://www.php.cn/link/997440836d4c2346926d8aca03690f78 . Bungkus pada pelayan anda dan gunakan komposer untuk pengurusan ketergantungan: . (Nota: Contoh yang lebih tua menggunakan autoloader manual; komposer adalah pendekatan moden yang disyorkan). composer require zendframework/zendpdf
Memuatkan templat pdf:
zend_pdf beban PDF sedia ada menggunakan. Objek yang dihasilkan memberikan akses kepada halaman individu melalui array Zend_Pdf::load("/path/to/invoice-template.pdf");
(mis., pages
). $page = $invoice->pages[0];
fon dan warna:
Sebelum menambah teks, tentukan font. ZEND_PDF menyokong 14 fon standard (mis.,) atau fon truetype tersuai melalui Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES_BOLD);
. Tetapkan fon dan saiz menggunakan Zend_Pdf_Font::fontWithPath("/path/to/myfont.ttf");
. $page->setFont($font, 12);
(Grayscale, RGB, CMYK, atau notasi HTML). Tetapkan warna isi dengan Zend_Pdf_Color_*
. $page->setFillColor($color);
Menambah Kandungan:
Menambah teks. Koordinat ($ x, $ y) berada dalam mata (72 mata = 1 inci), asal kiri bawah. Kedudukan yang tepat mungkin memerlukan eksperimen. $page->drawText($text, $x, $y);
Contoh data (ganti dengan pengambilan pangkalan data anda):
$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;Contoh penempatan teks (laraskan koordinat seperti yang diperlukan):
$page->drawText($customerName, 110, 641); $page->drawText($invoiceId, 420, 642); // ... other text additions ...
Memberi invois:
simpan pdf menggunakan atau hantar terus ke penyemak imbas untuk dimuat turun: $invoice->save($pathToFile);
header("Content-Type: application/x-pdf"); header("Content-Disposition: attachment; filename=invoice-". date("Y-m-d-H-i") . ".pdf"); echo $invoice->render();
Kesimpulan:
Panduan ini memberikan pemahaman asas mengenai Zend_PDF untuk penjanaan invois. Terokai keupayaan luas perpustakaan untuk ciri -ciri yang lebih canggih. Ingatlah untuk menyesuaikan koordinat untuk memadankan templat anda. Contoh kod lengkap boleh didapati di GitHub (pautan yang akan disediakan jika tersedia).Atas ialah kandungan terperinci phpmaster | Menjana invois dengan zend-pdf. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!