2011-12-31 3 views
0

Я пытаюсь создать PDF-файл, используя DOM pdf и Codeigniter. У меня есть следующий скрипт в моем контроллере, и я сохранил папку DOM внутри моего контроллера. Но когда я запускаю сценарий, я получаю фатальное сообщение об ошибке.DOM PDF не работает при загрузке файла представления Codeigniter

Но когда я отправляю значение из моей модели в $ html DOMPDF, который находится в моем контроллере. Я могу создать pdf-файл.

Не могли бы вы любезно помочь мне, как избавиться от этой ошибки?

include_once('dompdf/dompdf_config.inc.php'); 
    $html= $this->load->view('view_pdf'); 
    $dompdf = new DOMPDF(); 
    $dompdf->load_html($html); 
    $dompdf->set_paper("a4", "landscape"); 

    $dompdf->render(); 
    $dompdf->stream("my_pdf.pdf", array("Attachment" => 0)); 

Это мой файл вида;

<html> 
<head> 
<style> 
    #header { position: absolute; left: 0; top: -50px; right: 0; height: 140px; text-align: center; } 
    #footer {position: fixed ; left: 0px; bottom: -20px; right: 0px; height: 30px; font-size:10; } 
    #footer .page:after { content: counter(page, upper-roman); } 


     #table-6 { 
     width: 100% 
     border: 1px solid #B0B0B0; 
     } 
     #table-6 tbody { 
     /* Kind of irrelevant unless your .css is alreadt doing something else */ 
     margin: 0; 
     padding: 0; 
     border: 0; 
     outline: 0; 
     font-size: 100%; 
     vertical-align: baseline; 
     background: transparent; 
     } 


     #table-6 td { 
     padding: 3px 10px; 
     font-size: 12px; 
     font-weight: normal; 
     text-align:center; 
     } 
     #table-6 tr:nth-child(even) { 
     background: #F2F2F2; 
     font-size: 12px; 
     font-weight: normal; 
     } 




</style> 

    </head> 

    <body> 


    This is a test 
    </body> 

    </html> 

ответ

2

Согласно CodeIgniter documentation on views вы должны изменить свой вызов load-> Вид(), так что данные возвращаются в виде строки в контроллер, а не вставлять в веб-браузере. Попробуйте изменить код контроллера следующим образом:

include_once('dompdf/dompdf_config.inc.php'); 
$html= $this->load->view('view_pdf','',true); 
$dompdf = new DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->set_paper("a4", "landscape"); 

$dompdf->render(); 
$dompdf->stream("my_pdf.pdf", array("Attachment" => 0)); 

Единственное изменение, которое я сделал, чтобы добавить необходимые параметры $this->load->view().

(я не использую CodeIgniter. Есть ли какие-либо пользователи CI есть что добавить?)

+0

Поблагодарите Brians за ответ. Я пробовал свой код, но результат тот же. Я получаю то же сообщение об ошибке. Но я нашел способ решить мою проблему, и это ... вместо использования «View» я использую Model для генерации своего pdf. Я сохраняю весь скрипт внутри переменной, а затем возвращаю переменную в свой контроллер. а затем он генерирует PDF ... :) Спасибо .. и просто чтобы ответить на ваш вопрос .. Пользователям CI нет ничего другого, чтобы добавить ... если они не создали другую папку внутри представления .. :) еще раз спасибо. BrianS –

+0

@Srijon снова попробуйте код. Мне пришлось изменить свой ответ, потому что последний параметр для '$ this-> load-> view()' был некорректен, он должен быть true вместо false. – BrianS

+0

Еще раз спасибо BrianS. Теперь он работает отлично. :) –

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