Създаване на pdf отчети от PHP и FPDF библиотека

Съдържание
Започваме с изтеглянето на библиотеката от www.fpdf.org, след като я изтеглим, разархивираме и копираме директорията fpdf в директорията на нашето приложение.
Един прост пример:
 AddPage (); $ pdf-> SetFont ('Arial', 'B', 16); $ pdf-> Клетка (80, 10, 'Това е клетка 40 x 10', 1); $ pdf-> Клетка (50, 10, '50x10 клетка', 1); $ pdf-> Ln (10); $ pdf-> SetFont ('Arial', 'I', 12); $ pdf-> Клетка (80, 10, 'Това е клетка 40 x 10', 0); $ pdf-> Клетка (50, 10, '50x10 клетка', 0); $ pdf-> Изход (); ?> var13 -> 

Извикваме библиотеката от директорията fpdf, създаваме обект и добавяме страница с AddPage (), задаваме шрифта, стила и размера. След това създаваме клетка, която да съдържа данни със следната структура

$ pdf-> Клетка (ширина, височина, съдържание, граница, подравняване); // Подравняване L наляво, C центрирано, R дясно

Резултатът от предишния код в pdf ще бъде:
Функцията Output е тази, която показва pdf, ако поставим параметъра I ще изпратя файла до браузъра, ако поставим параметъра д показва прозореца за изтегляне, следователно ако в предишния код пишем
$ pdf-> Изход ('mipdf.pdf', 'd');

В резултат на това ще се появи прозорецът за изтегляне, за да запишете pdf.
Можем също така да правим по -сложни документи като фактури, прогнози или търговски отчети, да използваме бази данни като mysql.
В следния пример ще видим как да създадем бюджет с изображение на заглавка

 AddPage (); $ pdf-> SetFont ('Arial', 'B', 16); // Вмъквам заглавката, поставяйки изображение в клетка $ pdf-> Клетка (700,85, $ pdf-> Изображение ('./ images/ logo-invoice.jpg.webp', 30,12,160), 0,0, ' ° С '); $ pdf-> Клетка (100,12, "Бюджет:". $ fielddb ['nrobudget']); $ pdf-> Клетка (100,12, "Дата:". дата ('d / m / Y')); $ pdf-> Ред (35,40,190,40); $ pdf-> Ln (7); $ pdf-> Клетка (100,12, "Име:". $ dbfield ['име'])); $ pdf-> Клетка (90.12, "Nif:". $ rowcli ['nif']); $ pdf-> Ред (35,48,190,48); $ pdf-> Ln (7); $ pdf-> Клетка (100,12, "Адрес:". $ dbfield ['адрес']); $ pdf-> Ред (35,56,190,56); $ pdf-> Ln (7); $ pdf-> Клетка (90.12, акценти ("Телефон:". $ fielddb ['телефон'])); $ pdf-> Ред (35,62,190,62); $ pdf-> Ln (7); $ pdf-> Клетка (100,12, "Компютър:". $ fielddb ['компютър']); $ pdf-> Ред (35,68,190,68); $ pdf-> Ln (9); $ pdf-> SetFont ('Arial', 'B', 10); $ pdf-> Клетка (60.12, 'БЮДЖЕТ'); $ pdf-> Ln (2); $ pdf-> SetFont ('Arial', '', 8); ?> var13 -> 

След това чрез заявка към базата данни плюс цикъл while генерирам другите клетки и изчислявам сумите.
 Cell(139,7,acentos($campodb['concepto']),1,0,'1'); [/indent] [indent=1]$pdf->Cell(15,7,chr(128)." ".number_format($campodb['precio'],2,'.',''),1,0,'R'); [/indent] [indent=1]//calculo el total[/indent] $precio=$precio+$campodb['precio']; } ?> 

След това създаваме останалите клетки за съответните суми, ДДС и данъци
 Ln (7); $ pdf-> Клетка (110.7); $ pdf-> Клетка (29.8, "ОБЩО", 1.0, 'R'); $ pdf-> Клетка (15,8, chr (128). "". номер_формат ($ priceconiva, 2, '.', ''), 1,0, 'R'); $ pdf-> Ln (20); $ pdf-> Multicell (400,4, "Забележка:". $ rowrepar ['notapresu']); ?> var13 -> 

Добавяме и мултиклетка, която изпълнява функцията на няколко клетки в една, служи за големи блокове текст като бележка под линия
Накрая даваме име на нашия файл, на което можем да поставим идентификатор, който ще ги изброи според база данни и дефинираме опцията за изтегляне.
 Изход ($ файл, "D"); ?> var13 -> 

Друго интересно приложение е комбинирането на fpdf с класове за генериране на баркодове с I25, EAN 39, 128 и т.н. На уебсайта fpdf има някои примери и други скриптове, предоставени от общността за тестване. Ето един пример за плащане, което клиентите изтеглят от уебсайт.

Много често срещан проблем, който тази библиотека обикновено дава, не е зачитането на акцентите, можем да го разрешим с функция и след това да прегледаме всеки текст на съдържанието.
 

По този начин ще запазим проблема с FPDF и акцентите.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave