presentations.open 操作ppt时报错

环境:

Django (1.5.5)
pywin32 (218)
xlwt (1.2.0)
Python 3.3.2

Windows Server 2008 R2 Enterprise

执行代码:

def ppt2jpg(path,dPath):
    pythoncom.CoInitialize()
    App = win32com.client.DispatchEx("PowerPoint.Application")
    App.Visible = True
    App.DisplayAlerts= False
    Presentation = App.Presentations.Open(path)
    Presentation.SaveAs(dPath,ppSaveAsJPG)
    Presentation.Close()
    App.Quit()
path:为ppt路径,

dPath:为图片保存路径

服务器启动后,运行报错信息:

[Tue Aug 22 14:59:49 2017] [error] Traceback (most recent call last):\r
[Tue Aug 22 14:59:49 2017] [error]   File "D:\\Python33\\lib\\site-packages\\django\\core\\handlers\\base.py", line 115, in get_response\r
[Tue Aug 22 14:59:49 2017] [error]     response = callback(request, *callback_args, **callback_kwargs)\r
[Tue Aug 22 14:59:49 2017] [error]   File "D:/server2/lts\\..\\carousel\\views.py", line 90, in pptupdate\r
[Tue Aug 22 14:59:49 2017] [error]     ppt2jpg(path,dPath)\r
[Tue Aug 22 14:59:49 2017] [error]   File "D:/server2/lts\\..\\carousel\\views.py", line 23, in ppt2jpg\r
[Tue Aug 22 14:59:49 2017] [error]     Presentation = App.Presentations.Open(path)\r
[Tue Aug 22 14:59:49 2017] [error]   File "D:\\Python33\\lib\\site-packages\\win32com\\gen_py\\MSPPT.py", line 7694, in Open\r
[Tue Aug 22 14:59:49 2017] [error]     , ReadOnly, Untitled, WithWindow)\r
[Tue Aug 22 14:59:49 2017] [error] pywintypes.com_error: (-2147352567, '\xe5\x8f\x91\xe7\x94\x9f\xe6\x84\x8f\xe5\xa4\x96\xe3\x80\x82', (0, None, None, None, 0, -2147024882), None)
[Tue Aug 22 14:59:49 2017] [error] \r

在A服务器部署是ok的,不会报错,ppt上传,打开和另存为都可以实现。在B服务器*(正式发布的服务器)部署时就在ppt打开的时候报错了,配置内容和成功的服务器是一致的,那串乱码意思是,"发送意外"。B服务器是阿里云上的。
补充:在B服务器,如果是用cmd运行py文件来打开同一个ppt文件是可以顺利打开并且另存为的。


开始猜测是路径问题,然后弄了好久发现,路径是没问题的,问题就出在Open上面于是我开始猜测是多半是权限问题,就开始找相关内容。

最后终于在一个博客文章上找到了突破点~~

参考博客地址:http://blog.csdn.net/qq873113580/article/details/51656528


感谢大佬的文章,让我解决了卡了好几天的问题。

操作步骤如下:

1、在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"

2、依次点击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
3、在"DCOM配置"中找到"Microsoft PowerPoint 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft PowerPoint 应用程序属性"对话框
4、点击"标识"标签,选择"交互式用户"
5、然后点击确定。
为了保险起见,我把Microsoft PowerPoint 幻灯片的属性也进行了同样的设置。
设置完成后,重启了服务器后,发现问题解决了。

哇哈哈哈哈哈~~~~~~~~~


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值