通过服务器从一个客户端打印到另一个客户端

时间:2011-05-23 11:40:37

标签: printing client

我不知道这听起来有多疯狂,但这就是场景 -
我需要通过互联网打印文件。我的PC ClientX使用Web浏览器启动该过程以访问Internet上的ServerY,并且打印机连接到ClientZ(可能是您的)。 1.文档存储在ServerY上 2. ClientZ纯粹是一个cliet;没有IIS,没有打印服务器等 3.我有ClientZ,IP,端口等的具体细节 4.它将完全是一个服务器端应用程序(并且在ClientZ上没有客户端)与ASP.NET& C#
- 所以,有可能吗?如果是,请提供一些线索。谢谢先进。

1 个答案:

答案 0 :(得分:0)

对于SO而言,这是一个很大的问题,但基本上你需要做的是

  • 将文件上传到服务器 - 琐碎
  • 做一些事情来弄清楚他们是否被允许打印文件 - 根据范围琐碎到很难
  • 将项目添加到队列进行打印,并将其与用户/会话相关联 - 简单
  • 渲染并打印文档 - 根据范围无关紧要
  • 通知用户文档已打印
  • 处理错误

这里最大的未知数是范围,如果这是针对学校项目,您可能不必担心第二步中的计费或队列优先级。如果它用于商业产品计费可以成为其自身的重要子系统。

步骤4中的难度直接取决于您要支持的格式,因为许多格式需要特定于文档的库或应用程序。如果这是一个商业产品,也有安全考虑因素,因为尝试呈现所有类型的文件是不安全的。

根据您的想法,通知可以很容易或很难。您可以回发到html页面,但是根据完成工作需要多长时间,也可以选择电子邮件选项。

您还需要考虑错误。纸张或碳粉用完或有人试图在A4纸上打印时会发生什么?必须通知某人,以便不仅可以建立工作岗位。

在服务器上,我只运行Web上的用户交互部分,并将“打印守护程序”作为服务运行,以管理打印文档并监视其状态。我会使用WCF在两者之间进行IPC。

在打印守护程序中,您将需要一组组件来打印不同类型的文档。我会为每个类型(或类型集群)创建一个程序集,并使用MEF将它们作为插件加载到您的服务中。

抱歉,这是如此笼统,但你提出了一个非常普遍且难以回答的问题。