TCPDF image not showed on refresh when I use it with writehtml() - php

I am creating an invoice with TCPDF (I need UTF-8). When I add an image using the function WriteHTML(), the image is only available on the first load. When I refresh the site, the image is removed from the server. When I am using it without writeHTML(), everything is good. Where is the problem? I am using html to create a table for products in invoice. Thanks
<?php
$dodavatel = "adress";
$fakturacniAdresa = "address2";
$fakturacniICDIC = "ezh hfgj hfgjhj f";
$dtVystaveni = "22.03.2018";
$dtZdanPlneni = "22.03.2018";
$dtSplatnosti = "22.03.2018";
$bankovniUcet = "acount number";
$varSymbol = "65464";
$specSymbol = "45454";
$kUhrade = "4 USD";
$iban = "CZ511111111111";
$swift = "XXXXXXXX";
require_once('../lib/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->setFont('dejavusans');
$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
// add a page
$pdf->AddPage();
$pdf->Image('logo.jpg');
$pdf->SetLineStyle(array('width' => 0, 'cap' => 'butt', 'join' => 'miter', 'dash' => 4, 'color' => array(255, 255, 255)));
$pdf->SetFontSize(7);
$pdf->setCellHeightRatio(1.5);
$pdf->Cell(80, 0, "Dodavatel:", 1);
$pdf->Cell(70, 0, "Fakturační adresa:", 1);
$pdf->Ln(5);
$pdf->MultiCell(80, 20, $dodavatel, 1, 'L', 0, 0);
$pdf->MultiCell(70, 20, $fakturacniAdresa, 1, 'L', 0, 0);
$pdf->MultiCell(39, 20, $fakturacniICDIC, 1, 'L', 0, 0);
$pdf->Ln();
$pdf->Cell(30, 0, "Datum vystavení:", 1);
$pdf->Cell(30, 0, $dtVystaveni, 1, 0, 'C');
$pdf->Cell(39, 0, "Datum zdan. plnění:", 1);
$pdf->Cell(30, 0, $dtZdanPlneni, 1, 0, 'C');
$pdf->Cell(30, 0, "Datum splatnosti:", 1);
$pdf->Cell(30, 0, $dtSplatnosti, 1, 0, 'C');
$pdf->Ln(15);
$pdf->SetFillColor(119, 207, 240);
$pdf->SetTextColor(255, 255, 255); //bila
$pdf->Cell(80, 7, "Bankovní účet", 1, 0, '', 1);
$pdf->Cell(30, 7, "Var. symbol", 1, 0, '', 1);
$pdf->Cell(45, 7, "Spec. symbol", 1, 0, '', 1);
$pdf->Cell(34, 7, "K úhradě", 1, 0, 'R', 1);
$pdf->Ln();
$pdf->Cell(80, 6, $bankovniUcet, 1, 0, '', 1);
$pdf->Cell(30, 6, $varSymbol, 1, 0, '', 1);
$pdf->Cell(45, 6, $specSymbol, 1, 0, '', 1);
$pdf->Cell(34, 6, $kUhrade, 1, 0, 'R', 1);
$pdf->Ln();
$pdf->Cell(20, 6, "IBAN:", 1, 0, '', 1);
$pdf->Cell(169, 6, $iban, 1, 0, '', 1);
$pdf->Ln();
$pdf->Cell(20, 6, "SWIFT:", 1, 0, '', 1);
$pdf->Cell(169, 6, $swift, 1, 0, '', 1);
$pdf->Ln();
$pdf->SetFillColor(255, 255, 255); //bila
$pdf->SetTextColor(0, 0, 0); //cerna
$pdf->Cell(189, 8, "Fakturujeme Vám za dodané zboží či služby:", 1);
$pdf->Ln(10);
$pdf->Ln();
$tbl = <<<EOD
<style>
td {
border-bottom:0.1px solid gray;
padding-top: 10px;
}
</style>
<table>
<thead>
<tr>
<td width="70mm"><b>Označení dodávky</b></td>
<td width="10mm" align="center"><b>Počet</b></td>
<td width="13mm" align="center"><b>Měna</b></td>
<td width="22mm" align="center"><b>DPH %</b></td>
<td width="22mm" align="center"><b>Bez DPH</b></td>
<td width="22mm" align="center"><b>DPH</b></td>
<td width="30mm" align="right"><b>Celkem</b></td>
</tr>
</thead>
EOD;
for ($i = 0; $i < 10; $i++)
{
$tbl .= <<<EOD
<tr>
<td width="70mm">Something</td>
<td width="10mm" align="center">11</td>
<td width="13mm" align="center">USD</td>
<td width="22mm" align="center">21</td>
<td width="22mm" align="center">290</td>
<td width="22mm" align="center">60,9</td>
<td width="30mm" align="right" style="background-color:#e4e4e4;"><b>359</b></td>
</tr>
EOD;
}
$tbl .= <<<EOD
</table>
EOD;
$pdf->writeHTML($tbl, true, false, false, false, '');
$pdf->Ln();
$pdf->Cell(110, 6, "Razítko a podpis:", 1);
$pdf->Cell(30, 6, "Základ", 1);
$pdf->Cell(20, 6, "Výše DPH", 1);
$pdf->Cell(29, 6, "Celkem", 1, 0, 'R', 1);
$pdf->Ln();
$pdf->Output('invoice.pdf', 'I');

This is probably not the right way, but I solved it by commenting in the tcpdf.php file unlink($file); (line 7801). I don't know why it's there.
If anyone finds a better solution, I'll be glad.

Related

TCPDF is not working on an online server after hosting while was working on localhost, how solve this error? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 days ago.
Improve this question
I created a PHP Web App on localhost. With the app I was able to download PDFs while it was still on localhost. I then uploaded the app, meaning hosted it. I am able to login and navigate through the app, but I am unable to download the PDFs now. I am using TCPDF.
Please kindly help me resolve this issue.
Below is the code where I am creating the PDF file with the data from the Database.
<?php include('includes/header.php'); ?>
<?php include('https://www.gigabittech.com/includes/session.php'); ?>
<?php include('https://www.gigabittech.com/includes/config.php'); ?>
<?php
/* require 'config.php'; */
require('https://www.gigabittech.com/info_file/tcpdf.php');
if (isset($_GET['pdf_report_generate'])){
$empID = $_GET['empID'];
$select = "SELECT * FROM tblemployees WHERE emp_id='$empID'";
$query = mysqli_query($conn, $select);
while ($row = mysqli_fetch_array($query)){
$bs_num=$row['BS_Number'];
$title=$row['Title'];
$lname = $row['LastName'];
$fname = $row['FirstName'];
$nname = $row['Nickname'];
$startDate=$row['Start_Date'];
$dob=$row['Dob'];
$pid=$row['PIN'];
$passport_number=$row['Passport_Number'];
$passport_country_code=$row['Passport_Country_Code'];
$gender=$row['Gender'];
$marital_status=$row['Marital_Status'];
$dependents=$row['Dependants'];
$residential_address_unit_number=$row['Residential_Address_Unit_Number'];
$residential_address_complex=$row['Residential_Address_Complex'];
$residential_address_street_number=$row['Residential_Address_Street_Number'];
$residential_address_street_name_farm=$row['Residential_Address_Street_Name_Farm'];
$residential_address_suburb_district=$row['Residential_Address_Suburb_District'];
$residential_address_city_town=$row['Residential_Address_City_Town'];
$residential_address_post_code=$row['Residential_Address_Post_Code'];
$postal_address=$row['Postal_Address'];
$postal_address_2=$row['Postal_Address_2'];
$postal_address_3=$row['Postal_Address_3'];
$postal_address_4=$row['Postal_Address_4'];
$postal_address_5=$row['Postal_Address_5'];
$business_address_code=$row['Business_Address_Code'];
$work_phone_number=$row['Work_Phone_Number'];
$home_tel_num=$row['Home_Tel_Num'];
$phonenumber=$row['Phonenumber'];
$fax_number=$row['Fax_Number'];
$next_of_kin_name=$row['Next_Of_Kin_Name'];
$next_of_kin_number=$row['Next_Of_Kin_Number'];
$email = $row['EmailId'];
$costcentre=$row['Cost_Centre'];
$jobdescription=$row['Job_Description'];
$branch_code=$row['Branch_Code'];
$account_number=$row['Account_Number'];
$account_holders_name=$row['Account_Holders_Name'];
$graded_tax=$row['Graded_Tax'];
$name_head_parental_home=$row['Name_Head_Parental_Home'];
$address=$row['Address'];
$parental_home_address_line_2=$row['Parental_Home_Address_Line_2'];
$parental_home_address_line_3=$row['Parental_Home_Address_Line_3'];
$parental_home_address_line_4=$row['Parental_Home_Address_Line_4'];
$parental_home_tel_num=$row['Parental_Home_Tel_Num'];
$chief=$row['Chief'];
$user_role=$row['role'];
$department=$row['Department'];
}
}
class PDF extends TCPDF{
public function Header(){
$imageFile = K_PATH_IMAGES.'bns-spar-logo.png';
$this->Image($imageFile, 15, 2, 100, '', 'PNG', '', 'T', false, 300, '', false, false, 0, false, false, false);
$this->Ln(5);
}
public function Footer(){
$this->setY(-30); // POSITION AT 15mm FROM THE BOTTOM OF THE PAGE
$this->Ln(5);
$this->setFont('helvetica','B',12);
$this->Cell(189, 5,'GIGABIT TECHNOLOGIES (PTY) LTD.' ,0,1,'C');
$this->setFont('helvetica','',8);
$this->Cell(189, 4,'P.O. Box 1844 Manzini' ,0,1,'C');
$this->Cell(189, 4,'Email: sales#gigabittech.com | Tel: +268 7672 4277' ,0,1,'C');
$this->Cell(189, 4,'Office 786, Manzini Lifestyle Centre, Plot 2871, Ngwane Street, Manzini' ,0,1,'C');
$this->setFont('helvetica','',8);
date_default_timezone_set("Asia/Dhaka");
$today = date("F j, Y");
$this->Cell(25, 10, 'Printed On: '.$today,0,0,'L');
$this->Cell(164, 10, 'Page '.$this->getAliasNumPage().' of '.$this->getAliasNbPages(), 0, false, 'R', 0, '', 0, false, 'T', 'M');
}
}
// create new PDF document
$pdf = new PDF('P', 'mm', 'A4', true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nkambule Bonginkosi');
$pdf->SetTitle('BNS Employee Contract');
$pdf->SetSubject('BNS Employee Contract');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, 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('helvetica', '', 14, '', true);
// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage();
$pdf->Ln(1);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(189, 1, 'EMPLOYEE INFORMATION', 0, 1, 'C');
$pdf->Ln(5);
$pdf->setFillColor(204, 197, 197);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'SURNAME', 1, 0,'',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $lname, 1, 1);
$pdf->Ln(0);
$pdf->setFillColor(204, 197, 197);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'NAMES', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $fname, 1, 1);
$pdf->Ln(0);
$pdf->setFillColor(204, 197, 197);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ADDRESS', 1, 0, '',1);
$pdf->Cell(70, 1, 'POSTAL', 1, 0, '', 1);
$pdf->Cell(69, 1, 'PHYSICAL', 1, 0, '',1);
$pdf->Ln(4.5);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(10, 15, '', 0, 'L', 0, 0, '', '', true);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(70, 15, '', 0, 'L', 0, 0, 25, '', true);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(70, 15, 'P.O. '.$postal_address, 1, 'L', 0, 0, 65, '', true);
$pdf->Ln(4.5);
$pdf->MultiCell(70, 15, $postal_address_3, 1, 'L', 0, 0, 65, '', true);
$pdf->Ln(5.2);
$pdf->MultiCell(70, 15, $postal_address_5, 1, 'L', 0, 1, 65, '', true);
$pdf->Ln(-25);
$pdf->MultiCell(69, 15, $address, 1, 'L', 0, 0, 135, '', true);
$pdf->Ln(10);
$pdf->MultiCell(69, 15, $residential_address_unit_number, 1, 'L', 0, 0, 135, '', true);
$pdf->Ln(6);
$pdf->MultiCell(70, 15, $residential_address_city_town, 0, 'L', 0, 0, 135, '', true);
$pdf->Ln(13);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'CELL NUM.', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $phonenumber, 1, 1, '',0);
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ID NUMBER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $pid, 1, 1, '',0);
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'TAX NUMBER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $graded_tax, 1, 1, '',0);
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'D.O.B', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $dob, 1, 1, '',0);
/* $pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(20, 1, 'NATIONALITY', 0, 0);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(129, 1, $nationality, 0, 1); */
if ($gender == 1){
$real_gender = "Female";
} else {
$real_gender = "Male";
}
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'GENDER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $real_gender, 1, 1, '',0);
if ($marital_status == 1){
$real_marital_status = "Married";
} else {
$real_marital_status = "Single";
}
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'MARITAL STATUS', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $real_marital_status, 1, 1, '',0);
// SPOUSE START
/* $pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(20, 1, 'SPOUSE', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, 'NAME', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, 'CONTACT NUMBER', 0, 0);
$pdf->Ln(6);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(20, 1, ' ', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, $spouse_name, 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, $spouse_number, 0, 1);
$pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(20, 1, '', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, 'ID NUMBER', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, '', 0, 0);
$pdf->Ln(6);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(20, 1, ' ', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, $spouse_id_number, 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, '', 0, 1); */
// SPOUSE END
// NEXT OF KIN START
$pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'NEXT OF KIN', 1, 0, '',1);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(70, 1, 'NAME', 1, 0, '',1);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, 'CONTACT NUMBER', 1, 1, '',1);
$pdf->Ln(0);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(50, 1, ' ', 0, 0);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(70, 1, $next_of_kin_name, 1, 0, '',0);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, $next_of_kin_number, 1, 1, '',0);
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(189, 1, 'PARENTAL HOME DETAILS', 0, 1, 'C');
$pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'PARENTAL HOME HEAD', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $name_head_parental_home, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ADDRESS LINE 1', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $parental_home_address_line_2, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ADDRESS LINE 2', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $parental_home_address_line_3, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ADDRESS LINE 3', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $parental_home_address_line_4, 1, 1, '',0);
/* $pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(20, 1, '', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, 'RELATIONSHIP', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, '', 0, 0);
$pdf->Ln(5);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(20, 1, ' ', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, $next_of_kin_realtionship, 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, '', 0, 1); */
// NEXT OF KIN END
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(189, 1, 'BANKING DETAILS', 0, 1, 'C');
$pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ACCOUNT HOLDER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $lname.' '.$fname, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ACCOUNT NUMBER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $account_number, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'BRANCH CODE', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $branch_code, 1, 1, '',0);
/* $pdf->Ln(26);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'BANK DETAILS', 1, 0, '',1);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, 'BANK NAME', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(69, 1, $bank_name, 0, 0); */
/* $pdf->Ln(0);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, '', 0, 0);
$pdf->Cell(70, 1, 'ACC. HOLDER', 1, 0, '',1);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(69, 1, $lname.' '.$fname, 1, 0, '',0);
$pdf->Ln(4.6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, '', 0, 0);
$pdf->Cell(70, 1, 'ACC. NUMBER', 1, 0, '',1);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(69, 1, $account_number, 1, 0, '',0);
$pdf->Ln(4.6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, '', 0, 0);
$pdf->Cell(70, 1, 'BRANCH CODE', 1, 0, '',1);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(69, 1, $branch_code, 1, 0, '',0); */
/* $pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(20, 1, '', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, 'ACC. TYPE', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(69, 1, $account_type, 0, 0); */
$pdf->Ln(32);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(10, 1, '___________________________________', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Ln(6);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(100, 15, 'Signature: '.$title.' '.$lname.' '.$fname, 0, 'L', 0, 0, 15, '', true);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Ln(-6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->MultiCell(100, 15, '___________________________________', 0, 'L', 0, 0, 120, '', true);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Ln(6);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(100, 15, 'Date', 0, 'L', 0, 0, 120, '', true);
$pdf->Cell(30, 1, ' ', 0, 0);
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
ob_end_clean();
$pdf->Output($fname." Info.pdf", 'I');
?>
Below is the code that I was using while on localhost and it still the one on the online server.
<?php include('includes/header.php'); ?>
<?php include('https://www.gigabittech.com/includes/session.php'); ?>
<?php include('https://www.gigabittech.com/includes/config.php'); ?>
<?php
/* require 'config.php'; */
require('https://www.gigabittech.com/info_file/tcpdf.php');
if (isset($_GET['pdf_report_generate'])){
$empID = $_GET['empID'];
$select = "SELECT * FROM tblemployees WHERE emp_id='$empID'";
$query = mysqli_query($conn, $select);
while ($row = mysqli_fetch_array($query)){
$bs_num=$row['BS_Number'];
$title=$row['Title'];
$lname = $row['LastName'];
$fname = $row['FirstName'];
$nname = $row['Nickname'];
$startDate=$row['Start_Date'];
$dob=$row['Dob'];
$pid=$row['PIN'];
$passport_number=$row['Passport_Number'];
$passport_country_code=$row['Passport_Country_Code'];
$gender=$row['Gender'];
$marital_status=$row['Marital_Status'];
$dependents=$row['Dependants'];
$residential_address_unit_number=$row['Residential_Address_Unit_Number'];
$residential_address_complex=$row['Residential_Address_Complex'];
$residential_address_street_number=$row['Residential_Address_Street_Number'];
$residential_address_street_name_farm=$row['Residential_Address_Street_Name_Farm'];
$residential_address_suburb_district=$row['Residential_Address_Suburb_District'];
$residential_address_city_town=$row['Residential_Address_City_Town'];
$residential_address_post_code=$row['Residential_Address_Post_Code'];
$postal_address=$row['Postal_Address'];
$postal_address_2=$row['Postal_Address_2'];
$postal_address_3=$row['Postal_Address_3'];
$postal_address_4=$row['Postal_Address_4'];
$postal_address_5=$row['Postal_Address_5'];
$business_address_code=$row['Business_Address_Code'];
$work_phone_number=$row['Work_Phone_Number'];
$home_tel_num=$row['Home_Tel_Num'];
$phonenumber=$row['Phonenumber'];
$fax_number=$row['Fax_Number'];
$next_of_kin_name=$row['Next_Of_Kin_Name'];
$next_of_kin_number=$row['Next_Of_Kin_Number'];
$email = $row['EmailId'];
$costcentre=$row['Cost_Centre'];
$jobdescription=$row['Job_Description'];
$branch_code=$row['Branch_Code'];
$account_number=$row['Account_Number'];
$account_holders_name=$row['Account_Holders_Name'];
$graded_tax=$row['Graded_Tax'];
$name_head_parental_home=$row['Name_Head_Parental_Home'];
$address=$row['Address'];
$parental_home_address_line_2=$row['Parental_Home_Address_Line_2'];
$parental_home_address_line_3=$row['Parental_Home_Address_Line_3'];
$parental_home_address_line_4=$row['Parental_Home_Address_Line_4'];
$parental_home_tel_num=$row['Parental_Home_Tel_Num'];
$chief=$row['Chief'];
$user_role=$row['role'];
$department=$row['Department'];
}
}
class PDF extends TCPDF{
public function Header(){
$imageFile = K_PATH_IMAGES.'bns-spar-logo.png';
$this->Image($imageFile, 15, 2, 100, '', 'PNG', '', 'T', false, 300, '', false, false, 0, false, false, false);
$this->Ln(5);
}
public function Footer(){
$this->setY(-30); // POSITION AT 15mm FROM THE BOTTOM OF THE PAGE
$this->Ln(5);
$this->setFont('helvetica','B',12);
$this->Cell(189, 5,'GIGABIT TECHNOLOGIES (PTY) LTD.' ,0,1,'C');
$this->setFont('helvetica','',8);
$this->Cell(189, 4,'P.O. Box 1844 Manzini' ,0,1,'C');
$this->Cell(189, 4,'Email: sales#gigabittech.com | Tel: +268 7672 4277' ,0,1,'C');
$this->Cell(189, 4,'Office 786, Manzini Lifestyle Centre, Plot 2871, Ngwane Street, Manzini' ,0,1,'C');
// SETTING FONT
$this->setFont('helvetica','',8);
// PAGE NUMBER
date_default_timezone_set("Asia/Dhaka");
$today = date("F j, Y");
$this->Cell(25, 10, 'Printed On: '.$today,0,0,'L');
$this->Cell(164, 10, 'Page '.$this->getAliasNumPage().' of '.$this->getAliasNbPages(), 0, false, 'R', 0, '', 0, false, 'T', 'M');
}
}
// create new PDF document
$pdf = new PDF('P', 'mm', 'A4', true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nkambule Bonginkosi');
$pdf->SetTitle('BNS Employee Contract');
$pdf->SetSubject('BNS Employee Contract');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, 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('helvetica', '', 14, '', true);
// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage();
$pdf->Ln(1);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(189, 1, 'EMPLOYEE INFORMATION', 0, 1, 'C');
$pdf->Ln(5);
$pdf->setFillColor(204, 197, 197);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'SURNAME', 1, 0,'',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $lname, 1, 1);
$pdf->Ln(0);
$pdf->setFillColor(204, 197, 197);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'NAMES', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $fname, 1, 1);
$pdf->Ln(0);
$pdf->setFillColor(204, 197, 197);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ADDRESS', 1, 0, '',1);
$pdf->Cell(70, 1, 'POSTAL', 1, 0, '', 1);
$pdf->Cell(69, 1, 'PHYSICAL', 1, 0, '',1);
$pdf->Ln(4.5);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(10, 15, '', 0, 'L', 0, 0, '', '', true);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(70, 15, '', 0, 'L', 0, 0, 25, '', true);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(70, 15, 'P.O. '.$postal_address, 1, 'L', 0, 0, 65, '', true);
$pdf->Ln(4.5);
$pdf->MultiCell(70, 15, $postal_address_3, 1, 'L', 0, 0, 65, '', true);
$pdf->Ln(5.2);
$pdf->MultiCell(70, 15, $postal_address_5, 1, 'L', 0, 1, 65, '', true);
$pdf->Ln(-25);
$pdf->MultiCell(69, 15, $address, 1, 'L', 0, 0, 135, '', true);
$pdf->Ln(10);
$pdf->MultiCell(69, 15, $residential_address_unit_number, 1, 'L', 0, 0, 135, '', true);
$pdf->Ln(6);
$pdf->MultiCell(70, 15, $residential_address_city_town, 0, 'L', 0, 0, 135, '', true);
$pdf->Ln(13);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'CELL NUM.', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $phonenumber, 1, 1, '',0);
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ID NUMBER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $pid, 1, 1, '',0);
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'TAX NUMBER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $graded_tax, 1, 1, '',0);
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'D.O.B', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $dob, 1, 1, '',0);
if ($gender == 1){
$real_gender = "Female";
} else {
$real_gender = "Male";
}
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'GENDER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $real_gender, 1, 1, '',0);
if ($marital_status == 1){
$real_marital_status = "Married";
} else {
$real_marital_status = "Single";
}
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'MARITAL STATUS', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(139, 1, $real_marital_status, 1, 1, '',0);
// NEXT OF KIN START
$pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'NEXT OF KIN', 1, 0, '',1);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(70, 1, 'NAME', 1, 0, '',1);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, 'CONTACT NUMBER', 1, 1, '',1);
$pdf->Ln(0);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(50, 1, ' ', 0, 0);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(70, 1, $next_of_kin_name, 1, 0, '',0);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, $next_of_kin_number, 1, 1, '',0);
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(189, 1, 'PARENTAL HOME DETAILS', 0, 1, 'C');
$pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'PARENTAL HOME HEAD', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $name_head_parental_home, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ADDRESS LINE 1', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $parental_home_address_line_2, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ADDRESS LINE 2', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $parental_home_address_line_3, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ADDRESS LINE 3', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $parental_home_address_line_4, 1, 1, '',0);
/* $pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(20, 1, '', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, 'RELATIONSHIP', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, '', 0, 0);
$pdf->Ln(5);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(20, 1, ' ', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, $next_of_kin_realtionship, 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(69, 1, '', 0, 1); */
// NEXT OF KIN END
$pdf->Ln(4);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(189, 1, 'BANKING DETAILS', 0, 1, 'C');
$pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ACCOUNT HOLDER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $lname.' '.$fname, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'ACCOUNT NUMBER', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $account_number, 1, 1, '',0);
$pdf->Ln(2);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'BRANCH CODE', 1, 0, '',1);
$pdf->setFont('helvetica', '', 10);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(139, 1, $branch_code, 1, 1, '',0);
/* $pdf->Ln(26);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, 'BANK DETAILS', 1, 0, '',1);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, 'BANK NAME', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(69, 1, $bank_name, 0, 0); */
/* $pdf->Ln(0);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, '', 0, 0);
$pdf->Cell(70, 1, 'ACC. HOLDER', 1, 0, '',1);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(69, 1, $lname.' '.$fname, 1, 0, '',0);
$pdf->Ln(4.6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, '', 0, 0);
$pdf->Cell(70, 1, 'ACC. NUMBER', 1, 0, '',1);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(69, 1, $account_number, 1, 0, '',0);
$pdf->Ln(4.6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(50, 1, '', 0, 0);
$pdf->Cell(70, 1, 'BRANCH CODE', 1, 0, '',1);
// $pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 10);
$pdf->Cell(69, 1, $branch_code, 1, 0, '',0); */
/* $pdf->Ln(6);
$pdf->setFont('helvetica', 'B', 12);
$pdf->Cell(20, 1, '', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Cell(40, 1, 'ACC. TYPE', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->setFont('helvetica', '', 12);
$pdf->Cell(69, 1, $account_type, 0, 0); */
$pdf->Ln(32);
$pdf->setFont('helvetica', 'B', 10);
$pdf->Cell(10, 1, '___________________________________', 0, 0);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Ln(6);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(100, 15, 'Signature: '.$title.' '.$lname.' '.$fname, 0, 'L', 0, 0, 15, '', true);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Ln(-6);
$pdf->setFont('helvetica', 'B', 10);
$pdf->MultiCell(100, 15, '___________________________________', 0, 'L', 0, 0, 120, '', true);
$pdf->Cell(30, 1, ' ', 0, 0);
$pdf->Ln(6);
$pdf->setFont('helvetica', '', 10);
$pdf->MultiCell(100, 15, 'Date', 0, 'L', 0, 0, 120, '', true);
$pdf->Cell(30, 1, ' ', 0, 0);
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
ob_end_clean();
$pdf->Output($fname." Info.pdf", 'I');
?>

