PDF renderer wont render correctly in website server, but on local server works fine.

Topics: Developer Forum
Dec 3, 2012 at 8:19 AM

as my title describes my PDF renderer, already specified to its write folders and configured in the code will execute on my local server but when i move it to my websites server, and re input the locations and execute the program it downloads me a PDF but its all blank with an error message, and it only weighs 1kb. In other words it seems to not be rendering correctly the data. I´ve done trials with my own personal code and even the pdf example code in tests and still brings the same error. Is it a bug, or could it be something else? If anyone can help me solve this i´d be greatly abliged. Heres the pdf example code running on my websites server:

<?php


/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');

if (PHP_SAPI == 'cli')
	die('This example should only be run from a Web Browser');

/** Include PHPExcel */
require_once '../phpexcel/Classes/PHPExcel.php';


//	Change these values to select the Rendering library that you wish to use
//		and its directory location on your server
//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
//$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
//$rendererLibrary = 'tcPDF5.9';
$rendererLibrary = 'MPDF5.4';
//$rendererLibrary = 'domPDF0.6.0beta3';
$rendererLibraryPath = '../libraries/PDF/' . $rendererLibrary;


// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
							 ->setLastModifiedBy("Maarten Balliauw")
							 ->setTitle("PDF Test Document")
							 ->setSubject("PDF Test Document")
							 ->setDescription("Test document for PDF, generated using PHP classes.")
							 ->setKeywords("pdf php")
							 ->setCategory("Test result file");


// Add some data
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B2', 'world!')
            ->setCellValue('C1', 'Hello')
            ->setCellValue('D2', 'world!');

// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A4', 'Miscellaneous glyphs')
            ->setCellValue('A5', '�����������������');

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objPHPExcel->getActiveSheet()->setShowGridLines(false);

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


if (!PHPExcel_Settings::setPdfRenderer(
		$rendererName,
		$rendererLibraryPath
	)) {
	die(
		'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
		'
'
. 'at the top of this script as appropriate for your directory structure' ); } // Redirect output to a client�s web browser (PDF) header('Content-Type: application/pdf'); header('Content-Disposition: attachment;filename="01simple.pdf"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); $objWriter->save('php://output'); exit;
 

Coordinator
Dec 4, 2012 at 6:30 AM

Knowing what the error message says might help solve the problem

Dec 4, 2012 at 3:23 PM

Sure thing, my error apears at openening the PDF file it reads:

Adobe reader cannot open 'name.pdf ' beacause it is either not a supported file type or becuase the file has been damaged.

It only generates this error on pdf files created on my websites server, but on local tests it executes just fine

Coordinator
Dec 4, 2012 at 8:08 PM

Open the file in a text editor and look for any unusual text messages in plaintext, particularly at the beginning or end of the file

Dec 5, 2012 at 6:30 AM

I have this message:

Fatal error: Class 'PHPExcel_Writer_PDF_mPDF' not found in /hsphere/local/home/c364411/desarollo.patruus.com/phpexcel/Classes/PHPExcel/Writer/PDF.php on line 64

That's the error i received. I'm going to try and resolve it, thanks for the tip.