【问题标题】:html to pdf very large files phphtml 到 pdf 非常大的文件 php
【发布时间】:2011-04-27 23:42:25
【问题描述】:

嗨 我正在尝试使用 dompdf-0.5.1 在 php 中创建一个 pdf 文件我正在从 html 创建这些文件我每次尝试创建一个大文件时都会有大量数据它卡住给我错误是否有任何库我可用于来自 html 的大型 pdf 文件 它也适用于小型和普通文件 谢谢

致命错误:在 E:\AppServ\www\test\include\cellmap.cls.php:237 中未捕获异常 'DOMPDF_Internal_Exception' 并带有消息 'Frame not found in cellmap' 堆栈跟踪:#0 E:\AppServ\www \test\include\table_cell_frame_reflower.cls.php(66): Cellmap->get_frame_position(Object(Table_Cell_Frame_Decorator)) #1 E:\AppServ\www\test\include\frame_decorator.cls.php(387): Table_Cell_Frame_Reflower->reflow () #2 E:\AppServ\www\test\include\table_row_frame_reflower.cls.php(70): Frame_Decorator->reflow() #3 E:\AppServ\www\test\include\frame_decorator.cls.php(387 ): Table_Row_Frame_Reflower->reflow() #4 E:\AppServ\www\test\include\table_frame_reflower.cls.php(468): Frame_Decorator->reflow() #5 E:\AppServ\www\test\include\frame_decorator .cls.php(387): Table_Frame_Reflower->reflow() #6 E:\AppServ\www\test\include\block_frame_reflower.cls.php(408): Frame_Decorator->reflow() #7 E:\AppServ\www \test\include\frame_decorator.cls.php(387): Block_Frame_Reflower->reflow() #8 E:\AppServ\www\test\include\table_cell _frame_reflower.cls.php(115):第 237 行 E:\AppServ\www\test\include\cellmap.cls.php 中的 Frame_Deco

【问题讨论】:

  • 提供一些导致问题的示例 HTML 会有所帮助。您可能会考虑升级到 DOMPDF 的 0.6.0 版本(目前处于测试阶段)。它解决了包括这个在内的许多问题。

标签: php pdf pdf-generation dompdf


【解决方案1】:

我建议使用Webkit to PDFPhantomJS

【讨论】:

  • +1 对此选择。大约一年前,我尝试了所有可用的免费 PDF 转换器,并且 wkhtmltopdf 的效果比其他任何工具都好。通常你会通过使用它来回避许多问题和疯狂的错误。
【解决方案2】:

刚刚对DOMpdf 进行了一些尝试,并在此过程中发现了一些修复,所以我想分享一下。

我的dompdf Frame not found in cellmap 错误可以通过编辑includes/cellmap.cls.php 并注释掉每一个出现的情况来解决:

throw new DOMPDF_Exception("Frame not found in cellmap");

212、231、257、274 行

替换为:

return false;

这使我能够看到我的多页 PDF 文档实际出错的地方。我将其缩小为一个跨越一页以上的大图像(当然是用户cms 输入!)所以我将单个图像换成相同的,切成两块,一切都修复了。

我还读到此错误可能与跨越一页的 div 相关联,但在0.6.0 beta 3 中发现并非如此,因为任何“修复”周围都没有任何区别,即使我有多个div 的跨页。修复建议用“p”或“span”标签替换所有 div。

所以现在DOMpdf 可以毫无问题地渲染出CMS 生成的页面,希望这可以帮助其他人,

【讨论】:

  • 谢谢。我为这个错误打破了很长时间。在我的情况下,这是由于将对象更改为一个对象中的数组而导致的 PHP 错误。 PHP 错误显示不适合页面,因此出现错误。通过注释掉这些行,我发现了几乎无法检测到的错误。
【解决方案3】:

几天来我一直面临同样的问题,在一个包含行跨度和列跨度的巨大表格中,但没有边框折叠:折叠(存在与该属性相关的已知问题)。

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

    table
    {
       border-collapse:unset;   
    }

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2011-12-14
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多