为什么我的代码出现致命错误错误:未捕获异常'DOMPDF_Exception',消息'在cellmap中找不到框架

时间:2014-04-23 00:40:56

标签: php html5 dompdf

当记录很多并且需要在pdf的第二页上打印时我遇到了这个错误

  

致命错误:未捕获的异常' DOMPDF_Exception'消息'在cellmap'中找不到框架在   C:\ xampp \ htdocs \ pdf_dompdf \ dompdf \ include \ cellmap.cls.php:244 Stack   追踪:#0   C:\ XAMPP \ htdocs中\ pdf_dompdf \ DOMPDF \包括\ table_cell_renderer.cls.php(50):   Cellmap-> get_spanned_cells(Object(Table_Cell_Frame_Decorator))#1   C:\ XAMPP \ htdocs中\ pdf_dompdf \ DOMPDF \包括\ renderer.cls.php(287):   Table_Cell_Renderer-> render(Object(Table_Cell_Frame_Decorator))#2   C:\ XAMPP \ htdocs中\ pdf_dompdf \ DOMPDF \包括\ renderer.cls.php(107):   Renderer-> _render_frame('表单元&#39 ;,   Object(Table_Cell_Frame_Decorator))#3   C:\ XAMPP \ htdocs中\ pdf_dompdf \ DOMPDF \包括\ renderer.cls.php(190):   渲染器 - >渲染(Object(Table_Cell_Frame_Decorator))#4   C:\ XAMPP \ htdocs中\ pdf_dompdf \ DOMPDF \包括\ renderer.cls.php(190):   Renderer-> render(Object(Table_Row_Frame_Decorator))#5   C:\ XAMPP \ htdocs中\ pdf_dompdf \ DOMPDF \包括\ renderer.cls.php(190):   Renderer-> render(Object(Table_Row_Group_Frame_Decorator))#6   C:\ XAMPP \ htdocs中\ pdf_dompdf \ DOMPDF \包括\ renderer.cls.php(190):   渲染器 - >渲染   第244行的C:\ xampp \ htdocs \ pdf_dompdf \ dompdf \ include \ cellmap.cls.php

 <div class="ORMExSum">
    <h1 align="center">ORM Executive Summary Report</h1>
      <table cellpadding="0" cellspacing="0" border="1" width="100%">
      <caption style="text-align:left; padding-bottom: 10px;">Keyword: <?php echo 'Juan dela Cruz, Juan Cruz'; ?></caption>
        <thead class="theader">
          <tr><th colspan="<?php echo 3+$rtweekly; ?>">Weekly Rankings</th></tr>
          <tr>
          <th width="10%">Location</th>
          <th width="40%">Negative Snippet</th>
          <th width="10%">Previous Ranking</th>
          <?php while($rw1<$rtweekly):  ?>
            <th width="8%">
            <?php echo date('M. d', strtotime (mysql_result($tweekly,$rw1,"WeeklyRank"))); $rw1++; ?>
            </th>
          <?php endwhile; ?>
          </tr>
         </thead>

         <tbody> 
          <?php $x='a';while($rw2<$rsummary): $rw3 = 0;?>
          <tr>
          <td rowspan="<?php echo $cnt[$x]+1;$x++;?>">
          <?php echo mysql_result($summary,$rw2,"Location");  ?>
          </td>
          <?php for ($i=0; $i < 2+$rtweekly; $i++): ?>
          <td></td>
          <?php $cnt++; endfor;?>
          </tr>

            <?php while($rw3<$rsnippet): $rw4 = 0;?>

              <?php if(mysql_result($snippet,$rw3,"SummaryID") == mysql_result($summary,$rw2,"LocationID")): ?>
                <tr>
                <td style="font-size:11px;">
                <?php echo mysql_result($snippet,$rw3,"NegativeSnippet"); ?>
                </td>
                <td>
                <?php echo mysql_result($snippet,$rw3,"PreviousRank"); ?>
                </td>
                <?php while($rw4<$rtweekly): $rw5 = 0;?>
                <td>
                <?php while($rw5<$rweekly): ?>
                  <?php if(mysql_result($weekly,$rw5,"SummaryID") ==  mysql_result($summary,$rw2,"LocationID") && mysql_result($weekly,$rw5,"SnipPrevID") == mysql_result($snippet,$rw3,"NSPID") && mysql_result($tweekly,$rw4,"WeeklyRank") == mysql_result($weekly,$rw5,"WeeklyRank")): ?>
                  <?php echo mysql_result($weekly,$rw5,"Rank"); ?>
                  <?php endif;?>
                <?php $rw5++; endwhile; ?>
                </td>
                <?php $rw4++; endwhile; ?>

              <?php endif;?>
              </tr>
            <?php $rw3++; endwhile; ?>

            <?php $rw2++; endwhile; ?>


        </tbody>
      </table>
      </div>

5 个答案:

答案 0 :(得分:2)

我有同样的问题。

我已经用X行修复它..强行打破页面。

它只是因为pdf尝试输出很多行而他无法跳转到下一页。

在您的情况下,请尝试放置:

 page-break-after: always;

在第一个tr ..

<tbody> 
      <?php $x='a';while($rw2<$rsummary): $rw3 = 0;?>
      <tr style="page-break-after: always;">

或者你可以在X行之后制作一个php来做。

我希望这对某人有用。

致以最诚挚的问候,

<强> ===== 编辑 =====

此外,删除&#34; border-collapse&#34;在你的桌子上。

答案 1 :(得分:0)

当桌子超出纸张大小时会发生这种情况。
您可以使用自定义纸张尺寸。它将解决问题。

示例:

$paper_orientation = 'landscape';
$customPaper = array(0,0,950,950);
$dompdf->set_paper($customPaper,$paper_orientation);

答案 2 :(得分:0)

我几天来一直面临同样的问题,在一个带有rowspan和colspan的巨大表格中,但没有边界崩溃:崩溃(有一个与该属性相关的已知问题)。

我已经通过将其添加到我的表元素的样式来解决它:

table
{
   border-collapse:unset;   
}

希望它有所帮助!

答案 3 :(得分:0)

我有同样的问题。 确保您没有任何外部CSS或任何其他链接文件。但是我通过内部css和内联css完全设计PDF文件来修复它。 我希望它能解决你的问题。

答案 4 :(得分:-1)

这可以在关闭表几次时解决。然后表格适合纸张大小,错误消失了。