如何创建基于Web的打印服务器?

问题描述:

我有一个基于网络的订单调度系统。目前,系统的用户手动打印出货单(即他们在他们的网页浏览器中选择“打印”)。如何创建基于Web的打印服务器?

我想更新系统,以便所有打印都由一台专用机器处理。我期待它轮询服务器,看看是否有人需要打印,然后做一些打印。我不太确定需要做些什么。

例如。我可以有一个页面来检查新的打印作业并刷新本身并使用javascript print()函数,但显然仍然需要某人按下ok。有没有办法改变这种行为。它只需要在单个PC上工作,我可以使用任何选项和插件进行设置。

你们任何一个明亮的火花都能想到一个解决方案,它可以让我更接近我想做的事情。例如。有没有一种奇特的PDF工具可以吸收网络上的数据,填写文档并打印出来?

如果我需要做的只是从Linux服务器打印,我会编写一个非常简单的Web服务,通​​过POST请求(从主Web应用程序,而不是来自用户的桌面)接受PDF,将其保存为临时文件,并将其导入lpr,它可以直接接受pdf。标准的Linux打印系统可以轻松配置为打印到Windows或Linux打印服务器或联网打印机,而不是直接连接的打印机。

要真正生成.pdf,如果您使用的是可填写的pdf表格,您可以填写iText的字段并保存结果,即使您不允许在Acrobat Reader中也可以保存结果。或者你可以使用iText从头开始生成整个.pdf。我喜欢使用reportlab来生成Python中的pdf。

如果由于某种原因您喜欢XSLT,那么您可以使用XSL-FO,但我认为这很痛苦。 http://html2fo.sourceforge.net/将html转换为XSL-FO,可将其转换为pdf并打印。

究竟是什么打印?你已经有pdf,或者你需要将网页转换为pdf?如果您需要精美地将网页呈现为pdf,那么http://www.princexml.com/是一个商业解决方案。

如果你的网络服务器是Linux和打印服务器窗口:

Web服务器只会做1两件事,生成报告,并保存到共享文件夹:

  • 用户点击“生成报告和打印“。
  • pdf在Web服务器上生成并存储到共享文件夹,如“printFolder”。

您的打印服务器将用一些简单的脚本语言编写,例如windows脚本主机或PowerShell。 (perl甚至是命令行php!)

打印服务器查看共享的“printFolder”。带有5秒睡眠的无限循环()

  • 如果有任何文件运行adobe acrobat无声打印命令行。

    AcroRd32.exe /吨 “C:\检验.pdf” “\服务器\打印机名称”, “AdobePS的泰克移相器840”, “123.45.678.910”

  • 删除PDF文件

如果您Web服务器是Windows,一个简单的设置将工作:

  • 用户点击“生成报告和普林”
  • Web服务器生成的PDF文件,这样可以节省送位置方便。
  • Web服务器通过CGI调用调用adobe reader命令行打印实用程序。

    • 打印机需要作为Web服务器上的网络打印机使用。

    AcroRd32.exe /吨 “C:\检验.pdf” “\服务器名\打印机名称”, “AdobePS的泰克移相器840” “123.45.678.910”

  • web服务器删除生成的文件。

信息在命令行打印:http://support.adobe.com/devsup/devsup.nsf/docs/52080.htm

如果你建立一个专用的API(如Web服务),那么你可以建立一个Windows服务来获得寄发笔记中的数据,创建PDF的和它们发送给打印机。

补充:

Windows服务将调用WebService的和本地/专用印刷机上创建PDF文件。理想情况下,PDF是使用报告工具创建的,例如ActiveReports或其他生成PDF的报告工具(这将使得构建报告更快,更可编辑)您可以使用GhostScript(开源PDF解释器)将PDF直接发送到命名打印机。

+0

...中获取详细信息(和来源)...假设您正在寻找有关构建内容的建议... – 2009-08-13 18:59:59

+0

我是............... – 2009-08-13 19:05:44

除了关于Google云打印,Apple Air Print和HP ePrint的大量讨论之外,目前似乎还没有解决方案来实现浏览器内跨平台无人值守打印。

我们选择使用JasperREports作为Web服务来生成PDF,然后使用自定义生成客户端的Linux和Windows来轮询服务器是否有任何PDF要打印。您可以在http://mdornseif.github.com/2011/01/08/PDF-on-appengine.html