DOMPDF - преобразование PHP-HTML в PDF?

У меня есть php-файл, из которого я хочу создать PDF-файл с помощью dompdf, я пробовал его с приведенным ниже кодом, но не могу получить html-файл из php, любая идея о том, как получить html-элементы из php-файла ?

    <?php
    require_once("dompdf/dompdf_config.inc.php");
    ob_start();        
    ?>
    <html>
     <body>
     <?php
         //Code for a colored table
     ?>
     <form method=post action=#><input type=submit name=submit id=submit value="Create PDF"></form>
     </body>
    <html>

    <?php
        if((isset($_POST['submit'])))
        {
            $html = ob_get_contents(); 
                ob_end_flush();
            $dompdf = new DOMPDF();
            $dompdf->load_html($html);
            $dompdf->render();
            $dompdf->stream("Time Table.pdf");
        }
    ?>

EDIT: теперь выдает ошибку:

Неустранимая ошибка: превышено максимальное время выполнения 30 секунд в .../


person TKA    schedule 28.07.2013    source источник
comment
Я не вижу здесь ничего из ряда вон выходящего. Что вы получите, отправив форму? Вы получаете какие-либо ошибки?   -  person BrianS    schedule 30.07.2013
comment
Неустранимая ошибка: превышено максимальное время выполнения 30 секунд.   -  person TKA    schedule 30.07.2013


Ответы (1)


Не уверен, насколько это важно, но ваш закрывающий HTML-тег на самом деле просто еще один открытый HTML-тег. Попробуйте закрыть его и изменить код на следующий:

 <?php
    require_once("dompdf/dompdf_config.inc.php");
    ob_start();        
    ?>
    <html>
     <body>
     <?php
         //Code for a colored table
     ?>
     <form method=post action=#><input type=submit name=submit id=submit value="Create PDF"></form>
     </body>
    </html>

    <?php
        if((isset($_POST['submit'])))
        {
            $html = ob_get_contents(); 
                ob_end_flush();
            $dompdf = new DOMPDF();
            $dompdf->load_html($html);
            $dompdf->render();
            $dompdf->stream("Time Table.pdf");
        }
    ?>
person Tom Metcalfe    schedule 30.07.2013
comment
Извините, это была опечатка, мой код генерирует PDF, но это поврежденный файл PDF! также выдает фатальную ошибку: максимальное время выполнения превышает 30 с. - person TKA; 31.07.2013
comment
@TKA Если PDF-файл поврежден, некоторые ошибки / уведомления PHP могут просачиваться в выходной поток. Сохраните PDF-файл и откройте его в текстовом редакторе, чтобы проверить, так ли это. Ошибки будут вверху файла. - person BrianS; 31.07.2013
comment
@BrianS, но я получаю результат, когда повторяю $html - person TKA; 02.08.2013
comment
@TKA, как я уже сказал, поврежденный PDF-файл часто возникает из-за того, что некоторый контент, отличный от PDF, вводится в выходной поток. Это не означает, что HTML-код недействителен или даже PDF-файл недействителен. Это просто означает, что дополнительный контент, не относящийся к PDF, мешает анализу документа программой чтения PDF. Вы можете просто закомментировать $dompdf->stream() и посмотреть, что возвращается. - person BrianS; 02.08.2013