VB.NET2008 使用WORD 艺术字详解

最近被要求在一个项目中写一个简单的编辑器,并且要融入WORD的艺术字功能,咋看通过COM方式应该比较容易搞定,于是打开BAIDU,GOOGLE搜寻了一遍,只能感叹如此多的条条目目都是一样的COPY版而已。发现网上版本最多的就是两种版本:

1.WORD 97和VB6.0的组合

2.使用API GDI功能模拟艺术字的效果

 

我是一个懒人,本着从简原则,第二种方案直接放弃,因此选用第一种方案,在优快云的下载找到的6.0代码如下

 

 

 

通过代码,原理还是比较简单的,通过COM方式构建一个WORD,插入艺术字后通过系统的剪粘板复制出来,然后SHOW出来。

不过当移植到VB.NET时,这段代码就不能执行成功了,起初以为是OFFICE版本问题,不过在不同版本OFFICE之间,VB6.0的EXE都可以顺利执行。可见问题的症结点不在这里,通过DEBUG猛然发现 Clipboard对象在执行COPY之后还是空的,无奈手动执行了一遍复制黏贴操作,没有问题,无奈又揣着这个问题去百度,GOOGLE了一把,终于终于在一篇“substitute way to extract Shapes as images from MS Word documents“文中找到了答案,原来是在WORD中的SHAPE是有类型的,而我们插入的艺术字没有定义这样一个类型,通过CLIPBOARD后,由于类型不明确,所以对象是空的,解决的办法就是将WORD 中的SHAPE进行类型转换,代码参考了该文的VSTO代码,实例代码如下


至此,VB.NET艺术字顺利搞定。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值