Web office开发(一)

 
Web office 开发(一)
qq群:19877329
BY:JFAN 2007-07-26
这星期在开发协同办公系统(oa),有一个很重要功能“公文流转”。呵呵,难点呢,就是如果读取/修改文档。包括word、excel、powerpoint、wps、pdf。当然,这几种文档很常见嘛。以下呢,我就说几种方法来达到目的(有的不支持那么多的格式,会说明的)。
l         NTKO OFFICE 控件
NTKO OFFICE文档控件是一个支持电子签名[数字签名],支持PHP,ASP,JSP,C#,VB.NET,DOMINO等各种web编程语言和服务器的,具有在线编辑,痕迹保留,手写签名,电子印章,全屏批注等功能的OFFICE在线编辑控件。支持Word,Excel,WPS等多种文档。
NTKO OFFICE文档控件是ActiveX控件。使用NTKO Office文档控件,能够在浏览器窗口中直接编辑Word, Excel等Office文档或者WPS,金山电子表等文档并保存到Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章等办公自动化系统必备的功能。是OA系统开发的最佳选择组件!控件采用标准HTTP上传协议,支持任意后台Web服务器(iis, domino, webaphere, apache等),任意后台操作系统(win2k, win2003, linux, unix等),以及任意后台编程语言(asp, asp.net, jsp, php, vb.net, c#等)和任意web应用服务器体系结构(j2ee, .net等)。
NTKO OFFICE文档控件不仅可以继续与浏览器和各种后台Web服务器无缝集成创建B/S结构的应用,更全面支持C/S方式的编程和其他容器。您可以在VB,Delphi,以及C++ Builder中使用控件。快速创建C/S结构的应用。
★ 1 新增电子签名[CA数字签名]的功能。
★ 2 增强对WPS文档和金山电子表支持。
★ 3 新增可定制的文件菜单,可定制一个主菜单,禁止F12保存文档,可显示页码,页数信息的状态栏。另外新增印章管理控件,可在浏览器中创建,修改印章从保存到本地或者服务器。
★ 4 新增压缩存储和传输功能 V2.5.1版本新增的压缩存储和传输功能,使的20K左右的Word文档压缩后只有2K左右。
★ 5 新增全文批注功能和远程印章管理控件。
★ 6 全面支持C/S方式和其他容器。
★ 7 支持将数据直接写入ODBC数据源。
★ 8 状态栏,智能Web调用,预定义模板套红 全面支持状态栏,用户界面更加友好。智能Web调用让您甚至可使用XML或者自定义的协议与服务器通讯!
★ 9 广泛的操作系统,Web服务器,数据库和编程语言支持 后台支持Windows,Linux,Unix等各种操作系统;支持IIS,Domino,Websphere,Apache等所有后台WEB服务器类型,支持Db2,Oracle,MySQL,SQL Server等各种常用数据库和JSP,ASP,PHP,PERL等编程语言。
★ 10 支持在提交编辑文档的同时,提交表单的其它数据,包括其它的文件上传 采用我们独创的“智能提交”技术,让您在提交编辑文档的同时,提交表单的其它数据,以及表单中其它的文件上传。这可以让您更加快速的集成现有的应用程序,或者创建新的应用程序。
★ 11 支持所有的Office菜单 完全符合用户习惯,用户操作更加轻松,尤其是复杂的表格操作,和在Office中操作完全一致,大大节约开发成本;而且菜单项目可以通过javascript来控制允许或者禁止。
 12 支持发布为HTML 发布为HTML的功能,可以让您将在线编辑的文档(WORD,EXCEL)以HTML的方式发布到WEB服务器。让没有安装控件的用户也能够方便的查看文档。
★ 13 支持将HTML及其相关文件直接发布到DOMINO文档 可以将HTML文件及其相关文件直接作为附件发布到DOMINO的文档中。
 14 版本控制功能 版本控制功能,能够让您对WORD和EXCEL文档有更多的控制。
 15 支持强制痕迹保留 可以通过对控件编程,让用户只能在痕迹保留状态下工作;强制用户保留一切编辑痕迹。
★ 16 支持手写签名和加密的电子印章 支持使用我们的工具制作加密的电子印章,可将印章放入U盘等硬件设备。高强度的单向加密算法保证只有拥有正确的口令才能够恢复出印章的数据。只有单向加密才能保证不能从印章文件恢复出口令。
★ 17 无需后台配置,即可支持Lotus Domino和WorkFlow 可与Lotus Domino服务器天然集成。并且可以和WorkFlow应用无缝集成。Domino服务器无需安装Java,或其它任何组件。降低系统部署的难度。同时能够将已有的复杂应用迅速转换到使用控件的应用。降低开发成本,节约开发时间。
★ 18 基于标准协议,无任何自定义数据格式,通用性好 基于标准协议的开发,使得合作伙伴无须担心技术的进步带来后续维护和开发风险。
★ 19 支持从本地或服务器URL获取加密的电子印章 支持从本地和服务器将电子印章加入到Office文档。
★ 20 支持从服务器URL或本地直接插入透明浮动图片到Word,Excel文档 新增加的AddPicFromURL和AddPicFromLocal函数可以直接从URL或本地插入透明的浮动图片到Office文档
★ 21 支持将手工绘制的图片作为透明浮动的图片增加到Word,Excel文档 新增加的DoHandDraw函数可以将您不期而至的灵感迅速转化成图片放到Word或者Excel文档中。
★ 22 全面支持Office2000的打印预览 增强了对Office2000的打印预览支持,支持全部Office2000系统的打印预览。另外支持OfficeXP和Office2003中Excel的打印预览。
★ 23 轻量级 使用C语言直接开发COM接口,简洁高效,对内核函数的直接调用使得无需其它动态链接库的支持,兼容性极好!
★ 24 在下载和上载Office文档时不会产生临时文件 使用流数据作为Office文档的数据源,控件本身不会产生临时文件。
★ 25 能够禁止用户从文档拷贝数据 IsNoCopy属性可以禁止用户从Office文档中拷贝数据。
 26 支持简洁高效的编程接口 支持二次开发,可使用Javascript和VBScript对控件进行编程。可以完全控制Office文档。
 27 支持HTTP协议,HTTPS OVER SSL协议 对HTTPS协议的支持使得可以创建更加安全的应用。并且自动支持Session Cookie。使用当前页面的Session Cookie和服务器进行交互。
 28 支持各种手写笔录入,签名,绘图/批注 支持键盘录入,各种手写笔(汉王、蒙恬、联想)录入方式和使用手写笔手写签名,手工绘图/批注。
缺点:
1、 太贵。我咨询过,最少也得1980元。
2、 不支持PDF。
本人找到了个传说中的破解版,但不敢开发,没办法。呵呵,等等,不要叫我发给你,自己慢慢找吧,网上有。
l         IEWORD 控件
  该控件的功能基本与NTKO OFFICE样,(我很怀疑它们之间是血亲,呵呵)听说这是个个人的程序,我咨询过,价格比较合理。就是服务不大好,问个联系号码都没。怕上当,本次也没用。有兴趣的可去联系下作者。看看。
l         FreeTextBox 等网络编辑器
其实这样的编辑器有好多,我这就只说FreeTextBox吧!FreeTextBox是免费使用,更主要的是在网上有源代码。你可根据这个再来修改,听说有位大虾已把那插入图片改进了,呵呵,自己找找。
作为网络编辑器用来开发OA里的公文流转的缺点是很明显的:
1、 只有word/wps格式。
2、 不能完全支持word格式吧,如目录、页眉和页脚等。
最好的一点就是 免费。免费万岁。哈。如果只像csdn写bolg,这还是很好的工具。
l         Javascript 打开、编辑、创建 office 文档
(来源 Kaneboy's Blog)用过sharepoint吗?能直接激活客户端的word来打开.doc文件,而不是类似直接点击.doc文档链接时word在IE中被打开那样。想想这个问题应该很多人都会感兴趣,所以干脆写一篇blog来大致描述一下方法。
在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于“Program Files/Microsoft Office/OFFICE11/owssupp.dll”。通过这个控件,客户端页面上的JavaScript就可以激活本地的Office软件,来实现打开、编辑Office文档。(另,Office XP应该就已经包含这个ActiveX控件了。)
首先,用Script创建一个本地的对象:
openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2");
//为了兼容Office XP,可以创建“SharePoint.OpenDocuments.1”
然后,调用openDocObj的相应的方法。比如打开服务器上的一个Office文档:
openDocObj.ViewDocument(" http://www.abc.com/documents/sample.doc");
openDocObj对象会根据参数中不同的Office文档类型(.doc、.xls、.ppt)来打开不同的程序(Word、Excel、PowerPoint)。ViewDocument()方法还有一个重载签名,可以让我们手工指定激活哪个程序来打开文档:
openDocObj.ViewDocument(" http://www.abc.com/documents/sample.doc", 要激活的程序的ProgID);
那么要打开Office程序在线编辑文件又如何?
openDocObj.EditDocument(" http://www.abc.com/documents/sample.doc");
就可以直接激活Word,在Word里面编辑文档,然后直接点击Word里面的保存功能,就可以将文件保存会服务器上了。注意:为了让Word能将编辑后的文档直接保存会服务器,访问Web站点的当前上下文的Windows Identity必须对服务器的相应目录(即“http://www.abc.com/documents”这个虚拟目录所对应的服务器上的物理路径)有相应的写权限,否则保存动作会失败。编辑完成后,EditDocument()会返回一个bool值,来反映编辑操作是否成功。
我们还可以通过打开服务器上的一个文档模版,来创建一个新的文档:
就可以使用“http://www.abc.com/documents/sampleTemplate.dot”这个模版来创建一个新的文档,默认新文档的保存地点是“http://www.abc.com/documents/”。创建新文档时使用的程序取决于模版文件的类型(比如.dot模版会对应Word)。新文档的保存同样需要注意权限问题。CreateNewDocument()方法同样会返回一个bool值来反映操作是否成功。
CreateNewDocument()方法的第一个参数,除了可以使用一个模版的地址外,还可以直接指定为希望用来创建新文档的客户端程序的ProgID。
这是个好的方法,缺点就是只支持微软的office吧,我也到金山的网上找过,它们也有相近的方法,要用的可到金山主页找第二次开发文档和demo.
l         Microsoft word object library
    开始->运行->"dcomcnfg"->在应用程序列表框中选择“Microsoft Word 文档”
1、“安全性”->选择“使用自定义访问权限”,点击“编辑”按钮,添加本地“ASPNET”用户权限为“允许访问”。
        2、"身份标识"->“交互式访问”。
    引用microsoft word object library。
    代码:
      object fileName = @"C:/Documents and Settings/yufan/ 桌面/公文流转/1.doc" ;
        object readOnly = false;
        object isVisible = true;
        object missing = System.Reflection.Missing.Value;
        Word.ApplicationClass oWordApp = new Word.ApplicationClass();
        Word.Document oWordDoc = oWordApp.Documents.Open(ref fileName, ref missing, ref readOnly,
        ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing);
        oWordDoc.Activate();
        oWordApp.Selection.TypeText("This is the text");
        oWordApp.Selection.TypeParagraph();
        oWordDoc.Save();
    oWordApp.Application.Quit(ref missing, ref missing, ref missing);
 
缺点:
1、 不能很好里显示文档。
2、 操作时出显一些问题,不知为什么嘛。
 
今天就写到这吧,以下介绍一个微软件的 activeX,两个免费控件(功能很好的),好了,88。
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值