各位好!
现在我要做的是 将web页面打印.每次不同的页面可能要设置不同的纸张大小.目前页面设置是依靠对话框来设置.我是想通过程序自动更改打印机的默认纸张大小.1.我使用的是webbrowser的方式获取网页.我采用了addform的方式增加了自定义纸张.试图使用setform的方式设置打印机的默认设置. 但是不起作用.打印机的默认
纸张.2.使用修改printer的 papersize,组合 printer.print 等命令,可以做到将文本按指定尺寸打印.但是我不知道怎样使用printer方式打印web页面.
现在我要做的是 将web页面打印.每次不同的页面可能要设置不同的纸张大小.目前页面设置是依靠对话框来设置.我是想通过程序自动更改打印机的默认纸张大小.1.我使用的是webbrowser的方式获取网页.我采用了addform的方式增加了自定义纸张.试图使用setform的方式设置打印机的默认设置. 但是不起作用.打印机的默认
纸张.2.使用修改printer的 papersize,组合 printer.print 等命令,可以做到将文本按指定尺寸打印.但是我不知道怎样使用printer方式打印web页面.
简单的情况就是有固定良好的环境抓图。
然后就把网页以图的方式输出给打印机对象来打印。
复杂的话也是抓图,要搞得好也不容易。
至于Printer对象的使用MSDN有很详细的说明,我认为最麻烦的还是抓图。
打印网页其实主要分两个部分:
1、抓图
2、打印
你到底问题卡在哪?
如果问题出在抓图:技术可以有甚多种,根据环境的不同和要求不同有不同的处理方法,
对有些需求而言可能还涉及到很深很底层的技术及应用。
对于打印而言,Printer对象是很好用的。如果要求更多,也可以看看API或相关的打印命令。
如果你不把问题说具体点,别人很难答的。
我原来没有考虑抓图.听了您的建议后,我又查了一下关于图片转pdf的资料,道理比较深奥,对于我来说,感觉更难控制。我昨天又查找了很多资料,目前,基本上解决了更改打印机默认纸张的问题。方式是通过api: setprinter来修改打印机的devmode结构,从而可以通过程序灵活的设置打印纸张的大小,布局(纵向,横向)。
在documentcomplete 事件中,开始打印:WebBrowser1.ExecWB 6, 2
这样,就会将该页面送到打印机中进行打印。我当时遇到的问题是,不想手工去页面设置中更改纸张规格,想通过程序去修改纸张规格,但确苦于找不到通过程序设置纸张规格的办法。
可以通过修改打印机的默认设置。(通过代码更改printer_info信息) 但是,在webbrowser实例环境中,即使更改了打印机的默认设置,
当前环境中的打印设置也不会改变。只能从新初始化一趟webbrowser。
情况确实是这样的。
微软有这样一篇技术支持文档:“如果更改打印机 InternetExplorer 不使用默认系统打印机”http://support.microsoft.com/kb/330628/zh-cn