How to use two color in one TCPDF Cell?

I have an invoice template. i used Cell for showing text into box.
here is my code:
$ntitle = 'No:';
$factornum = '1898';
$startheader = 15;
$pdf->SetXY($startheader, 4);
$pdf->Cell(50, 0, 'Date: '.date("Y-m-d"), 1, 1, 'C', 0, '', 1);
$pdf->SetXY($startheader, 12);
$pdf->SetTextColor(255, 0, 0);
$pdf->Cell(50, 0, $ntitle . $factornum, 1, 1, 'C', 0, '', 1);
$pdf->SetTextColor(0, 0, 0);
I want to use two text color in second cell.
$ntitle should be echo in black and $factornum in red
For example, output must be like:
No: (with black color) 1898 (with red color)
How can I do this in TCPDF?
I checked TCPDF examples. but I did not get any results
$ntitle = 'No:';
$factornum = '1898';
$startheader = 15;
$pdf->AddPage();
$pdf->SetXY($startheader, 4);
$pdf->Cell(50, 0, 'Date: '.date("Y-m-d"), 1, 1, 'C', 0, '', 1);
$pdf->SetXY($startheader, 12);
$pdf->SetTextColor(255, 0, 0);
//$pdf->Cell(50, 0, $ntitle . $factornum, 1, 1, 'C', 0, '', 1);
$pdf->SetFillColor(255, 255, 255);
$pdf->writeHTMLCell(50, '', '', '', '<span style="color:#000">'.$ntitle.'</span>' . $factornum, 1, 1, 'C', 0, '', 1);
$pdf->SetTextColor(0, 0, 0);

