user7029249
user7029249

Reputation:

Fatal error: Class 'TCPDF' not found in another path

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.....

Upvotes: 3

Views: 24253

Answers (3)

Howard J
Howard J

Reputation: 421

This is happening because of the configurations found in tcpdf_include.php file. Change the first one to reflect the full path to your tcpdf folder e.g.

$tcpdf_include_dirs = array(
    realpath(dirname(__FILE__) . 'tcpdf.php'),// True source file
        realpath('tcpdf.php'),// Relative from $PWD
        '/var/www/html/timetablemaster/ttm/php_libs/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'
);

Upvotes: 0

Davor
Davor

Reputation: 936

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!

Upvotes: 5

shuv50
shuv50

Reputation: 101

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

Upvotes: 10

Related Questions