近期一项目要求将html文件生成xps格式文档。
最先想到的是Windows自带了 Microsoft XPS Document Writer 打印机,如果能代码调用这个打印机,xps文件就生成了。
但目前遇到问题是,点击打印后会弹出选择打印机和xps文件保存路径的对话框,请教能否实现无人工干预生成xps文档?
网上搜到有关PrintDocument可以指定打印机,以及打印文件输出路径,但有关打印的事件需要自行处理,打印纯文本好办,对付html文档,不知如何处理了
另有一个方案是hook:来自园子前人的分享http://www.cnblogs.com/csliwei/archive/2010/12/10/print-xml-documents-well-formatted-by-a-webbrowser.html, 看不懂,求教
先设置xpswriter为默认打印机,自己尝试hook浏览器打印过程,弹出保存路径对话框,钩子填充路径,单个测试OK
后续测试批量效果。感谢关注的人
研究下xps 的API吧。摸索成功后,写一篇博客,这是一种贡献啊。
忘了说了,项目要求.net 2.0,记得看msdn有关xps是.net 3.5+
无论用哪种方案,分享出来都是贡献
LocalPrintServer localPrintServer = new LocalPrintServer(); PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue(); PrintDialog printDialog = new PrintDialog(); if (defaultPrintQueue != null) { printDialog.PrintQueue = defaultPrintQueue; printDialog.PrintDocument(document.DocumentPaginator, "xxx"); }
这样不会弹对话框
关注.