首页 新闻 会员 周边

请教html转xps方案

0
悬赏园豆:200 [已关闭问题] 关闭于 2014-09-20 17:09

近期一项目要求将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

后续测试批量效果。感谢关注的人

码尔代夫iimax的主页 码尔代夫iimax | 老鸟四级 | 园豆:3138
提问于:2014-09-10 12:44
< >
分享
所有回答(4)
0

研究下xps 的API吧。摸索成功后,写一篇博客,这是一种贡献啊。

Firen | 园豆:5385 (大侠五级) | 2014-09-10 13:20

忘了说了,项目要求.net 2.0,记得看msdn有关xps是.net 3.5+

无论用哪种方案,分享出来都是贡献

支持(0) 反对(0) 码尔代夫iimax | 园豆:3138 (老鸟四级) | 2014-09-10 13:30
0
 LocalPrintServer localPrintServer = new LocalPrintServer();
 PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue();
 PrintDialog printDialog = new PrintDialog();
 if (defaultPrintQueue != null)
 {
     printDialog.PrintQueue = defaultPrintQueue;
     printDialog.PrintDocument(document.DocumentPaginator, "xxx");
 }

这样不会弹对话框

我只是搬运工 | 园豆:308 (菜鸟二级) | 2014-09-10 14:23
0

关注.

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-10 14:23
0

使用UI Automation解决。

推荐另一种解决方案:PhantomJs 感谢Icebird

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2014-09-20 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册