How to make table header and table footer appear on each page?

The table footer and header only appear at the beginning and at the end of the page. I'm using FPDF.
This is the code:
$pdf = new myPDF();
$pdf->AliasNbPages('{nb}');
$pdf->AddPage('L', 'A4', 0);
$pdf->headerTable();
$pdf->viewTable($con);
$pdf->footerTable();
$pdf->Output();
This is myPDF class:
<?php
$con = new PDO('mysql:host=localhost;dbname=db_tc', 'root', '');
require('function.php');
require('fpdf/fpdf.php');
class myPDF extends FPDF
{
function header()
{
$this->SetleftMargin(30);
$this->SetFont('Times', 'B', 14);
$this->Cell(0, 10, 'Office 1', 0, 0, 'C');
$this->Ln(20);
}
function footer()
{
$this->SetY(-15);
$this->SetFont('Times', '', 8);
$this->Cell(0, 10, 'Page ' . $this->PageNo() . '/{nb}', 0, 0, 'C');
}
function headerTable()
{
$this->SetleftMargin(20);
$this->SetFillColor(255, 213, 31);
$this->SetDrawColor(50, 50, 100);
$this->SetFont('Times', 'B', 12);
$this->Cell(15, 10, 'Nomor', 1, 0, 'C', true);
$this->Cell(40, 10, 'Tanggal Cek', 1, 0, 'C', true);
$this->Cell(40, 10, 'Type Unit', 1, 0, 'C', true);
$this->Cell(40, 10, 'Serial Number', 1, 0, 'C', true);
$this->Cell(40, 10, 'Serial Number2', 1, 0, 'C', true);
$this->Cell(30, 10, 'Lokasi', 1, 0, 'C', true);
$this->Cell(30, 10, 'Ruangan', 1, 0, 'C', true);
$this->Ln();
}
function footerTable()
{
$this->SetleftMargin(30);
$this->SetFillColor(255, 213, 31);
$this->SetDrawColor(50, 50, 100);
$this->SetFont('Times', 'B', 12);
$this->Cell(15, 10, 'Nomor', 1, 0, 'C', true);
$this->Cell(40, 10, 'Tanggal Cek', 1, 0, 'C', true);
$this->Cell(40, 10, 'Type Unit', 1, 0, 'C', true);
$this->Cell(40, 10, 'Serial Number', 1, 0, 'C', true);
$this->Cell(40, 10, 'Serial Number2', 1, 0, 'C', true);
$this->Cell(30, 10, 'Lokasi', 1, 0, 'C', true);
$this->Cell(30, 10, 'Ruangan', 1, 0, 'C', true);
$this->Ln();
}
function viewTable($con)
{
$this->SetleftMargin(30);
$this->SetFont('Times', '', 12);
$this->SetFillColor(224, 224, 224);
$stmt = $con->query("SELECT * FROM officepakai");
while ($data = $stmt->fetch(PDO::FETCH_OBJ)) {
$this->Cell(15, 10, $data->Nomor, 1, 0, 'C', true);
$this->Cell(40, 10, $data->Tanggal_Cek, 1, 0, 'L', true);
$this->Cell(40, 10, $data->Type_Unit, 1, 0, 'L', true);
$this->Cell(40, 10, $data->Serial_Number, 1, 0, 'L', true);
$this->Cell(40, 10, $data->Serial_Number2, 1, 0, 'L', true);
$this->Cell(30, 10, $data->Lokasi, 1, 0, 'L', true);
$this->Cell(30, 10, $data->Ruangan, 1, 0, 'L', true);
$this->Ln();
}
}
}
$pdf = new myPDF();
$pdf->AliasNbPages('{nb}');
$pdf->AddPage('L', 'A4', 0);
$pdf->headerTable();
$pdf->viewTable($con);
$pdf->footerTable();
$pdf->Output();
?>
I haven't worked with this lib but as per it's documentation here I'd say only Header and Footer methods are being called, but you seem to have some customizations called headerTable and footerTable.
The Header() and Footer() methods are called automatically, so I believe that calling the custom methods inside them should do the trick:
function Header()
{
$this->SetleftMargin(30);
$this->SetFont('Times', 'B', 14);
$this->Cell(0, 10, 'Office 1', 0, 0, 'C');
$this->Ln(20);
$this->headerTable(); // add this
}
function Footer()
{
$this->SetY(-15);
$this->SetFont('Times', '', 8);
$this->Cell(0, 10, 'Page ' . $this->PageNo() . '/{nb}', 0, 0, 'C');
$this->footerTable(); // add this
}

