2013-04-03 2 views
1

Контроллер:TCPDF - Codeigniter - Не удалось загрузить документ в формате PDF

public function test(){ 
    $data = array(); 
    $this->load->library('tcpdf'); 
    $this->display_page($data); 
} 

test.php: (Не разместить все это, так как его немного длинный)

global $l; 
$l = Array(); 
$l['a_meta_charset'] = 'UTF-8'; 
$l['a_meta_dir'] = 'ltr'; 
$l['a_meta_language'] = 'en'; 
$l['w_page'] = 'page'; 

// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8',    false); 


-- pdf stuff -- 

$pdf->Output('example_007.pdf', 'I'); 

В Chrome это просто говорит: «Не удалось загрузить документ PDF». Нет ошибок, ничего в консоли. В firefox говорится: «Файл не начинается с«% PDF- ». Local \ EWH`_'s3-0y.

Строка в конце Local \ отображается случайной с каждой нагрузкой.

Я пробовал использовать буферизацию и сброс вывода, безрезультатно. Я в недоумении.

ответ

0

Возможно, что вы выставляете что-то в браузере перед созданием счета-фактуры. Перейдите к источнику страницы и посмотрите, есть ли что-нибудь, включая пробелы (новые строки или пробелы) и удалите их.

+0

Да, я видел, что это предложение много, и это не кажется, проблема здесь, спасибо за помощь. –

+0

Вы попробовали просто включить файл tcpdf? Это не должно быть проблемой, но вы никогда не знаете. – Duniyadnd

+0

У меня есть :(Это так раздражает. Я не знаю, почему я единственный человек в сетях, столкнувшихся с этой проблемой ... –

0

Duniyadnd является правильным. Когда я посмотрел на ответ сети в инструментах отладки в Chrome, я увидел, что магия «% PDF-» была во второй строке, а не первой. Я обнаружил некоторые пробелы в моих обязательных файлах включений до и после разделителей, которые выводятся в браузер перед файлом PDF. Устранение этого пробела до и после разграничения php устранило проблему.

0

При использовании фреймворка, убедитесь, что вы renderPartial и не делают вид в контроллере

+1

Этот ответ не отвечает на вопрос ОП, так как нет информации о YII в OP Вопрос. Для уточнения или получения дополнительной информации, пожалуйста, используйте комментарии. –

3

Попробуйте поставить exit; после вывода PDF. Надеюсь, он это исправит, как и для меня.

- PDF материал -

$pdf->Output('example_007.pdf', 'I'); 
exit; 
+0

отлично поработал для меня – anhnt

1

попробовать это

ob_clean(); 
ob_flush(); 
$pdf->Output('example_007.pdf', 'I'); 
ob_end_flush(); 
ob_end_clean(); 
Смежные вопросы