【问题标题】:Client side report printing from PHP web apps从 PHP Web 应用程序打印客户端报告
【发布时间】:2010-10-02 01:41:19
【问题描述】:

我正在寻找一种解决方案,用于从基于 PHP Web 的应用程序中打印报告和预先格式化的表单。请注意,这些不是 HTML 页面的打印。相当好的对齐固定格式的收据、订单、分类帐等。

我有的东西。

使用 PDF:是否有一种简单的单击方式从客户端打印报告?在窗口中打开 PDF,然后选择 File -> Print 的明显选择似乎太麻烦了。

使用 Flash:我看到一些网站通过 Flash 提供单击打印。不知道什么在后台工作。任何有关这方面的见解都会有所帮助。

Active-X/Silverlight(?):我不想将我的用户限制在 IE 上。但是这个一键打印的要求太死板了,如果能完成任务,我宁愿切换到只有 MS 的平台。

请注意,单击即可弹出打印对话框,用户再次单击即可进行打印。但是比这更复杂的是一个缺点。

【问题讨论】:

    标签: php flash pdf printing reporting


    【解决方案1】:

    如果格式太死板,您需要像 PDF 这样的格式。 HTML/CSS 是如此多变,你永远不会在所有浏览器上都得到相同的结果。 Plug Web 页面没有真正的页面概念(尽管有一些支持,例如 CSS 打印媒体样式)。

    也不是所有人都拥有一台打印机。试图强制打印某些东西确实是错误的做法,而且通常会让一些客户望而却步。

    最小的解决方案是使用 emdia 打印 CSS 创建一个收据页面,以使其在大多数情况下看起来是负责任的。

    如果这还不够,您需要转到 PDF。不幸的是,这变得像this question regarding HTML+CSS to PDF conversion illustrates 一样困难。 PrinceXML 在这次转换中做得非常出色,但它并不便宜。 Html2PDF 是开源团队中最好的,但存在问题(有关详细信息,请参阅该答案)。我在 Java 领域也遇到过同样的问题,发票最终使用Jasper Reports。不过,我还没有真正看到 PHP 的等效报告解决方案。 Python 有 reportlab,它似乎也很可能适合做这种工作。

    也许您最好的选择是直接生成 PDF。这有点乏味,但它避免了 HTML 到 PDF 转换的许多陷阱。 This tutorial (Part 2) 解释了方法。

    【讨论】:

    【解决方案2】:
    <a href = "#" onclick = "window.print(); return false;">Print!</a>
    

    【讨论】:

      【解决方案3】:

      对于 Nelson LaQuet,您可以将 window.print() 放在 body 标记的 onload 属性中,以便在页面加载时弹出打印对话框,

      (或者使用 jquery 的 document.ready() 来实现同样的效果,或者其他 JS 框架提供的任何东西)

      【讨论】:

        猜你喜欢
        • 2010-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多