【问题标题】:DOM PDF renders on mac but not PCDOMPDF 在 Mac 上渲染,但不在 PC 上
【发布时间】:2012-03-20 00:05:52
【问题描述】:

我正在使用 DOM PDF 将一个简单的 html 页面转换为 PDF——在 mac 上一切正常,但在 PC 上我收到消息:

有我可以查看的日志吗?什么可以使它在 Mac 上工作(使用预览)而不是在 Windows 上的 adobe?

编辑

按照 bfavaretto 的建议,我在 textedit 中打开了 PDF。这是错误:

<p>Message:  Function set_magic_quotes_runtime() is deprecated</p>
<p>Filename: lib/class.pdf.php</p>
<p>Line Number: 4332</p>

这是我的 CI 代码:

function pdf($id)
    {
        // Setup fields
        $this->load->helper('htm_to_pdf');
        $data['data'] = $this->home_model->getReport(array('id'=>$id));
        $html = $this->load->view('HTML2PDF/Code/index', $data, true);
        pdf_create($html, 'filename');
    }

【问题讨论】:

  • 抱歉,因为我误解了问题,所以删除了我的答案。
  • 您没有说您使用的是什么版本,但是您是否尝试过升级到最新版本的 DOMPDF?这解决了我前一阵子的问题。我记得当时升级到当前的测试版,这可能会有所帮助。不过,我忘记了哪个版本。
  • 我无法清楚地阅读该消息(图像),也许我只是变老了 :)
  • 您是指 Mac 与 Windows 作为客户端还是服务器
  • 您可以尝试在文本编辑器(或记事本)上打开 PDF。如果发生一些 PHP 错误,它将是包含错误消息的 HTML,而不是 PDF。

标签: php codeigniter pdf dompdf


【解决方案1】:

set_magic_quotes_runtime 在 dompdf 0.6 中不再使用。我建议你下载最新版本(0.6 beta 3)或删除lib/class.pdf.php中的set_magic_quotes_runtime调用。

这是 PHP 抛出的警告,因为该函数已被弃用。

【讨论】:

    【解决方案2】:

    一些wikiusage信息

    require_once("dompdf_config.inc.php");
    
    
    $html_to_string = $this->load->view('', array(), true);
    
    
    $dompdf = new DOMPDF();
    $dompdf->load_html($html_to_string);
    
    force_download('sample.pdf', file_get_contents($dompdf->render()));
    

    -

    你可以使用而不是强制下载

    $dompdf->stream("sample.pdf");
    

    【讨论】:

    • 啊。像中间示例一样强制下载会更好吗?
    • 就我个人而言,我更喜欢在浏览器中呈现 pdf 并让用户决定是否要下载它,不幸的是,他们需要在他们选择的浏览器中安装一个 pdf 阅读器插件。如果您只想为自己保存一个副本,那么请确保您可以强制下载它。您需要先创建 pdf。 $pdf = pdf_create('', ''); force_download($pdf, file_get_contents($pdf)) //需要先加载下载助手。看起来您的 DOM PDF 副本也已过时(来自上面的错误)。获取更新版本
    • 菲利普,快到了...我收到一个错误:Message: file_get_contents( ): failed to open stream: No such file or directory 使用您的代码时...它呈现,但有错误。
    • @KevinBrown 早上凯文,更新你的 dom pdf 版本,我更新了我的答案,祝你好运。
    【解决方案3】:

    我看到过关于类似问题的帖子(我遇到了一堆关于 DOMPDF 的问题),听起来输出流中有其他文本导致 Acrobat 将 PDF 拒绝为损坏。

    尝试添加 setlocale(LC_NUMERIC, "C");在您致电 DomPDF 之前 查看此线程以获取更多信息:http://code.google.com/p/dompdf/issues/detail?id=418

    【讨论】:

    • 如何在 PHP 中调用 domPDF?就在你初始化类之前 $pdf = new DOMPDF;
    • 查看编辑...我试过了,但在 PC 上没有成功,但我没有按照上面 cmets 的建议检查 PHP 错误。
    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多