您的位置:首页技术开发ASP技巧 → 使用ASP和Word进行服务器端拼写检查

使用ASP和Word进行服务器端拼写检查

时间:2004/11/7 4:10:00来源:本站整理作者:蓝点我要评论(0)

编译 甘冀平(2000-09-26)



本文讨论的问题与下列方面相关:



Microsoft Word 97 for Windows



Microsoft Visual InterDev, version 6.0



Microsoft Internet Information Server version 4.0







概要

本文描述了如何使用Microsoft Word在Web页面ASP文件中添加拼写检查功能。



详细的步骤

按照下列步骤建立ASP应用程序:



1、在Web服务器所在机器上,启动Microsoft Visual Interdev 6.0,选择File/New Project。



2、在“新工程”对话框的名字编辑域中,输入“WebSpell”,然后双击新Web工程图标。



3、在接着出现的Web工程向导对话框中,输入或者选择你的Web服务器名字。将工作模式默认为Master,点击Next,再点击

“finish”。



4、在Visual InterDev创建工程完成后,打开工程菜单,选择“添加Web Item\HTML页面”,命名为“CheckSpelling”,

然后点击Open。



5、添加的HTML页面默认状态下以设计视图打开。在页面上拖出一个HTML文本区域,放置一个HTML提交按钮,根据你的爱好

进行布局,在页面上输入一些文字,告诉用户在文本域中输入需要进行拼写检查的文字。



6、选择页面上的所有对象(CTRL+A),然后从Visual InterDev的 HTML菜单中选择Form,将对象包裹在表单中。



7、点击当前窗口底部的源码功能页面,切换到源码显示视图。修改HTML开放< FORM >标记的action属性值为

results.asp。



8、打开Project菜单,选择“添加Web Item\Active Server Page”,命名为“results”,然后点击“Open”。



9、对于新页面,切换到源码视图,在标记之间输入下面的代码:







Spelling Results









The text you entered was:





<%=Request("TEXTAREA1")%>










<%



' Don't allow other sessions to re-enter :)



do while(Application("WordInUse") = 1)



loop



Application("WordInUse") = 1







' Get Word references created in global.asa.



dim wdApp



set wdApp = Application("WordApp")



dim wdDoc



set wdDoc = Application("WordDoc")







' Clear current contents.



dim wdRange



set wdRange = wdApp.Selection.Range



wdRange.WholeStory



wdRange.Delete



set wdRange = Nothing







' Add the text the web user entered.



dim txt



txt = Request("TEXTAREA1")



wdApp.Selection.TypeText CStr(txt)







' Check spelling without prompting.



'wdDoc.CheckSpelling , , 0







' Get spelling errors collection.



dim wdErrors



set wdErrors = wdDoc.SpellingErrors



%>







<% ' Handle no-error condition.



if wdErrors.Count = 0 then



%>



There were no spelling errors.



<%



' Otherwise build a table of suggestions.



else



%>







There were <%=wdErrors.Count%> spelling error(s).













  



  



<%



   for each wdError in wdErrors



     ' Write the word in question.



     Response.Write("")



   next







end if







' Release references.



set wdErrors = nothing



set wdDoc = nothing



set wdApp = nothing







' We're done, allow other sessions to continue.



Application("WordInUse") = 0



%>



10、在Visual InterDev 工程浏览窗口中,双击Global.asa文件,在< SCRIPT >标记之间添加下面2段子程序:



Sub Application_OnStart()







' Launch Word.



dim wdApp



set wdApp = CreateObject("Word.Application")



set Application("WordApp") = wdApp



  



' Add a document.



set Application("WordDoc") = wdApp.Documents.Add







' Release reference.



set wdApp = nothing







End Sub







Sub Application_OnEnd()







' Get Automation references.



dim wdApp



set wdApp = Application("WordApp")



dim wdDoc



set wdDoc = Application("WordDoc")







' Tell Word to shutdown.



wdDoc.Saved = true



wdApp.Quit







' Release references.



set Application("WordDoc") = Nothing



set Application("WordApp") = Nothing



set wdDoc = nothing



set wdApp = nothing







End Sub



11、最后,在工程浏览窗口中用鼠标右键单击CheckSpelling.htm文件,选择“设置为初始页面”。



12、从File菜单中选择“保存所有”(CTRL+SHIFT+S),再从Build菜单中选择“Build”(Control-Shift+B)。



现在可以进行测试了,在客户端输入“http:///WebSpell/CheckSpelling.htm”。



在Web页面的文本域中输入一些文字,点击“Submit”,然后就可以看到results.asp对你输入的文字报告一些错误拼写和

建议。



工程的工作流程

当用户首次浏览到CheckSpelling.htm页面时,Application_OnStart()事件被触发。这个过程启动Microsoft Word,为拼写检查做准备,保存应用和文档对象到2个ASP应用程序级别的变量中。这使页面变得很有效率,因为你可以再次调用Word的同一实例,而不是为每一次拼写检查要求都执行多次实例。接着,当用户点击按钮Submit时,result.asp页面通过ASP的Request对象获取输入值,然后利用存储的Microsoft Word对象来执行拼写检查。result.asp注意了当多个用户会话同时使用同一实例时可能发生的问题,如果一个用户正在使用,就进行调度处理。



注意:一旦一个Web用户登录了工程文件,Web服务器就会有一个WinWord.exe进程在后台运行,它将处理拼写检查的请求。当应用程序发生OnEnd()事件时,ASP应用程序才会释放这个实例,而OnEnd()事件只有当Web服务停止时才被触发。可以通过运行下列的命令来停止并重新启动Web服务:



net stop w3svc



net start w3svc






相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案

Word Suggestions
")



     Response.Write(wdError.Text)



     Response.Write("
")







     ' Get spelling suggestions for it.



     dim wdSuggestions



     set wdSuggestions = wdApp.GetSpellingSuggestions(wdError.Text)



  



     if wdSuggestions.Count <> 0 then



      ' a comma-separated list of suggestions.



      dim strSuggestions



      strSuggestions = ", "



      for each wdSuggestion in wdSuggestions



       strSuggestions = strSuggestions & wdSuggestion.Name & ", "



      next







      ' Remove extra comma & space.



      strSuggestions = Right(strSuggestions, len(strSuggestions)-2)







      ' Write out suggestions.



      Response.Write(strSuggestions)



     else



      Response.Write("None.")



     end if



     set wdSuggestions = Nothing



     Response.Write("