客户端报告从PHP Web应用程序打印

时间:2009-01-18 07:01:20

标签: php flash pdf printing reporting

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

我有的东西。

使用PDF:是否有简单的单击方式从客户端打印报告?在窗口中打开PDF的明显选择,然后选择文件 - >打印看起来太麻烦了。

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

Active-X / Silverlight(?):我不想仅限IE上的用户。但是这种一键打印要求是如此严格,以至于如果它完成任务我宁愿切换到仅MS平台。

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

3 个答案:

答案 0 :(得分:3)

如果格式太严格,则需要PDF格式。 HTML / CSS是如此可变,你永远不会在所有浏览器上得到它。插件网页没有真正的页面概念(虽然有一些支持CSS打印媒体样式的东西)。

也并非所有人都有打印机。试图强制要打印的东西确实是错误的做法,通常会让你的一些客户失望。

最小的解决方案是使用emdia print CSS创建一个收据页面,使其在大多数时间内显得有响应。

如果这还不够,你需要去PDF。不幸的是,这变得很难this question regarding HTML+CSS to PDF conversion illustratesPrinceXML在这次转换中表现出色,但并不便宜。 Html2PDF是开源软件中最好的,但是有问题(请参阅答案以获取更多详细信息)。我在Java空间中遇到了同样的问题,并且最终使用Jasper Reports的发票。我还没有真正看到过PHP的等效报告解决方案。 Python有reportlab,这似乎也是做这种工作的候选人。

也许您最好的选择是直接生成PDF。这有点单调乏味,但它避免了HTML到PDF转换的许多陷阱。 This tutorialPart 2)解释了如何。

答案 1 :(得分:1)

<a href = "#" onclick = "window.print(); return false;">Print!</a>

答案 2 :(得分:0)

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

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