首页新闻找找看学习计划

asp.net利用Office组件生成pdf时DCOM权限的问题!!!

0
悬赏园豆:50 [已关闭问题] 关闭于 2012-12-30 08:54

小弟由于项目需要,需要利用将Office的文档生成pdf,现如今把程序搭建到客户的服务器上时发现一个诡异的问题,总是提示文档生成失败,找了各方面的资料,最终把问题定位到Office组件的DCOM问题上。

程序设计:

引用Microsoft.Office.Interop.Word,Microsoft.Office.Interop.Excel,Microsoft.Office.Interop.PowerPoint三个组件实现生成pdf的功能。

问题重现:

1、在本地测试生成pdf的功能正常,但是在上传Office文档生成的时候,有时会出现一个进度条,推理应该是生成文档时的Office组件的后台处理动作。

2、在把程序发布到客户服务器上时,问题出现,功能完全瘫痪,并抛出类似如下异常,根据调用组件不同,异常略有不同。

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

网上查了N多资料,设置了N种的Dcom权限,该添加的用户都添加了,启动权限一会是交互式用户,一会是启动用户,还有指定用户均没有完美解决,

其中设置为交互式用户时,虽可以生成pdf,但需要保持对服务器的远程桌面开启,照我的理解是需要有用户登录到服务器方可,这不是我想要的最终解决方案。

期间参考的资料:

http://www.cnblogs.com/petitprince/archive/2010/08/20/1804360.html

http://www.cnblogs.com/yangpu/archive/2010/01/24/1655077.html

其中自己的理解:

Office作为一个带有UI的自动化软件,其中肯定有许多需要用户交互的操作,比如说在打开一个加密的文档的时候需要输入口令,还有文档打开异常时提示继续还是终止这些,所以单纯的利用Office组件和几行代码来转化pdf出发点应该就是不靠谱的。

但客户毕竟上帝,需求毕竟是问题,是问题就得想破脑子解决,故希望各位大牛能给小弟指明一个方向,无论是在上面提到的基础上修改完善,还是另辟蹊径。我的问题只有一个把Office文档生成破地方,仅此而已!

另外说明一下,我最近也尝试了利用Open Office来生成pdf,但是效果不理想,在页面显示上会有差异,比方说提前换行了,换页符不顶用,空白页没有了,还有还会出现字体重叠的现象,我已基本放弃了此种方案。

问题补充:

求大家回答的时候能不能详细点啊,蜻蜓点水的回复我是不会采纳的呀。

it老猫的主页 it老猫 | 初学一级 | 园豆:158
提问于:2012-12-25 10:23
< >
分享
所有回答(3)
0

用NPOI解析文档,用itext生成PDF,这个能通吃,不过实现起来有些烦。

Alvin | 园豆:828 (小虾三级) | 2012-12-25 10:27
0

NPOI 解析excel的利器啊 2003,2007都是支持的

PDFitext   或者还有客户端的生成pDF

看看这个:

http://jspdf.com/

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-25 10:29
0

用FlashPaper2.2吧!可以把word、excel等转换为flash、pdf等

Sam_Y | 园豆:132 (初学一级) | 2012-12-25 12:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册