2016-07-09 5 views
0

Я нашел аналогичную должность, но я все еще возникают проблемы: How to get CakePdf to work in CakePHP 3.x?Как заставить CakePdf работать в CakePHP 3?

Может кто-нибудь помочь мне понять, что я делаю неправильно или что я не хватает?

// 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 
    } 

} 

Я получаю эту ошибку, когда я использую этот адрес (локальный/камеры/просмотр/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 enigine, попробовав первую попытку и не оглядываясь назад. Возможно, это то, что вы могли бы попробовать.

Вы должны иметь следующие файлы на месте:

src/Template/Cameras/pdf/view.ctp

src/Template/Layout/pdf/default.ctp

Это будет ваш PDF макет и версия PDF Вашего зрения.

пробег composer require dompdf/dompdf или php composer.phar require dompdf/dompdf в зависимости от вашей установки.

Заменить bootstrap.php конфигурации с:

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

Если теперь перейти к localhost/cameras/view/1.pdf и вы должны увидеть PDF-версия. Вам нужно будет возиться с макетом и добавить некоторые CSS для просмотра, чтобы получить стиль.

+0

Вы можете быть более конкретным? как я пытался, как вы упомянули, но все еще не мог заставить его работать. Thnaks. –

+0

@waseemAkram Конечно, скажите мне, что вы пробовали, и какие результаты у вас есть, и я посмотрю, что я могу сделать. –

+0

Я следил за [Настройка cakepdf в cakephp 3] (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?noredirect11&lq=1), но я не могу получить файл, созданный в формате pdf, но вместо этого Я просто могу отображать свои данные в браузере (Pdf не генерируется). –

Смежные вопросы