Make text fit in a cell with fpdf

im making a pdf file using fpdf.. The fdf generated will show data in table form from the database. My problem is, when the data string is too long, it do not fit well in the table cell. Look below in column no 3:
Below is my full code:
<?php
require('fpdf17/fpdf.php');
require('db.php');
//create a FPDF object
$pdf=new FPDF();
$pdf->SetFont('Times','B',20); //set font for the whole page (font family, style, size)
$pdf->SetTextColor(0,0,0); //using RGB value
//set up a page
$pdf->AddPage('P'); //potrait orientation
$pdf->SetDisplayMode('default'); //using 100 percent zoom and the viewer's default layout
$icon = "files/icon.png";
$pdf->Cell (10);
$pdf->Cell(60, 60, $pdf->Image($icon, $pdf->GetX(), $pdf->GetY(), 33.78), 0, 0, 'L', false);
$pdf->SetFillColor(0,0,0);
$pdf->SetFont('Times', '', 12);
$pdf->SetXY(10, 30);
$pdf->Cell(10);
$pdf->Cell(30, 6, 'Retrieval Date' , 0, 0, '', 0);
date_default_timezone_set("Asia/Kuala_Lumpur"); //set default time zone
$pdf->Cell(30, 6, ': '.date("d/m/Y"), 0, 2, 'B', 0);
//Set x and y position for the main text, reduce font size and write content
$pdf->SetXY(20,40); //setting the position
$pdf->SetFont('Times', 'BU', 14);
$pdf->Write(12,'Absenteeism record for:');
$course_course_code = addslashes( filter_input( INPUT_GET,'course',FILTER_SANITIZE_STRING ) );
$data = "SELECT course_code, course_name FROM studentattendance
INNER JOIN course ON studentattendance.course_course_code=course.course_code WHERE course_course_code LIKE '$_GET[course]' GROUP BY course_code";
$result = $conn->query($data) or die("Error: ".mysqli_error($conn));
while($ser=mysqli_fetch_array($result)){
$course_code = $ser['course_code'];
$course_name = $ser['course_name'];
$pdf->SetFillColor(0,0,0);
$pdf->SetFont('Times', '', 12);
$pdf->SetY(50);
$pdf->Cell(10);
$pdf->SetX(20);
$pdf->Cell(30, 6, 'COURSE' , 0, 0, '', 0);
$pdf->Cell(30, 6, ': '.$course_code. ' - '.$course_name, 0, 2, 'B', 0);
}
//start first table
$pdf->SetFillColor(255,255,255);
$pdf->SetFont('Times', 'B', 12);
$pdf->SetXY(21,58);
$pdf->Cell(10, 6, 'No.', 1, 0, 'L', 1);
$pdf->Cell(25, 6, 'Matric no', 1, 0, 'L', 1);
$pdf->Cell(75, 6, 'Name', 1, 0, 'L', 1);
$pdf->Cell(25, 6, 'GROUP', 1, 0, 'L', 1);
$pdf->Cell(30, 6, 'Absenteeism %', 1, 0, 'L', 1);
$row_height = 6;
$y1_axis = 58;
$y1_axis = $y1_axis + $row_height;
$counter = 1;
$course_course_code = addslashes( filter_input( INPUT_GET,'course',FILTER_SANITIZE_STRING ) );
$data = "SELECT stud_matric, stud_name, group_group_code, getid,
SUM(studAtt_endTime - studAtt_startTime)/(course_contacthour_perWeek * 14) AS 'sum' FROM studentattendance
INNER JOIN course ON studentattendance.course_course_code=course.course_code
INNER JOIN student ON studentattendance.student_stud_matric=student.stud_matric
WHERE studAtt_status='0' AND course_course_code LIKE '$_GET[course]' GROUP BY getid ORDER BY sum DESC";
$result = $conn->query($data) or die("Error: ".mysqli_error($conn));
while($ser=mysqli_fetch_array($result)){
$stud_matric = $ser['stud_matric'];
$stud_name = $ser['stud_name'];
$group_group_code = $ser['group_group_code'];
$per=number_format($ser['sum'] * 100, 2)." %";
$pdf->SetFont('Times', '', 12);
$pdf->SetXY(21, $y1_axis);
$pdf->Cell(10, 6, $counter, 1, 0, 'L', 1);
$pdf->Cell(25, 6, $stud_matric, 1, 0, 'L', 1);
$pdf->Cell(75, 6, $stud_name, 1, 0, 'L', 1);
$pdf->Cell(25, 6, $group_group_code, 1, 0, 'L', 1);
$pdf->Cell(30, 6, $per, 1, 0, 'L', 1);
$pdf->Ln();
$y1_axis = $y1_axis + $row_height;
$counter++;
if ($counter % 34 === 0) {
$pdf->AddPage();
$y1_axis = 20;
}
}
//end first table
//Output the document
$pdf->Output("$course_code.pdf",'I');
?>
Please help me..
Change the size of the cell
$pdf->Cell(5, 6, 'No.', 1, 0, 'L', 1);
$pdf->Cell(25, 6, 'Matric no', 1, 0, 'L', 1);
$pdf->Cell(100, 6, 'Name', 1, 0, 'L', 1);
$pdf->Cell(25, 6, 'GROUP', 1, 0, 'L', 1);
$pdf->Cell(30, 6, 'Absenteeism %', 1, 0, 'L', 1);

