PPT插件VSTO和NetOffice两种方式开发技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进行调整。
netoffice组件开发PPT Ribbon界面
配置customUI XML文件,如下:
customUI onLoad="OnLoadRibonUI"
xmlns="http://schemas.microsoft.com/office/2006/01/customui"
loadImage="GetImage">
PPT插件开发经验分享
讲解人:王帆
概要
1.PPT插件两种实现方式介绍与对比 2.netoffice组件初始化配置 3.netoffice组件开发PPT Ribbon界面 4.netoffice组件处理PPT元素方法 5.PPT插件相关问题以及解决方案
PPT插件两种实现方式介绍与对比
VSTO方式
NET Office方式
说明:事件onLoad=“OnLoadRibonUI”是页面加载事件,可以在此方法里面写数据 初始化内容,loadImage=“GetImage”,设置按钮图标显示的方法,在xml定义好之 后,新建Addin.cs,在里面添加如下 [COMAddin("TeacherAssitantAddin", "TeacherAssitantAddinTools",3)]
优点
1.有可视化的选项卡设计界面,界 1.插件支持office2003以上的所有版
面开发和事件编写更方便;
本,一套代码兼容;
2.Office的相关接口调用方法和使 2.插件无需依赖第三方安装组件;
用问题在网络上容易找到解决方案;3.插件只需要用Framework注册即可
3.插件不区分32位和64位office。 实现组件使用。
<button id="btnBook" onAction="btnBook_Click"
getVisible="getVisibleCallback" label="切换教材目录
"
size="large" image="ImgBook.png" />
……
netoffice组件开发PPT Ribbon界面
[CustomUI("Ribbon.xml", true), RegistryLocation(RegistrySaveLocation.CurrentUser)]
[CustomPane(typeof(WpfUserControlHost), "调用资源", false, PaneDockPosition.msoCTPDockPositionRight, PaneDockPositionRestrict.msoCTPDockPositionRestrictNoChange, 320, 50)]
getLabel="getLabelCallback" getEnabled="getEnabledCallback"
getScreentip="getScreentipCallback" image="UnLogin.png" size="large" />
<labelControl id="label11" label=" " />
PPT插件相关问题以及解决方案
问题1:如何控制选项卡文字的替换以及对应的显示隐藏? 解决方法:在xml里面定义getlabel事件以及getvisible事件,如果定义了这些事件, 那么xml就不能定义label属性和visible属性的值,只能通过后台动态设置。 问题2:PPT插件如何和教学助手进行联调调试? 解决方法:调试教学助手启动之后,新建PPT课件之后,在PPT工程里面附加PPT 进程进行调试。 问题3:PPT的程序集是dll,如果获取当前的UI进程执行相应的方法? 解决方法:在addin.cs里面定义一个全局的UI Dispatcher,提供给各个模块进行调用。 问题4:如何动态添加右侧属性面板? 解决方法:调用Addin 的TaskPanes对象添加之后,设置相应属性。 问题5:如何承载html5页面? 待解决:目前PPT自身对于html5元素支持不好,另外如果插件需要支持html5,那么 就需要64位的cef控件,否则无法承载64位office
<ribbon>
<tabs>
<tab id="TeacherAssitantAddin.Addin" label="教学助手">
<group id="grpUserLogin" label="个人中心">
<labelControl id="label10" label=" " />
<button id="btnLogin" onAction="btnLogin_Click"
缺点
1.需要针对不同的office版本开发不 1.无可视化设计界面,通过配置Xml
同的插件;
的方式配置选项卡界面;
2.安装插件的需要安装VSTO
2.相关调用接口虽然和Offic来自百度文库类似,
runtime组件,有大约20M左右; 但是关于相关说明在网上不是很多,
3.安装过程无法进行静默处理,是 大多是英文的;
可视化的界面。
netoffice组件初始化配置
1.新建类库工程引用NetOffice.dll,OfficeApi.dll,PowerPointApi.dll 三个组件;
2.设置工程属性程序集信息使程序集COM可见,生成操作里面设置输出为 COM互操作注册;
3.设置调试属性启动操作里面,启动外部程序,选中本地的POWERPNT.EXE; 4.在生成操作里面可以设置不同目标平台,根据本机的office是32位还是64位
谢谢!
[Guid("84A48593-85A6-4D82-ABC8-89E838B50DC1"), ProgId("TeacherAssitantAddin.Addin")]
public class Addin : COMAddin
netoffice组件处理PPT元素方法
Netoffice的相关接口和方法如下: 1.添加文件: slide.Shapes.AddOLEObject(0, 0, -1, -1, null, localFile, NetOffice.OfficeApi.Enums.MsoTriState.msoTrue); 2.添加媒体文件:slide.Shapes.AddMediaObject(localFile); 3.添加office文件:slide.Shapes.AddOLEObject( 0, 0, 100, 100,null, localFile); 4.添加图片:slide.Shapes.AddPicture(localFile, NetOffice.OfficeApi.Enums.MsoTriState.msoFalse, NetOffice.OfficeApi.Enums.MsoTriState.msoTrue, 0, 0); 5.还可以添加其他类型元素,例如PPT自身的文本框文件以及图形文件等,以及 图表文件也都可以插入; 6.通过netoffice组件我们还能直接控制当前PPT页面的元素的布局等等,从而实现 PPT美化功能;
相关文档
最新文档