xInvoice is an advance PHP application to generate beautifully designed invoices/sales-purchase orders/quotes with few lines of codes. You can create attractive, professional invoices using xinvoice. All you need to do is write 2 lines of code to generate invoice in pdf/html format.
By default, You can enter all data of invoice in the config data files and invoice will be generated on the basis of that data. You can modify complete data dynamically using various functions available in script.
This program also allows you to generate invoice from database as it comes with PDOModel database helper class so you can connect with database and fill the invoice values directly from database also.
Not just invoice, order, quote but you can also create any type report easily by copying existing structure and modifying it and pass data from database using PDOModel to generate entirely new report.
You can easily integrate xInvoice script to your application to generate invoices/reports. You need to include the script file in your application. After this, you can create object of class and run render function to generate pdf.
xInvoice comes with more than 100 different designs of invoice/ order / receipt/ quotes. You can also add new templates or customize available templates easily with little knowledge of coding. You can generate the pdf as well as HTML of invoice/reports. In all demo example, we have given button to generate HTML and pdf. Just to mention the obvious, you can also generate pdf/html directly without any button click event also.
It's really simple! No settings required to generate basic pdf.
Download the folder and extract it. Main files that you are going to use in your application, are in the script folder. Demo and documentation folder can be used for reference purpose. They are not required in your application.
In your application, create a php file and include the following file.
require_once “script/xinvoice.php”;
Now you can create object of Xinvoice class and run various function to generate pdf.
//Create object of xinvoice application $xinvoice = new Xinvoice(); // call render function on object to generate PDF // NOTE: You need to call this function before any html ouput // this will use the data from default data file mentioned in settings file echo $xinvoice->render();
This will generate the basic pdf based on the default data file mentioned in the settings file. The data file contains all the data of pdf. You can create new data file or modify existing file. You can also generate invoice from database.
Please note this is most basic example. xInvoice allows you to do various customization. You can specify various settings in config.php file and data for file can be passed directly or using data-files. The pdf must be outputted before any html output
It's really simple.
Here is the HTML Structure of the pdf (simplified):
This is general structure of pdf, you can change/move/edit/delete/add new sections.
Please note that if you haven't turned off data file settings in config/settings.php page then it will override the data file's data having same key. You can use this functionality to override only specific data. It's liek same key of array will be replaced.
You can either set logo image or pass company name and tagline to be shown at the place of logo. Whether to display logo as image or text can be set in config.php file.
// You can set invoice logo using this function or can change directly in config file. $xinvoice->setInvoiceLogo("http://pdocrud.com/assets/img/PDOCrud-logo.png"); //OR //set company array - like company name, logo etc $company = array("logo" => "http://pdocrud.com/assets/img/PDOCrud-logo.png"); //set company data $xinvoice->setInvoiceCompanyData($company);
You can set date and due dates of invoice. You can also set in config to auto set date to current date.
// You can set invoice date using this function or can change directly in config file. $xinvoice->setInvoiceDate("01/04/2018"); // You can set invoice due date using this function or can change directly in config file. $xinvoice->setInvoiceDuedate("01/05/2018");
Header normally contains information like invoice no, date, due date, total due etc. This can be set using this function.
//set header array $header = array("no" => "Nx-1001", "date" => "01/04/2018"); //set header data $xinvoice->setInvoiceHeaderData($header);
Set sender data like name, address, city, phone. You can add as many details as you want.
//set from array $from = array("name" => "Test Company", "address1"=>" Dummy address"); //set from data $xinvoice->setInvoiceFromData($from);
Set receiver data like name, address, city, phone. You can add as many details as you want.
//set to array $to = array("name" => "Test Company", "address1"=>" Dummy address"); //set to data $xinvoice->setInvoiceToData($to);
You can set items one by one using setInvoiceitem() function or if you want to add all items togther, you can use setInvoiceItems() with items array. Items can contain any number of columns that can fit in page. The total amount of item must have "total" key to calculate items totals.
//Create item with key and value to be used for item information section $item = array("name" => "Graphic Card", "desc" => "Graphic Card of computer", "qty" => 2, "rate" => 100, "total" => 200); // You can set invoice item using this function or can change directly in config file. $xinvoice->setInvoiceitem($item); //Create items array with key and value to be used for item information section $items[] = array("name" => "Motherboard", "desc" => "motherboard of computer", "qty" => 1, "rate" => 100, "total" => 100); $items[] = array("name" => "Ram", "desc" => "ram of computer", "qty" => 2, "rate" => 100, "total" => 200); // You can set invoice items using this function or can change directly in config file. $xinvoice->setInvoiceItems($items);
You can set payment related information like bank details, payment methods , notes etc.
//set payment array $payment = array("method" => "Cash on delivery", "note"=>"Please make sure to have req. cash on delivery day"); //set payment data $xinvoice->setInvoicePaymentData($payment);
You can set message before footer to be displayed using setInvoiceMessageData() function for example thank you message, remark or signature column.
//set message array $message = array("thankyou" => "Thank you for your business", "note"=>"Lorem Ipsum is simply dummy text of the printing and typesetting industry"); //set message data $xinvoice->setInvoiceMessageData($message);
You can set terms and conditions or any other information to be displayed in footer using setInvoiceFooterData() function/
//set footer array $footer = array("note" => "Lorem Ipsum is simply dummy text of the printing and typesetting industry."); //set footer data $xinvoice->setInvoiceFooterData($footer);
Please note that if you haven't turn off data file in settings page then it will override the label with same key. You can use this functionality to override only specific data.
Set company related labels, it's not required if you are using logo as image, below example is just show to explain it's working.
//set company array $company = array("logo" => "http://pdocrud.com/assets/img/PDOCrud-logo.png"); //set company label $xinvoice->setInvoiceCompanyLabel($company);
You can set label for date and due dates of invoice.
// You can set invoice date label using this function or can change directly in config file. $xinvoice->setInvoiceDateLabel("Invoice Date: "); // You can set invoice date using this function or can change directly in config file. $xinvoice->setInvoiceDueDateLabel("Invoice DueDate: ");
Header label normally contains information like invoice no, date, due date, total due etc. This can be set using this function.
//set header array $header = array("no" => "Inv. No: "); //set header label $xinvoice->setInvoiceHeaderLabel($header); // or You can set invoice number using this function or can change directly in config file. $xinvoice->setInvoiceNoLabel("Inv. No.: ");
Set sender label like name, address, city, phone. You can add as many details as you want.
//set from array $from = array("name" => "Sender: "); //set from label $xinvoice->setInvoiceFromLabel($from);
Set receiver label like name, address, city, phone. You can add as many details as you want.
//set to array $to = array("name" => "Receiver: "); //set to label $xinvoice->setInvoiceToLabel($to); ;
You can set payment related information like bank details, payment methods , notes etc.
//set payment array $payment = array("method" => "Payment method: ", "note"=>"Important Note: "); //set payment label $xinvoice->setInvoicePaymentLabel($payment);
You can set terms and conditions or any other information label to be displayed in footer using setInvoiceFooterData() function/
//set footer array $footer = array("note" => "Terms and Conditions: "); //set footer label $xinvoice->setInvoiceFooterLabel($footer);
You can apply style different sections of invoice by setting style of that the section. You can set this style information directly in data file or using the function setInvoiceStyleSettings().
/** * Set style settings of invoice sections * @param string $section section of invoice * @param string $subsection sub section of invoice (optional) * @param bool $style set style of section true to show, false to style * return object Object of xinvoice */ // style complete header" $xinvoice->setInvoiceStyleSettings("header","","background: #ccc"); // $xinvoice->setInvoiceStyleSettings("invoice","date","font-weight:bold");
You can hide/display different sections of invoice by setting display of that the section. You can set this display information directly in data file or using the function setInvoiceDisplaySettings(). If true or not set display of that section, it will show the section. To hide any section, you need to set display false of that section. You can hide complete section or subsection of that section.
/** * Set display settings of invoice sections * @param string $section section of invoice * @param string $subsection sub section of invoice (optional) * @param bool $display set display of section true to show, false to hide * return object Object of xinvoice */ // hide complete header $xinvoice->setInvoiceDisplaySettings("header","",false); //hide from(Sender) "name" not complete "from"(sender) $xinvoice->setInvoiceDisplaySettings("from","name",false);
You can format different sections of invoice by setting format of that the section. You can set this format information directly in data file or using the function setInvoiceFormatSettings(). For example if you want to format date as "d-m-y", or add prefix/suffix to quantity column, you can do this using this function.
/** * Set format settings of invoice sections * @param string $section section of invoice * @param string $subsection sub section of invoice (optional) * @param bool $format set format of section true to show, false to hide * return object Object of xinvoice */ // hide complete header $xinvoice->setInvoiceFormatSettings("header","",false); //hide from(Sender) "name" not complete "from"(sender) $xinvoice->setInvoiceFormatSettings("from","name",false); echo $xinvoice->render();
xInvoice also provides REST support to generate PDF. You can pass invoice data as post data and it generates pdf. Generated pdf saved in downloads folder and it returns the path of the invoice generated.
For example, if you are developing a mobile application and want to generate pdf invoice, you can use pass your data to application as post and it will generate the pdf and will return the path of generated pdf.
Please note that it provides basic rest support, it doesn't have the authentication and other features like our script RESTp
Many times, you want to generate the dynamic columns to format your data for example, you might want to generate totals from qty and rate multiplication or suppose you want to merge item name and description column in a single column, you can use this addCol function to generate the dynamic columns. Dynamic columns are always added in the last of the item column position, you can change position of column using reorder items function. You can use "merge", "sum", "multiply", "divide" and "subtract" between 2 columns to generate new column.
xInvoice contains 100s of predefined templates that you can directly use in your project. You can also create new template easily by copying existing content. Templates are basically php, html and css code. You will need basic knowledge of php, html and css to create/modify the template. Template structure is specified in HTML structure section. It's quite easy to change if know basics of php and css. You can add new sections, move one sub section to different subsection.
Go to script/templates folder. Templates folder contains 4 folder, You can chose any one of folder to create new template or you can create a new folder. You need to create a file. If you want to use any existing template structure, you can copy and do required changes. You can set template name in settings (Config.php) or at the time of object creation.
Go to script/templates folder. Chose the template you want to modify. Now create a new file and copy the content of that file from existing template and do the required customization. Now, You can set template name in settings (Config.php) or at the time of object creation.
CSS for templates can be added in 2 ways. One way to add it using the data files style key and other way is write css in the template files.
If you want to edit any template, best way is to do so, is to create a new template and copy some existing similar template to prevent overwriting in case of future updates.
We don't provide support for custom templates developed by user. All invoices are in table format to make sure that it prints the pdf in proper format. We have given option to generate the HTML also but it won't be responsive.
xInvoice provides a unique way to specify data to pdf by creating the data files. Data files contains data, label, style, display and formatting information of invoice pdf. You can create as many data files as you want. For each xinvoice object, you can pass data file name as parameter. You can specify default data file name in the settings page. Data files can be used to support multi-language easily. You can create data files for each language and pass as data file name for each different language in xInvoice object.
Data files contains basically 5 parts.
$xData["invoice"]["no"]["data"] = "DY-13123"; $xData["invoice"]["date"]["data"] = "01-08-2018";
$xData["invoice"]["date"]["label"] = "DATE: "; $xData["invoice"]["total_due"]["label"] = "TOTAL AMOUNT: ";
$xData["to"]["name"]["style"] = "font-size: 16px"; $xData["company"]["logo"]["style"] = "max-width:300px";
$xData["itemcount"]["display"] = false; $xData["message"]["display"] = true;
$xData["invoice"]["due_date"]["format"] = array("date", "Y-m-d"); $xData["invoice"]["total_due"]["format"] = array("currency", "$");
You can specify new data, label, style, display and formatting settings and use it in your template. We have already created many data files with different style, data and formatting settings that you can directly use or customized it to fit to your need. If you are adding a new key, then you should add that in your template to make is show.
In most of the cases, you will need a fixed layout based template with fixed label, style and formatting So you can create a single default data file where label, style, display and formatting can be specified and Only data needs to be specified dynamically by using various set data function.
For more customization I included custom classes
Complete settings file fields and explanation of various fields
/* Configuration Settings */ /* *********************** database conection settings *********************** */ /* *********************** required only if you want to get data for pdf from the database using PDOModel object *************** */ //Set the host name to connect for database $xSettings["hostname"] = "localhost"; //Set the database name $xSettings["database"] = "xinvoice"; //Set the username for database access $xSettings["username"] = "root"; //Set the pwd for the database user $xSettings["password"] = ""; //Set the database type to be used $xSettings["dbtype"] = "mysql"; //Set the database type to be used $xSettings["characterset"] = "utf8"; //Set the default language to be used. This is for the success and error message language. $xSettings["lang"] = "en"; /* ******************** data settings ***************************************** */ //whether to load the default data or not. $xSettings["defaultData"] = true; //Set the name of default data file(without extension) to be used. $xSettings["datafile"] = "data"; //whether to use logo image (image) or company name and tagline(text) $xSettings["companylogo"] = "image"; //whether to auto calculate item wise total or not $xSettings["autoCalcItemTotal"] = true; //Default Number format (decimal point, separator, thousand separator) $xSettings["numberformat"] = array(2, 1); //Get default value of date. Acceptable values are default data date(config_date) or current date(current_date). // if current_date entered, then it will show the current date else it will show the date from data. $xSettings["defaultDateVal"] = "config_date"; //Get default value of total due from grand total(auto) or from config data(config) $xSettings["defaultTotalDueVal"] = "auto"; //Set default background color of the invoice $xSettings["backgroundColor"] = "#e2e2e2"; //Set default font color of the invoice $xSettings["fontColor"] = "#e1a827"; //Default currency symbol $xSettings["currency"] = "$"; //Default currency direction $xSettings["currencyDirection"] = "left"; //whether to add watermark or not $xSettings["watermark"] = false; //If watermark is yes, then whether watermark text or image $xSettings["watermarkType"] = "text"; //Water mark value $xSettings["watermarkValue"] = "Invoice"; //Default pdf file name $xSettings["filename"] = "invoice.pdf"; //whether to ouput it on browser or browser+force download or save file at particular location $xSettings["output"] = "I"; //whether to email the pdf generated or not $xSettings["emailpdf"] = false; //delimiter for csv file $xSettings["delimiter"] = ","; //whether to enable the logs. $xSettings["enableLogs"] = true; //Path of log file $xSettings["logFile"] = XInvoiceABSPATH."logs/logs.txt"; /********************** mpdf object parameters *********/ //mode $xSettings["mode"] = ""; //paper size $xSettings["format"] = "A4"; //font size $xSettings["default_font_size"] = 0; //default font $xSettings["default_font"] = ""; //mg left $xSettings["mgl"] = 5; //mg right $xSettings["mgr"] = 5; //mg top $xSettings["mgt"] = 5; //mg bottom $xSettings["mgb"] = 16; //mg header $xSettings["mgh"] = 5; //mg footer $xSettings["mgf"] = 9; //page orientation $xSettings["orientation"] = "P"; //document direction $xSettings["direction"] = "ltr"; //Set this true if you do not need complex table borders, //improves processing time of mpdf $xSettings["simpleTable"] = true; /****************** PDF Meta Data *****/ //PDF title $xSettings["title"] = ""; //PDF author $xSettings["author"] = ""; //PDF creator $xSettings["creator"] = ""; //PDF subject $xSettings["subject"] = ""; //PDF keywords $xSettings["keywords"] = ""; /* * ************** Email Related Settings (if 'emailpdf' setting is set true)***************** */ //whether to use phpemail or smtp. For windows hosting, you need SMTP $xSettings["emailMode"] = "PHPMAIL"; $xSettings["SMTPHost"] = "ajax"; $xSettings["SMTPPort"] = 25; $xSettings["SMTPAuth"] = true; $xSettings["SMTPusername"] = ""; $xSettings["SMTPpassword"] = ""; $xSettings["SMTPSecure"] = ""; $xSettings["SMTPKeepAlive"] = true;
xInvoice supports various callback functions at various events that can be used to perform specific operations as required. Callback functions are very useful to perform special operation as per requirement. For example, if you want to change the change the data before html formatting, you can use callback functions. You need to add call back function and needs to include function definition in the script/xinvoice.php file..
$xinvoice = new Xinvoice(); $xinvoice->addCallback("before_html_formatting", "beforeHtmlFormatting"); $xinvoice->addCallback("after_html_formatting", "afterHtmlFormatting"); $xinvoice->addCallback("after_pdf", "afterPDF"); $xinvoice->addCallback("after_html", "afterHTML"); echo $xinvoice->render();
Gets specific setting from settings defined in config.php
/** * Get particular configuration setting * @param string $setting Config Key for which setting needs to be retreived * return mixed Configuaration setting value */ function getSettings($setting)
Set specific setting in settings defined in config.php
/** * Set particular configuration setting * @param string $setting Config key for setting * @param mixed $value Value for setting * return object Object of class */ function setSettings($setting, $value)
Set current language for the success and error messages
/** * Set current language * @param string $lang language to be used * return object Object of class */ function setCurrentLang($lang)
Get current language data for the success and error messages
/** * Return language data * @param string $param Get data for language * return sting language translation for the parameter */ function getLangData($param)
Set current language data for the success and error messages
/** * Set language data * @param string $param lanuguage key for which data needs to save * @param string $val Value for the language parameter * return object Object of class */ function setLangData($param, $val)
Set template name for the pdf to be generated.
/** * Set template name * @param string $templatename template name to be used * return object Object of class */ function setTemplateName($templatename)
Get template name for the pdf to be generated.
/** * get current template name * return string current template name */ function getTemplateName() {
Set the document RTL state
/** * Set the document RTL state * @param string $direction Defines the directionality of the document.Default is ltr * return string current template name */ function setDirectionality ($direction = "ltr")
Add callback function
/** * Add callback function to be called on certain event * @param string $eventName Eventname for which callback function needs to be called * @param string $callback Name of callback function * return object Object of class */ function addCallback($eventName, $callback)
Reset all total fields
/** * Reset all totals fields * return object Object of class */ function resetTotal()
Reset all item columns
/** * Reset all items * return object Object of class */ function resetItemFields()
Set complete data array to be used for generating invoice
/** * Set complete data array to be used for generating invoice * @param array $data data to be set * return object Object of class */ function setInvoiceDataArray($data)
Generic function to set various data parts of invoice
/** * Generic function to set various data parts of invoice * @param array $data data to be set * @param array $type type of data * return object Object of class */ function setInvoiceData($data, $type)
Set invoice 'header' details e.g. invoice no, date, due date, total due
/** * Set invoice 'header' details e.g. invoice no, date, due date, total due * @param array $data data in format of array * return object Object of xinvoice */ function setInvoiceHeaderData($data)
Set invoice 'from'(sender) details e.g. name, address, city, postalcode etc
/** * Set invoice 'from' details * @param array $data data in format of array * return object Object of xinvoice */ function setInvoiceFromData($data)
Set invoice 'to'(receiver) details e.g. name, address, city, postalcode etc
/** * Set invoice 'to' details * @param array $data data in format of array * return object Object of xinvoice */ function setInvoiceToData($data)
Set invoice company details e.g. logo, name etc
/** * Set invoice 'Company' details * @param array $data data in format of array * return object Object of xinvoice */ function setInvoiceCompanyData($data)
Set invoice Payment details e.g. method, note etc
/** * Set invoice 'Payment' details * @param array $data data in format of array * return object Object of xinvoice */ function setInvoicePaymentData($data)
Set invoice Total details e.g. subtotal, discount, tax etc
/** * Set invoice 'Total' details * @param array $data data in format of array * return object Object of xinvoice */ function setInvoiceTotalData($data)
Set invoice Message details e.g. notes, remarks, thank you message etc
/** * Set invoice 'Message' details * @param array $data data in format of array * return object Object of xinvoice */ function setInvoiceMessageData($data)
Set invoice Footer details e.g. terms and condition, notes, remarks etc
/** * Set invoice 'Footer' details * @param array $data data in format of array * return object Object of xinvoice */ function setInvoiceFooterData($data)
Set invoice Logo details
/** * Set invoice 'Logo' * @param string $logo logo of company * return object Object of xinvoice */ function setInvoiceLogo($logo)
Set invoice Number details
/** * Set invoice 'Number' * @param string $no invoice no. to be set * return object Object of xinvoice */ function setInvoiceNo($no)
Set invoice Date details
/** * Set invoice 'Date' * @param string $date invoice date to be set * return object Object of xinvoice */ function setInvoiceDate($date)
Set invoice 'Due Date' details
/** * Set invoice 'Due Date' * @param string $date invoice due date to be set * return object Object of xinvoice */ function setInvoiceDueDate($date)
Set invoice Items details
/** * Set invoice Items * @param array $items array of items to be added * return object Object of xinvoice */ function setInvoiceItems($items)
Set invoice single item details
/** * Set invoice single item * @param array $item Item to be added * return object Object of xinvoice */ function setInvoiceItem($item)
Set invoice in between section details
/** * Set invoice different section data * @param string $sectionName section name to be set * @param string $val value of section * return object Object of xinvoice */ function setInvoiceSections($sectionName, $val)
Set complete data of invoice
/** * Set invoice complete data passed as in array format * @param array $invoiceData Complete invoice data array * return object Object of xinvoice */ public function setInvoiceCompleteData($invoiceData) {
Generic function to set label
/** * Generic function to set label * @param array $label label to be set * @param array $type type of label */ function setInvoiceLabel($label, $type)
Set invoice 'header' details label
/** * Set invoice 'header' details * @param array $label label in format of array * return object Object of xinvoice */ function setInvoiceHeaderLabel($label)
Set invoice 'from' details label
/** * Set invoice 'from' details * @param array $label label in format of array * return object Object of xinvoice */ function setInvoiceFromLabel($label)
Set invoice 'to' details label
/** * Set invoice 'to' details * @param array $label data in format of array * return object Object of xinvoice */ function setInvoiceToLabel($label)
Set invoice 'Company' details label
/** * Set invoice 'Company' details * @param array $label data in format of array * return object Object of xinvoice */ function setInvoiceCompanyLabel($label)
Set invoice 'Payment' details label
/** * Set invoice 'Payment' details * @param array $label data in format of array * return object Object of xinvoice */ function setInvoicePaymentLabel($label)
Set invoice 'Message' details label
/** * Set invoice 'Message' details * @param array $label data in format of array * return object Object of xinvoice */ function setInvoiceMessageLabel($label)
Set invoice 'Footer' details label
/** * Set invoice 'Footer' details * @param array $label data in format of array * return object Object of xinvoice */ function setInvoiceFooterLabel($label)
Set invoice 'Total' details label
/** * Set invoice 'Total' details * @param array $label data in format of array * return object Object of xinvoice */ function setInvoiceTotalLabel($label)
Set invoice 'Invoice no' details label
/** * Set invoice 'Invoice no' * @param string $label invoice no label to be set * return object Object of xinvoice */ function setInvoiceNoLabel($label)
Set invoice 'Invoice Date' details label
/** * Set invoice 'Date' Label * @param string $label invoice date label to be set * return object Object of xinvoice */ function setInvoiceDateLabel($label)
Set invoice 'Due Date' details label
/** * Set invoice 'Due Date' * @param string $label invoice due date label to be set * return object Object of xinvoice */
Set invoice 'Invoice Items' details label
/** * Set invoice Items label * @param array $label array of items label to be added * return object Object of xinvoice */ function setInvoiceItemsLabel($label)
Set display settings of invoice sections
/** * Set display settings of invoice sections * @param string $section section of invoice * @param string $subsection sub section of invoice (optional) * @param bool $display set display of section true to show, false to hide * return object Object of xinvoice */ function setInvoiceDisplaySettings($section, $subsection = "", $display = true)
Set style settings of invoice sections
/** * Set style settings of invoice sections * @param string $section section of invoice * @param string $subsection sub section of invoice (optional) * @param string $style set style of section * return object Object of xinvoice */ function setInvoiceStyleSettings($section, $subsection = "", $style = "")
Set format settings of invoice sections
/** * Set format settings of invoice sections * @param string $section section of invoice * @param string $subsection sub section of invoice (optional) * @param array $format set format of the invoice section * return object Object of xinvoice */ function setInvoiceFormatSettings($section, $subsection = "", $format = "")
Get mpdf object to apply various functions directly if want.
/** * Get mpdf object * @param array $param Paramater for mpdf object * return object Object of mpdf */ function getMPDFObj($param = array())
Settings related to watermark can be done in config.php page
/** * Apply watermark to mpdf * return object Object of mpdf */ function setWatermark($mpdf)
Add totals fields and define their dynamic calculation
/** * Add dynamic totals field * @param string $totalId unique id for each totals * @param string $lableName Lable for the field * @param array $data data to be used to generate the field * @param string $operation Whether to use sum or percentage operation to generate field * @param string $param Parameter like how much percentage etc. * @param bool $negative Whether field will be negative or positive for further dynamic_columns. * return object Object of xinvoice */ function addInvoiceTotal($totalId, $lableName = "", $data = array(), $operation = "+", $param = 0, $negative = false) {
Directly generate new column using 2 columns of items
/** * Add a new column to the invoice table * @param string $colName Unique Column name to be added * @param string $labelName Label name (heading) of column * @param string $type Calculation type of the column whether it is generate using 'sum', 'merge' etc function * @param array $parameters Columns (or value) on the basis of which new column to be added * return object Object of class */ function addCol($colName, $labelName, $type, $parameters = array())
Directly convert csv file to pdf
/** * Converts a csv file to pdf * @param string $filename csv filename * @param string $param Set parameter (style, class etc) for the pdf table generated * return object Object of class */ function csvToPDF($filename, $param = array())
Directly convert xml file to pdf
/** * Converts a xml file to pdf * @param string $filename xml filename * @param string $param Set parameter (style, class etc) for the pdf table generated * return object Object of class */ function xmlToPDF($filename, $param = array()) {
Directly convert html file to pdf
/** * Converts a html file to pdf * @param string $html html data * return object Object of class */ function htmlToPDF($html)
PDOModel object to perform database related queries
/** * Get PDOModel object * return object Object of PDOModel class */ function getPDOModelObj()
render data passed as PDF or HTML
/** * render data as PDF or HTML * @param string $operationType whether to generate PDF or HTML * @param array $data Optional parameter to be passed * return mixed PDF or HTML */ function render($operationType = "PDF", $data = array())
In order to check whether it will work for you or not, you can test the generation of pdf using mpdf library. The mpdf library can be downloaded from their website. https://mpdf.github.io/
In order to check whether it will work for you or not, you can test the generation of pdf using mpdf library. The mpdf library can be downloaded from their website.
Initial Release
Thanks so much to