【问题标题】:How can I render a web page on the server (no GUI) for printing?如何在服务器(无 GUI)上呈现网页以进行打印?
【发布时间】:2011-01-15 20:42:24
【问题描述】:

我正在尝试使用 PHP 脚本以实用的方式将页面打印到办公室打印机。

这是我目前所得到的:

我在服务器上安装了一台打印机,我可以通过命令行的打印命令使用 PHP 向它发送作业。我还可以使用我的 PHP 脚本编写纯文本文件,然后将它们添加到打印提示中。所以用 PHP 打印 PHP 生成的纯文本文件就可以了。

问题是,如何使用 PHP 创建实际包含布局和图形的可打印文件?换句话说,如果我创建了一个带有图像和 css 的网页,然后在 Firefox 中显示该页面,然后单击打印,这就是我想要从打印机中取出的内容。除非它需要在没有 GUI 且无需用户干预的系统上工作。

到目前为止,我有这些可能的想法:

  • 使用 PHP PDF 库生成 PDF 文件并将其添加到打印提示(定位正确非常复杂)

  • 使用 GD 库生成图像文件(将图像和文本合并为一个页面大小的图像),并将最终图像发送到打印机。

上述两种方法都很复杂,实施和维护起来也很繁琐。我想知道是否有更简单的解决方案?使用 html 和 CSS 布局页面将是最简单的选择。是否有可以从原始 html/css 标记生成呈现页面的 PDF 的库或脚本?

或者是一种仅在命令行模式下运行 firefox(或其他浏览器)但具有可以发送到 pdf 文件或打印机的完整呈现功能的方法?

很长的问题 - 我正在寻找一种将呈现的 html/css 页面发送到打印机的方法...

有什么想法吗?

【问题讨论】:

    标签: php pdf image-processing printing


    【解决方案1】:

    我会避免使用 PHP PDF 库,因为它在 DIV 和嵌套等方面有很多限制。您必须专门为 PDF 环境编写页面。

    查看此页面: http://code.google.com/p/wkhtmltopdf/

    这可以从服务器(或 PHP)运行,它实际上会使用 webkit 引擎(浏览器)像普通浏览器一样构建页面并返回它,这样你就可以用它做任何你想做的事情。您应该能够打印、保存、发送电子邮件等(它们将是 PDF 格式)

    【讨论】:

    • @sonny - 是的,前几天工作的一个朋友让我开始使用它,而我才刚刚开始梦想它的用途!
    • 谢谢 Shane,看起来棒极了!让我玩一会儿,我会告诉你它是否有效(并标记已解决)。
    • @nick - 我将在本周末使用它构建一个报告电子邮件系统,所以如果你需要帮助,请告诉我。
    • 这太容易了!标记为已解决。它确实使一些事情变得有趣,但没有什么值得抱怨的。一个问题 - 你如何调整网页大小以使其适合一个 pdf 页面而不缩小?换句话说,我应该制作什么像素尺寸的网站?
    • @nick - 老实说,我还没有深入使用它,但是这个页面 (ciaranmcnulty.com/blog/2009/04/…) 显示了一些命令行参数来实际指定您的“浏览器”窗口大小。可能您只需要弄清楚如何在代码中传递该设置,看看是否有帮助。请让我知道,因为我可能很快需要这个。 =) (现在没地方测试)
    猜你喜欢
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 2010-09-06
    • 2012-08-10
    • 2011-12-12
    相关资源
    最近更新 更多