2016-07-09 33 views
0

私はこれと同様のポストを見つけましたが、私はまだ問題を抱えています: How to get CakePdf to work in CakePHP 3.x?CakePHP 3でCakePdfを動作させるには?

誰も私が私が間違ってやっているか、私が欠けているかを把握助けることができますか?

// config/bootstrap.php 
    Plugin::load('CakePdf', ['bootstrap' => true, 'routes' => true]); 
    Configure::write('CakePdf', [ 
     'engine' => 'CakePdf.WkHtmlToPdf', 
     'binary' => 'vendor\wkhtmltopdf\bin\wkhtmltopdf.exe', 
     'margin' => [ 
      'top' => 45, 
      'left' => 50, 
      'bottom' => 15, 
      'right' => 30 
     ], 
     'download' => true 
    ]); 



// config/routes.php 
Router::extensions(['pdf']); // This is above the Router::scope() 



// controller/AppController.php 
public function initialize() 
{ 
     parent::initialize(); 
     $this->loadComponent('Flash'); 
     $this->loadComponent('RequestHandler'); 
     ... //more code 
} 


// action for pdf 
public function view($id = null) 
{ 
    ... //more code 
     $this->viewBuilder()->options([ 
      'pdfConfig' => [ 
       'title' => 'Supported Cameras', 
       'filename' => 'SupportedCamerasList' 
      ] 
     ]); 
     .. //more code 
    } 

} 

私はこのURLを使用する場合、私は(ローカルホスト/カメラ/ビュー/ 1.pdf)、このエラーを取得しています:

(!) Fatal error: [Cake\View\Exception\MissingTemplateException] Template file "Error\pdf\error500.ctp" is missing. 
0 C:\wamp\www\camerasapp\vendor\cakephp\cakephp\src\View\View.php(584): Cake\View\View->_getViewFileName('error500') 
1 C:\wamp\www\camerasapp\vendor\friendsofcake\cakepdf\src\View\PdfView.php(103): Cake\View\View->render('error500', 'error') 
2 C:\wamp\www\camerasapp\vendor\cakephp\cakephp\src\Error\ExceptionRenderer.php(356): CakePdf\View\PdfView->render('error500', 'error') 
3 C:\wamp\www\camerasapp\vendor\cakephp\cakephp\src\Error\ExceptionRenderer.php(325): Cake\Error\ExceptionRenderer->_outputMessageSafe('error500') 
4 C:\wamp\www\camerasapp\vendor\cakephp\cakephp\src\Error\ExceptionRenderer.php(327): Cake\Error\ExceptionRenderer->_outputMessage('error500') 
5 C:\wamp\www\camerasapp\vendor\cakephp\cakephp\src\Error\ExceptionRenderer.php(192): Cake\Error\ExceptionRenderer->_outputMessage('fatalError') 
6 C:\wamp\www\camerasapp\vendor\cakephp\cakephp\src\Error\ErrorHandler.php(144): Cake\Error\ExceptionRenderer->render() 
7 C:\w in C:\wamp\www\camerasapp\vendor\cakephp\cakephp\src\Error\ErrorHandler.php on line 156 

答えて

1

私は実際に今日と同じ問題を抱えていました。あなたが見ているエラーは、エラーテンプレートがないことです。 src/Template/Errorのテンプレートをsrc/Template/Error/pdfにコピーすると、実際のエラーが表示されます。

私はそれがMissing X serverにあなたを見せようとしていると思っています。私はそれを働かせるためにいくつかのハックを試みたが、結局は他のエンジンを試すことにした。

私はdompdfエニガンを最初に試してみましたが、振り返っていませんでした。たぶんそれはあなたが試みることができるものです。

あなたは場所に以下のファイルを持っている必要があります。

src/Template/Cameras/pdf/view.ctp

src/Template/Layout/pdf/default.ctp

これらのだろう、あなたのPDFのレイアウトとビューのPDF版。

run composer require dompdf/dompdfまたはphp composer.phar require dompdf/dompdfあなたの設定によっては、あなたは今localhost/cameras/view/1.pdfを参照して、あなたのPDF版を参照してくださいする必要がある場合

Plugin::load('CakePdf', ['bootstrap' => true, 'routes' => true]); 
Configure::write('CakePdf', [ 
    'engine' => 'CakePdf.dompdf', 
    'margin' => [ 
     'top' => 45, 
     'left' => 50, 
     'bottom' => 15, 
     'right' => 30 
    ], 
    'download' => true 
]); 

はであなたのbootstrap.php設定を置き換えます。あなたはレイアウトを混乱させる必要がありますし、いくつかのCSSを追加して、スタイリングの権利を取得してください。

+0

あなたはもっと具体的になることができますか?あなたが言いましたように私はしようとしたが、それでも仕事を得ることができませんでした。 Thnaks。 –

+0

@waseemAkram確かに、あなたが試したこととあなたが得た結果を教えてください。私は何ができるかを見ていきます。 –

+0

私は[cakephp 3でcakepdfを設定する](http://www.edsonmm.com/generar-pdf-en-cakephp-con-el-plugin-cakepdf/#cakephp3)と[これから]( http://stackoverflow.com/questions/38277129/how-to-get-cakepdf-to-work-in-cakephp-3?noredirect=1&lq=1)、私はpdf生成ファイルを取得することができませんが、代わりに私はちょうど私のデータをブラウザに表示することができます(Pdfは生成されていません)。 –

関連する問題