首页 | 新闻资讯 | 软件应用 | 图形图像 | 网络应用 | 硬件学堂 | 程序开发 | 安全中心 | 素材下载 | 作者专区 | 学院论坛
精选专题 | 精美壁纸 | 专家答疑 | Flash剧场 | Photoshop | 名词解释 | 梦幻桌面 | PS高手进阶 | QQ区 | 图书 | 黑客教材
Flash教程| 卡通制作 | AutoCAD | 3DMax实例 | PS视频教程| 网页制作 | CorelDRAW| Firework | 滤镜与实例 | 全部视频教程
当前位置:eNet硅谷动力 > 学院频道 > 编程实例

C#进行Visio二次开发之图纸打印
2008-05-30 08:59 来源:博客网
【简 介】
C#进行Visio二次开发之图纸打印
    
加入收藏  设为首页

Visio的二次开发中,我们往往需要打印文档,这也是正常不过的需求,VisioDocument对象提供了下面几种打印模式:

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是将当前的文档进行分页打印,如果是你的控件中有多个页面的话,使用方法如下:

visPage.Document.PrintOut(VisPrintOutRange.visPrintAll, 11false""false, visPage.Name, 1falsefalse);

 

visPrintCurrentView是将你看到的窗体视图内容打印出来(一般很少用,因为可能截取到一半的区域而已),用法如下:

visPage.Document.PrintOut(VisPrintOutRange.visPrintCurrentView, 11false""false, visPage.Name, 1falsefalse);


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

 

visPage.Document.PrintOut(VisPrintOutRange.visPrintSelection, 11false""false, visPage.Name, 1falsefalse);

 

其他的用法大同小异,可以自己下去试试。

另外还有一种打印方式,是打印一个大页面中的一部分,这个就需要技巧了,首先你需要获取到页面的Picture对象,转换为Image对象(下面介绍如何转换),然后打印整个Image对象中的一部分,通过定位左上角位置,和输出矩形大小就可以了。

                Rectangle srcRect = new Rectangle(dblLeft, dblTop, this.visioImage.Width /2this.visioImage.Height/2);

                e.Graphics.DrawImage(
this.visioImage, destRetangle, srcRect, GraphicsUnit.Pixel);

 


Visio
Picture属性及转换


Visio
文档打印的时候,有时候需要预览下内容,那如何实现呢,其实也很简单,因为你打印的Page对象有一个Picture的属性,可以用来显示的(Window.Selection也有一个这么对象,当然就可以用来预览选择的内容了)。不过到这里别高兴太早,因为Picture对象是IPictureDisp类型的,你需要转换为PicutureBox对象所能识别的Image类型,不过这个东西不是那么容易转换的,呵呵。

费了九牛二虎之力,终于查到了转换的方法,下面介绍下吧,以免大家走弯路。

先建立一个AxHostConverter的转换类,继承自 AxHost如下:

    public class AxHostConverter : AxHost

    
{

        
private AxHostConverter() : base(""{ }

        
static public Image ictureDispToImage(stdole.IPictureDisp pictureDisp)

        
{

            
return GetPictureFromIPicture(pictureDisp);

        }


    }

 

                在赋值给PictureBoxImage对象的时候,如此这般就OK

            pictureBox1.Image = AxHostConverter.PictureDispToImage(this.visPage.Picture);

 

 

打印页边距设置问题

再说另外一个问题,不知道大家有没有注意到,页面设置对话框中,页边距中的值默认是10,你确定之后,值就变小了,再打开确定,值变得更小了,这是因为页边距值的转换出了问题,要正常工作,需要做一些转换的工作。下面贴出代码,一目了然。
 PageSetupDialog dlg = new PageSetupDialog();

            dlg.Document 
= PrintDocument;

            dlg.PageSettings.Margins 
= PrinterUnitConvert.Convert(dlg.PageSettings.Margins,

                  PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter);

 

            
if (dlg.ShowDialog() == DialogResult.OK)

            
{

            }


            
else

            
{

                dlg.PageSettings.Margins 
= PrinterUnitConvert.Convert(dlg.PageSettings.Margins,

                  PrinterUnit.HundredthsOfAMillimeter, PrinterUnit.ThousandthsOfAnInch);

            }

 

最后给一个图,显示下所完成的工作:



热门推荐 微 软桌面天文望远镜软 件正式下载 Vista笔 记本散热消热终极大法


【责任编辑 王凡】

关键字: C#  编程  开发 
您对这篇文章的看法是:    喜欢 反感 支持 反对 加油 鄙视 学习 打击 佩服 漂亮 路过 发表评论
1.您是否愿意通过eNet在线报名的方式,参加培训机构的培训?
是 
2.通过硅谷动力报名,您希望得到哪些优惠?
学费打折 赠送课时
3.报名后,您更愿意将培训费用:
通过eNet转交培训机构
直接交给培训机构
4.您在选择培训机构时,更注重:
培训机构名气  培训费用
5.您的年龄范围:
15~18岁  19~22岁
23岁以上
视频教程】 【专题汇总】 【不懂就问我关闭窗口

Illustrator打造超可爱卡通米老鼠
Photoshop给MM照片加上梦幻的背景
这样也可以 令人称奇羽毛上作画
杀毒软件云安全的七大技术核心
图片也能取词 有道词典2.0就是牛
焦点文章
相关文章
 本栏目最新文章
·用VB.net2008编写幻灯片程序
·用VB.net2008编写屏幕抓捕程序
·用VB.net2008编写精美电子日历
·C#实现一个功能简单的web浏览器
·实例讲解 ASP.NET 2.0中的URL映射
 精彩回放
·3DSMAX打造书本翻开效果
·共享上网技巧应用四则
·陪酒女浸泡在酒里的青春
·美女的性感靓丽婚纱设计
·妖冶身姿 死或生3壁纸
·剿灭Win XP下的29个烦恼
·黑客必备 NET命令大全
·用PS制作精致绝伦的红酒
 精彩推荐
 今日软件下载
·企业级即时通信平台 腾讯通RTX
·极品时刻表含春运临时列车数据
·下载管理器 BitComet 比特彗星
·边下边看想看就看风行网络电影
·超级图文影音转换器 Konvertor
 往日推荐
·手工破解网吧多种限制
·Windows 网络管理技巧
·WMP 10使用技巧三则
·女孩问你帅不帅 要小心
·注册表优化XP 20招
·制作XP万能ghost光盘
·WMP10火拼DVD播放器
·街头霸王图片集中营
·五大搜索引擎横向评测
·防御计算机病毒十大步骤

论坛精华
·Photoshop经典教程集 
·eNet学院史上最优秀 
·photoshop绘制漂亮的 
·photoshop完美扣图教 
·打包笔刷 附图的~~ 
·史上最强最多 photo 
热点推荐
修复灰暗照片
浪漫婚纱照片
Flash视频编程
章子怡月历桌面
热点关注
·SEO从入门到精通视频教程
·Photoshop数码照片处理案例
·3DSMAX室内渲染实例视频教程
·ASP.NET经典实例视频教程
·Dreamwaver CS3 视频教程
·JAVA-J2ME移动开发实战教学
·网站重构&web标准设计教程
·瑞星杀毒08套装免费用一年
·瑞星卡卡上网助手 正版免费
Photoshop打造清纯漂亮的美女插画
往日推荐
打造火焰文字
鹏哥C#教程
美女怀旧照片
3D室内渲染
焦点关注