2013-02-10 129 views
0

我需要构建一个可以接收HTML文档并将其发送到打印机的Web服务。该服务必须接收HTML作为输入,然后将其发送到网络上的打印机。我已经阅读了很多关于PrintDocument的内容,但它似乎并不是将预格式化文档(本例中为HTML)或文件发送到打印机的可行解决方案。相反,它期望你的代码编排每个页面的内容和布局,使用个体命令来打印文本,图形等等。在我的情况下,HTML本身应该定义页面布局。我只需要以与桌面浏览器相同的方式盲目地打印HTML文档,而不需要任何用户输入,而是以编程方式作为服务。用于将HTML文档打印到网络打印机的.NET Web服务

上下文:我们有需要打印HTML页面的iOS设备(iPad,iPod等),但由于各种原因,我们无法使用AirPrint技术。首先,AirPrint要求iOS设备与打印机位于同一网段,事实并非如此。我们必须能够使用公司网络上的任何打印机。其次,我们使用的打印机不兼容AirPrint。

建议的解决方案:在.NET中构建一个Web服务(REST或SOAP),该服务将在已配置网络打印机并已安装驱动程序的Windows Server上运行。让iOS应用程序将HTML文档发送到Web服务。 Web服务将以某种方式将收到的HTML发送到在托管Web服务的Windows Server上本地配置的远程网络打印机...

有关如何打印内存中HTML文档,类似内容到浏览器的方式,但从Web服务,没有任何用户界面?

+0

**你到目前为止尝试过什么以及你面临的困难是什么**创建一个接受编码HTML字符串的WCF服务听起来像是一个简单的任务,不是吗? – abatishchev 2013-02-10 05:20:35

+0

同意。构建一个WCF服务来接收编码的HTML是非常简单的。我面临的挑战是将HTML作为文档发送给打印机。讽刺的是,PrintDocument对象不支持打印现有的内存文档。您可以向打印机发送一系列命令,在代码中指定页面布局。所以我想知道以编程方式打印预先形成的文档的最佳方式是什么。有些人使用了shell命令,但他们必须授予WCF服务的管理权限,并间接打开另一个应用程序,而不是像PrintDocument那样在进程内打印。 – txdev 2013-02-11 16:39:17

回答

0

听起来像PhantomJS可以满足您的需求。它将允许您将HTML文件转换为PDF(其他格式),然后您可以将其发送到打印机。

你可能会想看看你的情况的“rasterize”的例子。