конвертировать html файл в pdf с помощью dompdf

Как правильно использовать dompdf для преобразования html-файлов в pdf. Я делаю что-то вроде этого:

<?php
require_once("lib/dompdf/dompdf_config.inc.php");

$file = "checkout.html"; 

$dompdf = new DOMPDF();
$dompdf->load_html_file($file);
$dompdf->render();
$dompdf->stream("sample.pdf");

?>

Но я получаю эту ошибку:

Fatal error: Call to undefined method Inline_Frame_Decorator::normalise() in C:\wamp\www\pos\php\lib\dompdf\include\table_frame_decorator.cls.php on line 252

Как мне это решить, пожалуйста, просветите меня. Спасибо.

Обновление Вот содержимое checkout.html

<table border="0">
    <th colspan="10">Product</th>
    <th>Quantity</th>
    <th>Price</th>
    <!--<th>Discount</th><!-- commented out jan 21--> 
    <th>Subtotal</th>





        <!-- fetch values from reports and prod_table using the qtysoldfetcher query-->




<tr>
<td  colspan="10">Boysen</td>
<td>4</td>
<td>900</td>
<!-- <td></td>  --><!-- commented out jan 21--> 
<td>3600</td>
</tr>








<h3 id="wyt">Sales Transaction Summary</h3><a href="pdfqtysold.php"><img id="tablez" src="../img/system/icons/Oficina-PDF-icon.png"></img></a>

<tr>
<td>Total Bill: </td>
<td colspan="8">3600</td>

<!--added jan 19 -->

</tr>

<tr>

<td>Amount paid: </td>
<td colspan="8">900</td>
</tr>



<tr>
<td>Change: </td>
<td colspan="8"></td>
</tr>

<tr>
<td>Credit: </td>
<td colspan="8">2700</td>
</tr>

<tr>
<td>Date: </td>
<td  colspan="8">2011-01-28 11:13:52</td>
</tr>

<tr>
<td>Bought by: </td>
<td  colspan="8">Asakura, Yoh</td>
</tr>
<!--end-->

 </table>

person Wern Ancheta    schedule 28.01.2011    source источник
comment
Я обновил свой ответ. Ты можешь проверить.   -  person Eray    schedule 28.01.2011
comment
Ваш html по-прежнему ужасно структурирован. dompdf несколько гибок в решении структурных проблем, но не настолько настолько. Следующий документ (на основе вашего собственного) будет отображаться правильно: eclecticgeek.com/dompdf/debug_tests/so4829828 .htm   -  person BrianS    schedule 02.02.2011
comment
если я хочу использовать URL-адрес, то что такое обновление кода. ???   -  person Puzzled Boy    schedule 13.06.2013


Ответы (1)


checkout.html действителен? Есть ли таблица и незакрытые теги?

В группах Google был ответ:

  1. проверьте, нет ли у вас незакрытых тегов в таблице; У DOMPDF могут возникнуть проблемы, если ваш HTML неправильно сформирован.

  2. проверьте типы отображения, связанные с таблицей, в вашем CSS для элементов, где структура таблицы не была явно обозначена

ОБНОВЛЕНИЕ:

Ваш файл checkout.html НЕдействителен. Существует проблема :

<!--<th>Discount</th><!-- commented out jan 21--> 

Строка 5, столбец 31: неверное объявление комментария: найден начальный символ имени вне комментария, но внутри объявления комментария

Ваш блок комментариев не закрыт. Вы можете использовать эту строку:

<!--<th>Discount</th>--><!-- commented out jan 21--> 
person Eray    schedule 28.01.2011
comment
попытался удалить все эти комментарии, но все равно пишет ту же ошибку. - person Wern Ancheta; 28.01.2011
comment
вы можете попробовать добавить теги <html> , <head> и т. д. И проверить validator.w3.org/check - person Eray; 28.01.2011
comment
элементы th все еще должны быть в tr; элемент h3 внутри таблицы, но не в td; некоторые строки имеют 13 ячеек, некоторые только 9 (хотя я не думаю, что это вызовет какие-либо проблемы) - person Mark Baker; 28.01.2011
comment
@PuzzledBoy, просто получите содержимое своего URL-адреса (например, file_get_contents($url), а затем используйте $dompdf->load_html($content) вместо $dompdf->load_html_file($url). Это должно сработать. - person Eray; 13.06.2013
comment
@Eray Сэр, я пытался, но не решил проблему. Моя проблема здесь stackoverflow.com/questions/17086731/ - person Puzzled Boy; 13.06.2013
comment
+1 за это. У меня были такие же проблемы. Некоторые незакрытые теги у меня были, и как только я их просмотрел и исправил, все заработало. Спасибо @Eray - person FONGOH MARTIN; 23.05.2017