我目前正在创建一个 WCF 服务来打印已保存在特定位置的 HTML 文件。然后需要将此 HTML 文件打印到我们网络上的特定打印机,我目前面临的问题是关于打印 HTML。
因为这是一个 WCF 服务,一些可以在 WinForm 应用程序中使用的基本方法不能使用(例如 WebBrowser)。这会导致问题,因为我不完全确定我还有哪些其他方法和选项。该服务也是异步的,这意味着可以随时通过应用程序发送多个文件进行打印,这意味着该解决方案还需要能够处理多线程。
我目前在此 WCF 应用程序中使用 PDF 打印方法,但遇到了问题,因此被要求将 WCF 转换为在 HTML 中传递的打印。这些问题与 Adobe 的使用有关,在我们决定转移到 FoxItReader 之前,我被要求验证 HTML 作为一个选项。
感谢您的宝贵时间。
最佳答案
您仍然可以通过 WCF 服务使用 WebBrowser
,尽管您需要为其组织一个专用的 STA 线程。 Here is a basic sample控制台应用程序就是这样做的,控制台应用程序的体系结构在某种程度上类似于 WCF 服务的体系结构。您需要向其中添加一些消费者/生产者队列逻辑。
指定自定义打印机也是可能的,尽管不是那么简单:
Add support to print & preview HTML in a dialog-based MFC app .
除了基于 WebBrowser
的解决方案,还有一些其他选项,仍然基于 HTML:
Paginating HTML document for printing with WebKit-based browsers .
关于c# - 从 WCF 服务打印 HTML 到网络上的特定打印机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20222848/