Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

All other Modules /

Discuss all other Modules here.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

tcpdf module


Go to End


2 Posts   1320 Views

Avatar
EKaburu

Community Member, 7 Posts

24 February 2016 at 10:12pm

Hi Guys,
I have tried to integrate the tcpdf module provided my Mike Parkhill, but I cannot get it to generate a pdf.

I'm thinking the autoloader is not picking up the tcpdf.php class from the module but I don't know how to solve that. Any help or a push to the right direction will be greatly appreciated.

Below is my code for the class that I wish to generate the pdf from.

class RaaOrders Extends ReportsModule {   
		
		public static $allowed_actions = array (
			
			'RaaOrdersPending'
			'pdf'
		);

		public static $url_handlers = array (
			
			'pending'   => 'RaaOrdersPending',
			'mypdf'     => 'pdf'
		);

		public function RaaOrdersPending(SS_HTTPRequest $request) {
			$dummy_data = 'Dummy Data';

			return array (
				'Dummy' => $dummy_data
			);

		}


	public function pdf(){
		
		// 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('Nicola Asuni');
		$pdf->SetTitle('TCPDF Example 001');
		$pdf->SetSubject('TCPDF Tutorial');
		$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('dejavusans', '', 14, '', true);

		// Add a page
		// This method has several options, check the source code documentation for more information.
		$pdf->AddPage();

		// set text shadow effect
		$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));

		// Print a text
		$html = '<span style="background-color:yellow;color:blue;">&nbsp;PAGE 1&nbsp;</span>
		<p stroke="0.2" fill="true" strokecolor="yellow" color="blue" style="font-family:helvetica;font-weight:bold;font-size:26pt;">You can set a full page background.</p>';
		$pdf->writeHTML($html, true, false, true, false, '');

		// Close and output PDF document
		// This method has several options, check the source code documentation for more information.
		$pdf->Output('example_001.pdf', 'I');
	}



}

Then I'm putting the link:

 <a href="raa_orders/mypdf{$PDFLink}"> GET PDF </a> 
on the template RaaOrders_RaaOrdersPending.ss

When I clickthe link, it just downloads an html file with the error: Fatal error: Class 'TCPDF' not found in C:\xampp\htdocs\kreports\reports\code\RaaOrders.php on line 275

line 275 is where I have

 $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
in my code

Avatar
swaiba

Forum Moderator, 1899 Posts

25 February 2016 at 8:19pm

FYI this item is resolved, user now is using composer to install