FPDF xCRUD 1.7.25

FPDF Integrated with xCRUD

HIDE CODE
<?php
require_once(dirname(__file__) . '/../../xcrud/plugins_php/TCPDF-main/tcpdf.php');
//$app_name = "xCrud_1.7.25.1";
//$app_name = $_SERVER["DOCUMENT_ROOT"];

// Get the full path of the current PHP file
$currentFile = $_SERVER["SCRIPT_FILENAME"];

// Get the document root directory
$documentRoot = $_SERVER["DOCUMENT_ROOT"];

// Calculate the directory path relative to the document root
$relativePath = substr($currentFile, strlen($documentRoot));

// Remove leading and trailing slashes (if any)
$relativePath = trim($relativePath, '/\\');

// Split the path into an array
$pathParts = explode('/', $relativePath);

// The immediate parent directory (which is 'app' in your case)
$parentDir = $pathParts[0];

// Output the parent directory
//echo $parentDir;
$app_name = $parentDir;

//die();
//============================================================+
// File name   : example_001.php
// Begin       : 2008-03-04
// Last Update : 2013-05-14
//
// Description : Example 001 for TCPDF class
//               Default Header and Footer
//
// Author: xcrud.net
//USD
// (c) Copyright:
//               xCRUD
//============================================================+

/**
 * Creates an example PDF TEST document using TCPDF
 * @package com.tecnick.tcpdf
 * @abstract TCPDF - Example: Default Header and Footer
 * @author Nicola Asuni
 * @since 2008-03-04
 */

// Include the main TCPDF library (search for installation path).
$db = Xcrud_db::get_instance();
// $qry = "SELECT c.client_name,atr.ref_id,atr.due_date, atr.description AS header_description,atr.transaction_date,atl.price,p.description,atl.product_description,atl.quantity,atl.sub_total_amount,atl.total_amount,atl.vat FROM acc_transactions atr
// JOIN acc_transactions_line atl ON atr.acc_transactions_id = atl.acc_transactions_id
// JOIN clients c ON c.clients_id = atr.bill_to
// JOIN product p ON p.product_id = atl.product_id WHERE atr.acc_transactions_id = " . $acc_transactions_id;
// error_log($qry);
// $db->query($qry);
// $bill_list = $db->result();

// Dummy data for testing purposes
$dummy_data = array(
    array(
        "header_description" => "Header description 1",
        "client_name" => "Client 1",
        "due_date" => "2024-02-22",
        "ref_id" => "REF001",
        "transaction_date" => "2024-02-22",
        // Add other fields as needed
    ),
    array(
        "header_description" => "Header description 2",
        "client_name" => "Client 2",
        "due_date" => "2024-02-23",
        "ref_id" => "REF002",
        "transaction_date" => "2024-02-23",
        // Add other fields as needed
    )
);

// You can uncomment the above section and comment out the dummy data section above when using real data

// ...

// Construct the dynamic file path based on the current URL
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
$host = $_SERVER['HTTP_HOST'];
$http_file_access = $protocol . "://" . $host . "/xCrud_1.7.24/pdf/proforma_invoice.pdf";

echo "<br><br>";

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Techbase Solutions');
$pdf->SetTitle('Invoice');
$pdf->SetSubject('Proforma Invoice');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, '', '', array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
    require_once(dirname(__FILE__).'/lang/eng.php');
    $pdf->setLanguageArray($l);
}

// ---------------------------------------------------------

// set default font subsetting mode
$pdf->setFontSubsetting(true);

// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont('dejavusans', '', 14, '', true);

// Add a page
$pdf->AddPage();

$db = Xcrud_db::get_instance();
$query = 'SELECT * from orderdetails limit 10';
$db->query($query);
$result = $db->result();
$count = count($result);

$sort = array();
$rows = "";
foreach ($result as $key => $item)
{
   $productCode = $item['productCode'];
   $orderNumber = $item['orderNumber'];
   $quantityOrdered = $item['quantityOrdered'];
   $priceEach = $item['priceEach'];
   $orderLineNumber = $item['orderLineNumber'];
   $total = $item['total'];

   $rows .= '<tr style="background-color:#e1e1e1;">
<td style="width:5%">#</td>
<td style="width:15%">' . $orderLineNumber . '</td>
<td style="width:27%">' . $productCode . '</td>
<td style="width:7%">' . $quantityOrdered . '</td>
<td style="width:13%">' . $priceEach .'</td>
<td style="width:17%">' . $total . '</td>
<td style="width:16%">' . $total . '</td>
</tr>';

}


$html = <<<EOD
<h1 style="text-align:center;">Invoice</h1>
<table style="font-size:11px;padding:5px;border:1px solid #e5e5e5;width:100%">
<tr>
<td style="width:10%;">Bill to</td>
<td style="width:30%;">John Doe</td>
<td style="width:15%;"></td>
<td style="width:20%;">Invoice Number</td>
<td style="width:25%;">INV123456</td>
</tr>
<tr>
<td style="width:10%;"></td>
<td style="width:30%;"></td>
<td style="width:15%;"></td>
<td style="width:20%;">Invoice Date</td>
<td style="width:25%;">2024-02-22</td>
</tr>
<tr>
<td style="width:10%;"></td>
<td style="width:30%;"></td>
<td style="width:15%;"></td>
<td style="width:20%;">Due Date</td>
<td style="width:25%;">2024-02-28</td>
</tr>
</table>
<br>
<br>
<table style="font-size:11px;padding:5px;border:1px solid #e5e5e5;width:100%;">
<tr style="background-color:#e1e1e1;">
<td style="width:5%">#</td>
<td style="width:15%">Order Line Number</td>
<td style="width:27%">Description</td>
<td style="width:7%">Qty</td>
<td style="width:13%">Price (KES)</td>
<td style="width:17%">Amount (KES)</td>
<td style="width:16%">Total Amount</td>
</tr>
$rows
</table>
<br>
<br>
<br>
<table style="font-size:11px;padding:5px;border:1px solid #e5e5e5;width:100%">
<tr>
<td style="width:50%;">Notes</td>
<td style="width:20%;"></td>
</tr>
<tr>
<td style="width:50%;">This is a sample invoice.</td>
<td style="width:20%;"></td>
</tr>
</table>
EOD;

// Print text using writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);

// ---------------------------------------------------------

// Close and output PDF document
$file_name = $_SERVER['DOCUMENT_ROOT'] . "/$app_name/pdf/" . "proforma_invoice.pdf";

$pdf->Output($file_name, 'F');

// ---------------------------------------------------------

$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
// Get the current domain
$host = $_SERVER['HTTP_HOST'];
// Construct the dynamic file path
$http_file_access = $protocol . "://" . $host . "/$app_name/pdf/proforma_invoice.pdf";

// Output the PDF file in the browser
echo '<embed src="' . $http_file_access . '" width="800px" height="2100px" />';

//============================================================+
// END OF FILE
//============================================================

?>



Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: Undefined array key "total" in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/demos/pages/REPORT_invoice.php on line 159

Warning: fopen(file:///var/www/html/xcrud/demo//xcrud-lte/pdf/proforma_invoice.pdf): Failed to open stream: No such file or directory in /var/www/html/xcrud/demo/xcrud-lte/xCrud_1.7.26/xcrud/plugins_php/TCPDF-main/include/tcpdf_static.php on line 1834
TCPDF ERROR: Unable to create output file: /var/www/html/xcrud/demo//xcrud-lte/pdf/proforma_invoice.pdf