sharepoint当流程流转到某个节点对文档进行水印操作

sharepoint在流程中给文档库中的word或者pdf添加水印。

断断续续的搞了很久。总的解决方案如下:
在流程中,当运行到某步的时候,通过自定义代码调用后台方法,进行相关操作。

针对word的水印操作:
这里就不多说了网上有很多相关资料,需要注意的是:网上的代码在winform程序中都可以跑通,但是在sharepoint就是无法访问word对象,纠结了很久,后来终于找到解决方案,在windowsserver2008中,Create a  new "Desktop" directory inside of "C:\Windows\SysWOW64\config\systemprofile\"

针对pdf水印的操作:
利用第三方dll,iTextSharp对pdf文档进行添加水印操作,网上大部分代码都是一样的,而且还是错的,后来在官方找到demo修改后实现了水印的操作,由于iTextSharp是通过io重写的pdf文件,但是sharepoint中文档库的文档是存在数据库中的,所以最终的解决方案是通过iTextSharp修改好pdf存在服务器物理地址中,然后通过修改sharepoint的数据库,修改相关数据。需要修改的表如下:
AllDocs 表中size 字段 修改为新的pdf文件的大小。
AllDocStreams 表中 Content字段 修改新的二级制编码。

posted on 2014-04-23 15:34  FlowXP  阅读(647)  评论(0编辑  收藏  举报