Не удалось загрузить документ PDF с помощью TCPDF

Сейчас я работаю над преобразованием html-файла в pdf в Zend Framework, для этого я использую TCPDF, ниже приведен мой код.

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true,    'UTF-8', false);
$view = new Zend_view();
$htmlcontent = $view->render('media-file.phtml');
$pdf->AddPage(); 
$pdf->writeHTML($htmlcontent, true, 0, true, 0);
$pdf->lastPage();
$pdf->Output("single-page.pdf", 'D');

Моя проблема в том, что файл загружается, но при открытии загруженного файла отображается сообщение «Не удалось загрузить документ в формате PDF». Я не знаю, где я не прав. Пожалуйста, дайте мне знать


person user3668438    schedule 17.07.2015    source источник
comment
Добавьте error_Reporting(E_ALL); в начало скрипта, и TCPDF сообщит вам, что вы делаете неправильно. Скорее всего, это неподдерживаемый HTML-код внутри файла media-file.phtml.   -  person MonkeyZeus    schedule 17.07.2015
comment
Я пробовал, но все еще получаю только эту проблему.   -  person user3668438    schedule 17.07.2015
comment
Попробуйте открыть PDF с помощью Блокнота. Сообщения об ошибках могут попасть в исходный код PDF-файла, а ваше средство просмотра PDF-файлов не может загрузить документ.   -  person MonkeyZeus    schedule 17.07.2015


Ответы (1)


Есть много мест, где могут возникнуть проблемы.

Во-первых, допустим ли HTML? TCPDF ожидает действительный HTML, обрабатывает только подмножество HTML, и все атрибуты HTML должны быть заключены в двойные кавычки, поэтому вы должны проверить все эти вещи, прежде чем двигаться дальше.

http://www.tcpdf.org/doc/code/classTCPDF.html#ac3fdf25fcd36f1dce04f92187c621407

Далее следует ошибка «Не удалось загрузить PDF-документ». Какое приложение на самом деле показывает эту ошибку? Проблема в том, что файл не был успешно загружен браузером или программа для чтения PDF не смогла его открыть?

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

Как только вы записываете PDF-файл непосредственно в файл, как сказал @MonkeyZeus, попробуйте открыть его в Блокноте или даже просто использовать команду «голова», если она у вас есть, чтобы просмотреть первые несколько строк. Если он не начинается с чего-то подобного, PDF-файл недействителен:

%PDF-1.7

Если вы все еще не можете решить проблему, было бы полезно опубликовать ссылку на образец HTML, а также узнать, какую версию TCPDF вы используете. Также было бы полезно установить высокий уровень ошибок PHP, как предложил @MonkeyZeus, и включить любые сообщения об ошибках.

person JamesG    schedule 21.07.2015