关于C#操作PPT时遇到的“对COM组件的调用返回了错误HRESULT E_FAIL”错误的解决方法
2011-06-21 10:41
597 查看
最近在做一套和图书有关的项目,其中有一个功能为用户上传的各类文档(doc、docx、ppt、pptx、pdf等类型)统一转换为PDF类型。word格式的转为PDF就不用说了,推荐一个第三方DLL:Aspose.Words.dll.
Aspose这套DLL专门用来对付Office的,想必不少人都用过,很方便,例如word转pdf:
搞定。
以上是题外话。
很可惜Aspose我没找到操作ppt的dll。。。。。
以下用Office Tool自带的类去写:
ps:这里需要在服务端安装MS的SaveAsPDFandXPS.exe插件。
运行到SaveAs时出现经典问题:对 COM 组件的调用返回了错误HRESULT E_FAIL。
百度了一下这个错误,深有感慨:天下文章一般抄啊。。。。。
按照网上流行的处理方法试了一下,包括开启DTC以及修改DTC属性之类的方法,依然不起作用,搞了一下午,头都大了。。。
第二天早上,突然心血来潮,打开PPT,选项--另存为--PDF,发现PowerPoint报了个错误:
“无法找到打印机 Microsoft XPS Document Writer”。
再打开Word,另存为PDF,没有此类错误。。。于是很奇怪。。。。。
奇怪归奇怪,马上打开Print Spooler服务。。。
NND,存上了。。俺这个鸡冻啊。。。。。。
总结:MS真操蛋。。。
Aspose这套DLL专门用来对付Office的,想必不少人都用过,很方便,例如word转pdf:
using Aspose.Words; Document doc = new Document(word文档的服务端路径,含文件名); doc.Save(要保存的pdf路径,含文件名, SaveFormat.Pdf);
搞定。
以上是题外话。
很可惜Aspose我没找到操作ppt的dll。。。。。
以下用Office Tool自带的类去写:
using Microsoft.Office.Interop.PowerPoint; using Microsoft.Office.Core; Presentation p = new ApplicationClass().Presentations.Open(strPPTFilePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); p.SaveAs(strPDFSavePath, PpSaveAsFileType.ppSaveAsPDF, MsoTriState.msoTrue);
ps:这里需要在服务端安装MS的SaveAsPDFandXPS.exe插件。
运行到SaveAs时出现经典问题:对 COM 组件的调用返回了错误HRESULT E_FAIL。
百度了一下这个错误,深有感慨:天下文章一般抄啊。。。。。
按照网上流行的处理方法试了一下,包括开启DTC以及修改DTC属性之类的方法,依然不起作用,搞了一下午,头都大了。。。
第二天早上,突然心血来潮,打开PPT,选项--另存为--PDF,发现PowerPoint报了个错误:
“无法找到打印机 Microsoft XPS Document Writer”。
再打开Word,另存为PDF,没有此类错误。。。于是很奇怪。。。。。
奇怪归奇怪,马上打开Print Spooler服务。。。
NND,存上了。。俺这个鸡冻啊。。。。。。
总结:MS真操蛋。。。
相关文章推荐
- 关于C#操作PPT时遇到的“对COM组件的调用返回了错误HRESULT E_FAIL”错误的解决方法
- 关于C#操作PPT时遇到的“对COM组件的调用返回了错误HRESULT E_FAIL”错误的解决方法
- C#将PPT转化为XPS时遇到的“对COM组件的调用返回了错误HRESULT E_FAIL”错误的解决方法
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结
- C#操作IE浏览器 解决:COM 组件的调用返回了错误 HRESULT E_FAIL
- "对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法
- 解决:对COM组件的调用返回了错误HRESULT E_FAIL
- C#在调用office的PowerPoint时出现 对 COM 组件的调用返回了错误 HRESULT E_FAIL。解决办法。
- "对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法
- 解决:对COM组件的调用返回了错误HRESULT E_FAIL
- "对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法
- "对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法
- 使用Geoprocessor导出ArcSde中的数据,对COM 组件的调用返回了错误 HRESULT E_FAIL 的解决方法
- "对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法
- Arcengin调用GP工具“对COM组件的调用返回了错误 HRESULTE_FAIL”解决方法
- 5.23飞快的内脑子解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
- AE调用GP工具“对COM组件的调用返回了错误 HRESULTE_FAIL”解决
- silverlight 遇到对 COM 组件的调用返回了错误 HRESULT E_FAIL
- 解决:对COM 组件的调用返回了错误 HRESULT E_FAIL
- SharePoint 2010 爬网错误 对 COM 组件的调用返回了错误 HRESULT E_FAIL。 (Error from SharePoint site: 无法完成此操作)