How to create same pdf file multiple time using tcpdf in codeigniter?

I'm using tcpdf library for pdf creation. I want to download same pdf multiple time(user will enter how many pdfs he want). I made a for loop which call pdf function according to the user entered value. The problem is code stop after creating first pdf. Following is my pdf function which I call multiple time. Also it take about 10-15 seconds to create pdf. Thanks!
public function generatePdf($eventId) {
$eventDetails = $this->events_model->getAttachment($eventId);
$image = $eventDetails[0]->image_source;
$startTime = $eventDetails[0]->startTime;
$regTime = $eventDetails[0]->regTime;
$locationName = $eventDetails[0]->location_name;
$location = $eventDetails[0]->location;
$date = strtotime($startTime);
$date1 = strtotime($regTime);
$dat = date('m/d/y', $date);
$tme = date('H:m', $date);
$regTme = date('m/d/ H:m', $date1);
$this->load->library('Pdf');
$pdf = new Pdf('P', 'mm', 'A4', true, 'UTF-8', false);
$pdf->SetTitle('Event Ticket');
$pdf->SetTopMargin(0);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(true);
$pdf->setFooterMargin(0);
$pdf->setLeftMargin(0);
$pdf->setRightMargin(0);
$pdf->SetAutoPageBreak(true);
$pdf->SetAuthor('MPM');
$pdf->SetDisplayMode('real', 'default');
$pdf->AddPage();
$pdf->SetFont('Helvetica');
$pdf->SetFontSize('10');
$pdf->SetFont('', 'B');
$y = $pdf->getY();
$pdf->setCellPaddings(0, 1, 2, 1);
$pdf->SetFillColor(215, 235, 255);
$event_pic = './eventDocs/' . $image;
$logo_html = '<img width="196px;" height="700px;" src="' . base_url() . $event_pic . '" />';
$event_fixed_pic = './eventDocs/Untitled-2.png';
$event_fixed_pic_html = '<img height="200px;" src="' . base_url() . $event_fixed_pic . '" />';
$event_bottom_pic = './eventDocs/Untitled-4447.png';
$event_bottom_pic_html = '<img width="595px;" height="146px;" src="' . base_url() . $event_bottom_pic . '" />';
$pdf->writeHTMLCell(80, 280, '', $y, $logo_html, 0, 0, 0, false, '', true);
$pdf->setCellPaddings(60, 1, 2, 1);
$pdf->SetFont('', 'B', 14);
$pdf->SetTextColor(195, 195, 176);
$pdf->MultiCell(130, 5, $startTime, 0, false, 0, 0, '', '', true);
$pdf->Ln(25);
$pdf->setCellPaddings(75, 0, 2, 1);
$pdf->SetFont('', 'B', 15);
$pdf->SetTextColor(0, 0, 0);
$pdf->MultiCell(140, 5, utf8_to_german($this->lang->line("event_pdf_top_heading1")), 0, false, 0, 0, '', '', true);
$pdf->Ln(6);
$pdf->setCellPaddings(75, 0, 2, 1);
$pdf->MultiCell(170, 5, utf8_to_german($this->lang->line("event_pdf_top_heading2")), 0, false, 0, 0, '', '', true);
$linestyle = array('width' => 1.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '', 'phase' => 0, 'color' => array(195, 195, 176));
$pdf->Line(75, 40, 149, 40, $linestyle);
$pdf->SetLineStyle(array('width' => 0.3, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)));
$pdf->Ln(18);
$pdf->setCellPaddings(75, 0, 2, 1);
$pdf->SetFont('', 'B', 11);
$pdf->SetTextColor(0, 0, 0);
$pdf->MultiCell(150, 5, utf8_to_german($this->lang->line("event_pdf_heading1")), 0, false, 0, 0, '', '', true);
$pdf->Ln(8);
$pdf->setCellPaddings(75, 0, 2, 1);
$pdf->MultiCell(200, 5, utf8_to_german($this->lang->line("event_pdf_heading2")), 0, false, 0, 0, '', '', true);
$pdf->Ln(38);
$pdf->setCellPaddings(5, 0, 2, 1);
$pdf->setCellMargins(75);
$pdf->SetFillColor(199, 195, 176);
$pdf->writeHTMLCell(60, 43, 0, 95, $locationName . '<br>' . $location, 0, 0, 1, false, '', true);
$pdf->Ln(140);
$pdf->setCellMargins(140, 95);
$pdf->writeHTMLCell('', 30, '', $y, $event_fixed_pic_html, 0, 0, 0, false, '', true);
$pdf->Ln(60);
$pdf->setCellPaddings(0, 0, 2, 1);
$pdf->setCellMargins(75);
$pdf->MultiCell(100, 5, utf8_to_german($this->lang->line("event_pdf_heading3")), 0, false, 0, 0, '', '', true);
$linestyle = array('width' => 1.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '', 'phase' => 0, 'color' => array(195, 195, 176));
$pdf->Line(75, 163, 146, 163, $linestyle);
$pdf->SetLineStyle(array('width' => 0.3, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)));
$pdf->Ln(11);
$pdf->setCellPaddings(0, 0, 2, 1);
$pdf->setCellMargins(75);
$pdf->SetFont('', '', 10);
$pdf->SetTextColor(0, 0, 0);
$pdf->MultiCell(120, 5, utf8_to_german($this->lang->line("event_pdf_heading3_para1")), 0, false, 0, 0, '', '', true);
$pdf->Ln(35);
$pdf->setCellPaddings(0, 0, 2, 1);
$pdf->setCellMargins(75);
$pdf->MultiCell(120, 5, utf8_to_german($this->lang->line("event_pdf_heading3_para2")), 0, false, 0, 0, '', '', true);
$pdf->Ln(10);
$pdf->setCellPaddings(0, 0, 2, 1);
$pdf->setCellMargins(75);
$pdf->MultiCell(120, 5, utf8_to_german($this->lang->line("event_pdf_heading3_para3")), 0, false, 0, 0, '', '', true);
$pdf->Ln(5);
$pdf->setCellPaddings(0, 0, 2, 1);
$pdf->setCellMargins(75);
$pdf->MultiCell(100, 5, utf8_to_german($this->lang->line("event_pdf_heading3_para4")), 0, false, 0, 0, '', '', true);
$pdf->Ln(5);
$pdf->setCellMargins(0, 240);
$pdf->writeHTMLCell(500, 52, '', $y, $event_bottom_pic_html, 0, 0, 1, false, '', true);
$pdf->SetFont('', '', 12);
$pdf->Ln(5);
$pdf->setCellPaddings(0, 15, 2, 1);
$pdf->setCellMargins(10);
$pdf->MultiCell(50, 30, $locationName . ' ' . $location, 0, false, 1, 0, '', '', true);
$pdf->Ln(5);
$pdf->setCellPaddings(0, 10, 2, 1);
$pdf->setCellMargins(70);
$pdf->MultiCell(50, 10, $dat, 0, false, 1, 0, '', '', true);
$pdf->Ln(5);
$pdf->setCellPaddings(0, 13, 2, 1);
$pdf->setCellMargins(70);
$pdf->MultiCell(50, 10, utf8_to_german($this->lang->line("event_pdf_footer_para3")) . $regTme . $this->lang->line("event_pdf_footer_time"), 0, false, 1, 0, '', '', true);
$pdf->Ln(5);
$pdf->setCellPaddings(0, 18, 2, 1);
$pdf->setCellMargins(70);
$pdf->MultiCell(50, 10, utf8_to_german($this->lang->line("event_pdf_footer_para4")) . $tme . $this->lang->line("event_pdf_footer_time"), 0, false, 1, 0, '', '', true);
ob_end_clean();
$pdf->Output('pdfexample.pdf', 'D');
$pdf->Output('pdfexample1.pdf', 'D');
return 1;
}

Categories