【问题标题】:Codeigniter - How to convert a html page to an image?Codeigniter - 如何将 html 页面转换为图像?
【发布时间】:2012-02-01 08:30:11
【问题描述】:

我有一个网页,在 codeigniter 框架上编码,其中列出了所有可用的证书。然后,我可以通过单击证书名称来打印证书,或者如果用户想要打印超过 1 个证书,我可以选中复选框。

目前我所做的只是查看证书的 html,用户必须右键单击他们的浏览器并单击打印。 1页证书就可以了。

但是当我有 2 个或更多证书时,这些证书不会完美堆叠。据我所知,我无法将 html 页面设置为 A4 尺寸打印。

Codeigniter 有一个图像处理库。 http://codeigniter.com/user_guide/libraries/image_lib.html

但找不到我想要的。

有没有办法将这些 html 页面转换为图像,以便我以后打印它们?还是我应该尝试其他库?

【问题讨论】:

    标签: php html image codeigniter


    【解决方案1】:

    我会使用 DOMPDF 创建一个 PDF 文档。您可以正常生成它们的html,然后使用加载视图函数的第三个参数返回html以进行PDF处理。

    你的控制器中有这样的东西;

        $this->load->helper('pdf');
        $html = $this->load->view('certificate_view', array(), TRUE);
        $attachment_location = $_SERVER["DOCUMENT_ROOT"] . '/certs/'.$title.'.pdf';
        pdf_create($html, $title, $stream=FALSE, $orientation='portrait');
        // send open/save pdf dialog to user
        header('Cache-Control: public'); // needed for i.e.
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment; filename="'.$title.'"');
        readfile($attachment_location);
        exit;
    

    Codeigniter DOMPDF 库是here

    【讨论】:

    • 目前所有选择的证书都将呈现在一个长的 html 页面中。如果我要打印 500 个证书,会不会占用大量资源?还是应该循环将pdf输出到文件夹中,然后一次提取1个pdf进行打印?
    • 我会在一个循环中做一个单一的证书视图,最后一个元素是一个具有分页规则的 div,以构建 html
    • 我想出的解决方案是使用tcpdf。似乎可以承受大量的证书。
    【解决方案2】:

    您可以使用这个简单的tutorial 将 html 转换为图像。它使用 imagick 并且没有 gd 库。

    【讨论】:

    • 我已经建议你在你的答案中展示一些代码示例,看来我不是唯一一个。我会像这样开始投票否决你的答案。
    猜你喜欢
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    相关资源
    最近更新 更多