论文部分内容阅读
【摘要】将PPT转换到WORD文档的方法很多,但都存在不同程序的局限性,在使用绿色软件PPTConverttoDOC时发现与Office宏相似,同时它只能针对文本框起效,存在很多不足,我非常喜欢宏应用,决心对其升级换代,在升级调试过程中,由于PPT对象类型太多,颇费周折,最后发现try…catch…的妙用,峰回路转,升级又如此轻松,于是想与大家分享快乐。
【关键词】 PPT 转换 WORD 方法
【中图分类号】TP311.56 【文献标识码】A 【文章编号】1009-8585(2011)06-000-01
在日常工作中,常常需要把PPT转换到WORD文档,可以使用传统的复制粘贴、“另存为”等方法外,还可以使用绿色软件PPTConverttoDOC来实现,但效率和局限性都十分明显,笔者在分析各自方法优缺点基础上,重新开发了PPT转换到WORD的通用软件,使其具有全能转换功能,供大家分享。
1 复制粘贴法
1.1 复制粘贴法
在幻灯片视图中,把每一对象或文本进行复制,在WORD中粘贴,方法简单,实用且准确,但如果PPT内容较多时,速度慢,效率低的缺点也十分突出。
1.2 利用"大纲"视图复制
打开PPT演示文稿,单击"大纲",在左侧"幻灯片/大纲”任务窗格的“大纲”选项卡里单击一下鼠标,按"Ctrl+A"组合键全选内容,然后使用"Ctrl+C"组合键或右键单击在快捷菜单中选择"复制"命令,然后粘贴到Word里。这种方法会把原来幻灯片中的行标、各种符号原封不动的复制下来,在WORD中重新编排或修改,只复制占位符的文本,对其它对象无效,显然存在严重不足。
2 “另存为”法
2.1 利用"发送"功能巧转换
打开要转换的PPT幻灯片,单击"文件"→"发送"→"MicrosoftWord"菜单命令。然后选择"只使用大纲"单选按钮并单击"确定"按钮,等一会就发现整篇PPT文档在一个Word文档里被打开。在转换后会发现Word有很多空行,可使用替换功能全部删除空行,方法是按"Ctrl+H"打开"替换"对话框,在高级"查找内容"里输入"^p^p",在"替换为"里输入"^p",多单击几次"全部替换"按钮即可,就是将两个空行,合成一行("^p"就是段落标记)。
2.2 利用"另存为"直接转换
打开需要转换的幻灯片,点击"文件"→"另存为",然后在"保存类型"列表框里选择存为"rtf"格式,用Word打开刚刚保存的rtf文件,再进行适当的编辑即可实现转换。
3 使用专用软件PPTConverttoDOC转换
以上快捷方法都只针对占位符进行转换,存在很大的局限性,PPTConverttoDOC进行了较大改进,不管是占位符,还是用户添加的文本框都转换。方法是在运行PPTConverttoDOC之前将Word和PPT程序都关闭,选中要转换的PPT文件,直接拖曳到"PPTConverttoDOC"程序中,单击工具软件里的"开始"按钮即可转换,转换结束后程序自动退出;如果选中"转换时加分隔标志",则会在转换好的word文档中显示当前内容在原幻灯片的哪一页,转换完成后即可自动新建一个Word文档,显示该PPT文件中的所有文字。
4 全能转换的改进方法
PPT中除文本框外,还有很多对象包含文本,如基本形状(圆柱、笑脸……)星与旗帜、标注、动作按钮等等都包含文本,另外PPT中图片、图表、表格等等很多重要信息都是WORD的必不可少的内容,转换时都应该统统在内,不管是PPT自动转换方法,还是绿色软件PPTConverttoDOC都远远达不到要求,因此改进软件功能,使其具有全能转换功能是十分必要的。
4.1 基本方法
通过对象的Type属性,判断是Microsoft.Office.Core.MsoShapeType是什么属性,再复制文本或是粘贴其它对象。具体方法是
if (sh.Type == Microsoft.Office.Core.MsoShapeType.msoTextBox)//文本框
{sh.TextFrame.TextRange.Copy();
WordApp.Selection.Paste();}
else if (sh.Type == Microsoft.Office.Core.MsoShapeType.msoTable)//表格
{sh.Copy();
WordApp.Selection.Paste();}
…………//其中sh为遍历幻灯片的每一个对象,TextFrame.TextRange为文本框的文本。
这种方法由于Type类型太多,每一种都要进行判断,程序代码会很多,况且每一种类型情形还不一致,如自选图形又分为连接符、箭头总汇,有的有TextFrame属性,有的没有,程序会更加复杂。
4.2 巧妙方法
在程序调试中,我使用try…catch…捕捉错误时,发现当对象没有TextFrame.TextRange属性时,均用sh.Copy()直接拷贝来解决问题,所以最终程序演化为:
try
{ sh.TextFrame.TextRange.Copy(); }
catch
{ sh.Copy(); }
WordApp.Selection.Paste();
不再区分对象类型,而是判断是否有TextFrame.TextRange属性,并把try…catch…捕捉错误语句当成一个分支语句if…then…来使用,当有TextFrame.TextRange属性就复制文本,否则粘贴对象,这是一种创新,供大家分享,需要说明的是,尽管是一种判断,但不能用if…then…来实现,因为当对象没有TextFrame.TextRange属性时,会导致转换失败,至此,错综复杂的各种对象都转换为是否有TextFrame.TextRange属性了,使程序变得十分简单。
【关键词】 PPT 转换 WORD 方法
【中图分类号】TP311.56 【文献标识码】A 【文章编号】1009-8585(2011)06-000-01
在日常工作中,常常需要把PPT转换到WORD文档,可以使用传统的复制粘贴、“另存为”等方法外,还可以使用绿色软件PPTConverttoDOC来实现,但效率和局限性都十分明显,笔者在分析各自方法优缺点基础上,重新开发了PPT转换到WORD的通用软件,使其具有全能转换功能,供大家分享。
1 复制粘贴法
1.1 复制粘贴法
在幻灯片视图中,把每一对象或文本进行复制,在WORD中粘贴,方法简单,实用且准确,但如果PPT内容较多时,速度慢,效率低的缺点也十分突出。
1.2 利用"大纲"视图复制
打开PPT演示文稿,单击"大纲",在左侧"幻灯片/大纲”任务窗格的“大纲”选项卡里单击一下鼠标,按"Ctrl+A"组合键全选内容,然后使用"Ctrl+C"组合键或右键单击在快捷菜单中选择"复制"命令,然后粘贴到Word里。这种方法会把原来幻灯片中的行标、各种符号原封不动的复制下来,在WORD中重新编排或修改,只复制占位符的文本,对其它对象无效,显然存在严重不足。
2 “另存为”法
2.1 利用"发送"功能巧转换
打开要转换的PPT幻灯片,单击"文件"→"发送"→"MicrosoftWord"菜单命令。然后选择"只使用大纲"单选按钮并单击"确定"按钮,等一会就发现整篇PPT文档在一个Word文档里被打开。在转换后会发现Word有很多空行,可使用替换功能全部删除空行,方法是按"Ctrl+H"打开"替换"对话框,在高级"查找内容"里输入"^p^p",在"替换为"里输入"^p",多单击几次"全部替换"按钮即可,就是将两个空行,合成一行("^p"就是段落标记)。
2.2 利用"另存为"直接转换
打开需要转换的幻灯片,点击"文件"→"另存为",然后在"保存类型"列表框里选择存为"rtf"格式,用Word打开刚刚保存的rtf文件,再进行适当的编辑即可实现转换。
3 使用专用软件PPTConverttoDOC转换
以上快捷方法都只针对占位符进行转换,存在很大的局限性,PPTConverttoDOC进行了较大改进,不管是占位符,还是用户添加的文本框都转换。方法是在运行PPTConverttoDOC之前将Word和PPT程序都关闭,选中要转换的PPT文件,直接拖曳到"PPTConverttoDOC"程序中,单击工具软件里的"开始"按钮即可转换,转换结束后程序自动退出;如果选中"转换时加分隔标志",则会在转换好的word文档中显示当前内容在原幻灯片的哪一页,转换完成后即可自动新建一个Word文档,显示该PPT文件中的所有文字。
4 全能转换的改进方法
PPT中除文本框外,还有很多对象包含文本,如基本形状(圆柱、笑脸……)星与旗帜、标注、动作按钮等等都包含文本,另外PPT中图片、图表、表格等等很多重要信息都是WORD的必不可少的内容,转换时都应该统统在内,不管是PPT自动转换方法,还是绿色软件PPTConverttoDOC都远远达不到要求,因此改进软件功能,使其具有全能转换功能是十分必要的。
4.1 基本方法
通过对象的Type属性,判断是Microsoft.Office.Core.MsoShapeType是什么属性,再复制文本或是粘贴其它对象。具体方法是
if (sh.Type == Microsoft.Office.Core.MsoShapeType.msoTextBox)//文本框
{sh.TextFrame.TextRange.Copy();
WordApp.Selection.Paste();}
else if (sh.Type == Microsoft.Office.Core.MsoShapeType.msoTable)//表格
{sh.Copy();
WordApp.Selection.Paste();}
…………//其中sh为遍历幻灯片的每一个对象,TextFrame.TextRange为文本框的文本。
这种方法由于Type类型太多,每一种都要进行判断,程序代码会很多,况且每一种类型情形还不一致,如自选图形又分为连接符、箭头总汇,有的有TextFrame属性,有的没有,程序会更加复杂。
4.2 巧妙方法
在程序调试中,我使用try…catch…捕捉错误时,发现当对象没有TextFrame.TextRange属性时,均用sh.Copy()直接拷贝来解决问题,所以最终程序演化为:
try
{ sh.TextFrame.TextRange.Copy(); }
catch
{ sh.Copy(); }
WordApp.Selection.Paste();
不再区分对象类型,而是判断是否有TextFrame.TextRange属性,并把try…catch…捕捉错误语句当成一个分支语句if…then…来使用,当有TextFrame.TextRange属性就复制文本,否则粘贴对象,这是一种创新,供大家分享,需要说明的是,尽管是一种判断,但不能用if…then…来实现,因为当对象没有TextFrame.TextRange属性时,会导致转换失败,至此,错综复杂的各种对象都转换为是否有TextFrame.TextRange属性了,使程序变得十分简单。