2010-06-22 3 views
2

Я использую Kohana 3 и pdfview/DOMPDF для генерации PDF-файлов, но они сгенерированы с 0 байтами и текстовым/простым типом mime.DOMPDF: файлы с 0 байтами и текст/простой тип mime

Контроллер:

public function action_pdf() { 
    if(isset($_POST['dados'])) { 
     $pdf = View_PDF::factory('export/pdf'); 
     $pdf->title = ''; 
     $pdf->headers = array(); 
     $pdf->data = array(); 

     $this->request->response = $pdf; 
     $this->request->send_file(true, 'dados.pdf'); 
    } 
} 

Вид:

<html> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <style type="text/css"> 
     * { 
      border: 0; 
      margin: 0; 
      padding: 0; 
     } 

     table { 
      border: 1px solid; 
      border-collapse: collapse; 
      margin: 0 auto; 
      text-align: center; 
      width: 500px; 
     } 

     td { 
      border: 1px solid; 
      padding: 5px; 
     } 
     </style> 
    </head> 
    <body> 
     <h1>Teste</h1> 
     <table> 
      <tr></tr> 
     </table> 
    </body> 
</html> 

Когда я скачать файл и открыть его в epdfview (просмотрщик PDF), он говорит:

Unable to open document 
File type plain text document (text/plain) is not supported 

Я просто дон Не знаю, что случилось. Спасибо.

UPDATE:

Я скачал последнюю бета-версию и DOMPDF, удален модуль в pdfview Кохана и сделал что-то подобное в мой контроллер:

public function action_pdf() { 
     if(isset($_POST['dados'])) { 
      require_once(Kohana::find_file('vendor', 'dompdf/dompdf_config.inc')); 

      $view = View::factory('report/pdf'); 
      $view->title = ''; 
      $view->data = array(); 

      $pdf = new DOMPDF(); 

      $pdf->load_html($view->render()); 
      $pdf->render(); 
      $pdf->stream('dados.pdf', array('Attachment' => 1)); 
     } 
    } 

Теперь он работает. Благодаря!

+0

ли вы следовать инструкциям по установке? Также попробуйте открыть файл в редакторе, чтобы узнать, что такое фактический контент. Вы можете проверить, есть ли ошибка, вызвав '$ pdfview-> render()' перед тем, как назначить ее как ответ запроса. – shadowhand

ответ

0

Я столкнулся с подобной проблемой, и получил это сообщение "dompdf Тип текстового документа типа text (plain/plain) не поддерживается". Я проверил пути установки, и это связано с изменением прав на файл/папку в каталоге dompdf (lib/fonts - это то, о чем конкретно упоминалось в инструкциях по установке). Работает сейчас.

0

Это, кажется, работает, когда я изменил разрешение папок папки DOMPDF

sudo chmod -rf 777 dompdf 

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

  • Нет связанных вопросов^_^