Bonjour à tous,
Je suis fraîchement inscris sur ce forum et déjà, demande votre aide.
J'ai entrepris, il y a quelques temps, la création du site web de ma petite entreprise.
Lors d'achats via celui-ci, je souhaiterais envoyer un mail de confirmation à l'utilisateur avec une pièce jointe (pdf) contenant les informations de son achat.
J'utilise pour cela les classes PHPExcel. J'ai réussi à ouvrir, écrire et enregistrer le document Excel sans problème, mais voilà, dès que je souhaite le convertir en pdf, je butte toujours sur le même problème qui est le suivant:
Fatal error: Uncaught exception 'PHPExcel_Writer_Exception' with message 'PDF Rendering library has not been defined.' in /home/www/30398ce4ba8eeca03558674547826581/web/9_libs/Classes/PHPExcel/Writer/PDF.php:56 Stack trace: #0 /home/www/30398ce4ba8eeca03558674547826581/web/book_info.php(205): PHPExcel_Writer_PDF->__construct(Object(PHPExcel)) #1 {main} thrown in /home/www/30398ce4ba8eeca03558674547826581/web/9_libs/Classes/PHPExcel/Writer/PDF.php on line 56
Voici mon code source:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| /************ GENERATION OF THE DOCUMENT ************/
/** PHPExcel */
include('9_libs/Classes/PHPExcel.php');
/** PHPExcel_Writer_Excel2007 */
include('9_libs/Classes/PHPExcel/Writer/Excel2007.php');
/** PHPExcel_Writer_IO */
include('9_libs/Classes/PHPExcel/IOFactory.php');
/** PHPExcel_Writer_PDF */
include('9_libs/Classes/PHPExcel/Writer/PDF.php');
/** PHPExcel_Writer_mPDF */
//require('9_libs/Classes/PHPExcel/Writer/PDF/mPDF.php');
$_SESSION['test'] = 5;
/** Error reporting */
error_reporting(E_ALL);
$_SESSION['test'] = 5.1;
/** Include path **/
ini_set('include_path', ini_get('include_path').'9_libs/Classes/');
$_SESSION['test'] = 5.2;
/** Open the Excel file */
$inputFileName = '6_documents/Finances/test.xlsx';
$_SESSION['test'] = 5.3;
/** Load $inputFileName to a PHPExcel Object **/
$workbook = PHPExcel_IOFactory::load($inputFileName);
$_SESSION['test'] = 5.4;
// Add some data
$sheet = $workbook->getActiveSheet()->SetCellValue('A4', $newBill);
$_SESSION['test'] = 5.5;
$objWriter = new PHPExcel_Writer_PDF($workbook);
$objWriter->setSheetIndex(0);
$records = '6_documents/Finances/bill.pdf';
$objWriter->save($records);
$_SESSION['test'] = 5.6;
/************ END OF THE GENERATION ************/ |
L'erreur provient de la ligne suivante:
$objWriter = new PHPExcel_Writer_PDF($workbook);
D'après ce que je comprend, il y a un problème au niveau de la classe PDF.php. Voici les lignes concernées par l'erreur ci-dessus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| /**
* Instantiate a new renderer of the configured type within this container class
*
* @param PHPExcel $phpExcel PHPExcel object
* @throws PHPExcel_Writer_Exception when PDF library is not configured
*/
public function __construct(PHPExcel $phpExcel)
{
$pdfLibraryName = PHPExcel_Settings::getPdfRendererName();
if (is_null($pdfLibraryName)) {
throw new PHPExcel_Writer_Exception("PDF Rendering library has not been defined.");
}
$pdfLibraryPath = PHPExcel_Settings::getPdfRendererPath();
if (is_null($pdfLibraryName)) {
throw new PHPExcel_Writer_Exception("PDF Rendering library path has not been defined.");
}
$includePath = str_replace('\\', '/', get_include_path());
$rendererPath = str_replace('\\', '/', $pdfLibraryPath);
if (strpos($rendererPath, $includePath) === false) {
set_include_path(get_include_path() . PATH_SEPARATOR . $pdfLibraryPath);
}
$rendererName = 'PHPExcel_Writer_PDF_' . $pdfLibraryName;
$this->_renderer = new $rendererName($phpExcel);
} |
Je tiens à préciser qu'avant d'écrire ce message, je me suis beaucoup renseigné sur le net. J'ai entre autre lu le tutoriel de MaitrePylos sur le sujet ainsi que d'autres tutoriels disponibles sur le web
D'avance merci pour votre aide.
Amicalement,
Gub
Partager