C#进行Visio二次开发之图纸打印
Visio的二次开发中,我们往往需要打印文档,这也是正常不过的需求,Visio的Document对象提供了下面几种打印模式:
Constant Value Description visPrintAll 0 Prints all foreground pages. visPrintCurrentPage 2 Prints the active page. visPrintCurrentView 4 Prints the current view area. visPrintFromTo 1 Prints pages between the FromPage value and the ToPage value. visPrintSelection 3 Prints a selection
上面几种是什么意思呢?下面详细解说下,visPrintAll是将当前的文档进行分页打印,如果是你的控件中有多个页面的话,使用方法如下:



visPrintSelection就是打印选取的内容,这个有用,当你选中一部分东西,想将其打印出来的时候。不过注意的是,你要确保你选中了内容,否则会打印出来是整个控件页面的内容,其用法如下:





Visio的Picture属性及转换
Visio文档打印的时候,有时候需要预览下内容,那如何实现呢,其实也很简单,因为你打印的Page对象有一个Picture的属性,可以用来显示的(Window.Selection也有一个这么对象,当然就可以用来预览选择的内容了)。不过到这里别高兴太早,因为Picture对象是IPictureDisp类型的,你需要转换为PicutureBox对象所能识别的Image类型,不过这个东西不是那么容易转换的,呵呵。费了九牛二虎之力,终于查到了转换的方法,下面介绍下吧,以免大家走弯路。先建立一个AxHostConverter的转换类,继承自 AxHost,如下:























PageSetupDialog dlg = new PageSetupDialog();




























