2
votes

when we click on link we want to download php page Data in Pdf format.

So we downloaded TCPDF from official git hub link

we copied extracted folder to path : "/var/www/html/sbdev2/php/site6"

when we run the example code in browser : http://sbdev2.kidsdial.com:81/php/site6/tcpdf/examples/example_011.php we can able to download pdf.

when we tried same code in another path : http://sbdev2.kidsdial.com:81/php/site6/example_011.php , we are getting error as "Fatal error: Class 'TCPDF' not found in" in line : class MYPDF extends TCPDF {

i checked link but that don't work for me.

also i checked link2 & installed TCPDF via composer as below image. but still that error is there.

enter image description here

example_011.php

require_once('tcpdf_config.php');

// extend TCPF with custom functions
class MYPDF extends TCPDF {

    // Load table data from file
    public function LoadData($file) {
        // Read file lines
        $lines = file($file);
        $data = array();
        foreach($lines as $line) {
            $data[] = explode(';', chop($line));
        }
        return $data;
    }

    // Colored table
    public function ColoredTable($header,$data) {
        // Colors, line width and bold font
        $this->SetFillColor(255, 0, 0);
        // Header
        $w = array(40, 35, 40, 45);
        $num_headers = count($header);
        for($i = 0; $i < $num_headers; ++$i) {
            $this->Cell($w[$i], 7, $header[$i], 1, 0, 'C', 1);
        }
        $this->Ln();
        // Color and font restoration
        $this->SetFillColor(224, 235, 255);
        $this->SetTextColor(0);
        $this->SetFont('');
        // Data
        $fill = 0;
        foreach($data as $row) {
            $this->Cell($w[0], 6, $row[0], 'LR', 0, 'L', $fill);
            $fill=!$fill;
        }
        $this->Cell(array_sum($w), 0, '', 'T');
    }
}

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

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 011', PDF_HEADER_STRING);

// 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);

// 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 font
$pdf->SetFont('helvetica', '', 12);

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

// column titles
$header = array('Country', 'Capital', 'Area (sq km)', 'Pop. (thousands)');

// data loading
$data = $pdf->LoadData('data/table_data_demo.txt');

// print colored table
$pdf->ColoredTable($header, $data);

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

// close and output PDF document
$pdf->Output('example_011.pdf', 'I');

Edit

tcpdfconfig.php

require_once('config/tcpdf_config_alt.php');

// Include the main TCPDF library (search the library on the following directories).
$tcpdf_include_dirs = array(
    realpath('../tcpdf.php'),
    '/usr/share/php/tcpdf/tcpdf.php',
    '/usr/share/tcpdf/tcpdf.php',
    '/usr/share/php-tcpdf/tcpdf.php',
    '/var/www/tcpdf/tcpdf.php',
    '/var/www/html/tcpdf/tcpdf.php',
    '/usr/local/apache2/htdocs/tcpdf/tcpdf.php'
);
foreach ($tcpdf_include_dirs as $tcpdf_include_path) {
    if (@file_exists($tcpdf_include_path)) {
        require_once($tcpdf_include_path);
        break;
    }
}

Edit2

its working only when i include files in sub folder of /var/www/html/sbdev2/php/site6/tcpdf/ folder example :

/var/www/html/sbdev2/php/site6/tcpdf/example1
/var/www/html/sbdev2/php/site6/tcpdf/example1

if i copy example folder contents to another path , let say : /var/www/html/sbdev2/php/site6/ its not working at all.....

2
You write that you change the path of you code,have you the right path for TCPDF at include? - dimis283
@dimis283 i copied the tcpdf_include.php file under /var/www/html/sbdev2/php/site6 - user7029249
@dimis283 sorry, i copied tcpdf_config.php file to /var/www/html/sbdev2/php/site6 as i got tcpdf_config.php file under config folder.... - user7029249
It seems to have and other files at git hub link,maybe to have all of them at one folder and "include" from there the tcpdf_include.php? - dimis283
@dimis283 sorry , i did't got, right now i copied the folder tcpdf to this path : /var/www/html/sbdev2/php/site6 , please tell for which path i need to copy ? - user7029249

2 Answers

9
votes

I also faced this problem and atlast got the solution. Everything is fine, let every file remain at its original path only, just you need to open tcpdf_include.php and include the file tcpdf.php, thats all! require_once(...INSTALED DIRECTORY...\tcpdf.php'); It will work, all the best

4
votes

In the example 001 changed this line:

// Include the main TCPDF library (search for installation path).
require_once('tcpdf_include.php');

Into this:

// Include the main TCPDF library (search for installation path).
require_once('**C:\wamp\www\pdf2\tcpdf\tcpdf.php**');

And it works for me on a WAMP.

Hope it helps!