PHPExcel 1.7.6 で PDF を生成しようとして失敗した後 (メモリ不足エラー)、1.7.8 にアップグレードしました。私は一生、それを機能させる方法を理解できません。tcPDF と mPDF を試しましたが、どちらも同じです。
Excel 出力に戻すと、パスが正しく設定されていることがわかります。私が得ることができるのは「PDFレンダリングライブラリが定義されていません」であり、それが何を望んでいるのか理解できません-「mPDF5.4」、「MPDF54」(フォルダー自体の実際の名前)、「 mpdf'、'mpdf.php'...毎回同じです。
私は 1 年以上 PHPExcel を使用しているので、まったく新しいわけではありません。この問題について認めるよりもずっと多くの時間を失ってしまいました。また、この問題がどこにも説明されていないことがわかりました。このアウト。
私が使用している実際のコードは次のとおりです。
ini_set('include_path', ini_get('include_path').'\\Classes\\');
$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
$rendererLibrary = 'mPDF5.4';
$rendererLibraryPath = ini_get('include_path') . $rendererLibrary;
(つまり、サンプル コードのコピーです。)
完全を期すために、私が使用しているヘッダーは
echo header("Content-Type: application/pdf");
echo header("Content-Disposition: attachment; filename=".$filename.".pdf" );
echo header('Cache-Control: max-age=0');
当然、これらはファイルの上部近くにあります。
ファイルの終わり近くで、出力コードは次のとおりです。
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('php://output');