关于ASP.NET中WORD PDF的操作

最近做了个收发文系统的项目, 客户的需求不算太复杂, 但麻雀虽小, 五脏俱全.

权限管控, 工作审批流程, 各种查看, 套红头, 收文发文互转, 归档等等功能.

 

这里我想讲的不是收发文整个系统, 这个话题太大了, 以下简单介绍下, 如何在ASP.NET里操作word和转存pdf吧. 以及一些注意事项:

 

1. 如何操作word.

网上有很多文章介绍使用Office COM的InterOper dll实现操作word.

我这里要推荐个开源项目, NetOffice:

http://netoffice.codeplex.com/

netoffice会给我们带来什么好处呢? 那就是他的API都带有版本提示, 并且和office macro的接口一致. (也就是说你熟悉macro, 就会写一切的功能)

(netoffice自带很多例子, 这里就不介绍如何使用netoffice了)

当然doc和docx都支持. 只需要服务器上安装Office 2007或更高版本即可.

 

2. 如果转存word为pdf

只要服务器装有office 2007, 或更高版本, office自带有另存为pdf的功能.

(Office 2007需要下载微软补丁, http://www.microsoft.com/zh-cn/download/details.aspx?id=7)

好了, 有的同学可能就要问到, Office自带的pdf另存功能, 如何在代码里使用呢?

其实很简单, 你只要使用macro录制功能, 录制一段宏, 如何看看宏是怎么写的, 就使用netoffice怎么写. 其他各种操作如何用代码实现, 都可以举一反三, 我就不一一交代了.

 

3. 如何对word进行套红头.

实现简单的在线编辑word, 实现套红头及落款 是收发文系统网站必备的功能.

如何在ASP.NET里实现呢?

在线编辑的控件我这里推荐使用FreeTextBox (谷歌一下就有了)

 

有同学又要问了, 所有的ASP.NET的在线编辑控件, 内容都是HTML, 不是word啊...

嗯, 是的, 那word不是也可以另存为htm吗?  聪明的同学应该已经明白怎么回事了.

用上述的netoffice实现转存word为htm文件, 然后用System.IO的接口方法读取htm文件的内容, 加载到在线编辑控件.

(当然要做点小小的处理, 这里就不介绍了, 做项目 这点研究精神还是需要的嘛)

 

呈现到FreeTextBox后, 客户就可以在线编辑, 套红头, 登记落款了.  当然结果都是html格式的.

当客户要把最终的文 另存为pdf时, 这是我们又要借助office的另存为功能, 把htm文件另存为pdf. (当然也需要小小的修改html).

 

 

4. 部署到IIS

相信做过Office文档操作网站的同学, 都遇到过各种问题. 明明正确的代码, 在IIS里就会不work.

是的, ASP.NET和普通的windows应用或console程序不同, IIS有自己的一套权限认证.

权限设置.

网上搜搜很多文章都会教你如何设置权限, 或者设置impersonate, 或者是更改IIS的运行账号. 这些方法都是可行的.

当然我比较喜欢的是impersonate (当然客户不一定愿意这么做),  或者是直接设置IIS账号.

 

好了一切OK,,,,,,,

 

等... 有的同学有遇到问题了, IIS 7.0+的版本, 部署又有问题了, 呵呵, 我也是, 在windows 2003上明明是work的, 怎么就在windows2008上这么多问题呢.

原来IIS7的权限又变了...

详细请看这篇老外的帖子:http://www.bloing.net/2011/01/how-to-make-iis7-play-nice-with-office-interop/

懒得看的同学直接看这里:

在windows 2008下

  1. 32bit Office installation: Navigate to C:\Windows\System32\config\systemprofile
  2. 64bit Office installation: Navigate to C:\Windows\SysWOW64\config\systemprofile

 

找到对应目录, 然后在目录下面建立"Desktop"的目录, 并且把该目录的权限赋予IIS运行账号.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值