精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>网络专区>>● Internet>>
相关软件
>>网页相关>>使用ASP和Word进行服务器端拼写检查

主题:使用ASP和Word进行服务器端拼写检查
发信人: zy4843762()
整理人: snowypeng(2002-05-23 09:18:36), 站内信件
使用ASP和Word进行服务器端拼写检查  

  按照下列步骤建立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、对于新页面,切换到源码视图,在<BODY>标记之间输入下面的代码


  <!-- Page header --> 

<p><center><font size=+4 color=red>Spelling Results</center><hr


<!-- Show user the text they entered --> 

<p>The text you entered was:<p> 

<%=Request("TEXTAREA1")%><p><hr><p> 

<!-- Begin server-side script to check spelling errors --> 

<%

' 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

%> 

<!-- Build a table to show errors & suggestions --> 

There were <%=wdErrors.Count%> spelling error(s).</fon
t><p> 

<TABLE border=1 cellPadding=1 cellSpacing=1 width=75%> 

<TR> 

   <TD><font size=+1>Word
</TD> 

   <TD><font size=+1>Suggestions</TD></TR> 

<%

   for each wdError in wdErrors

     ' Write the word in question.

     Response.Write("<TR><TD>") 

     Response.Write(wdError.Text) 

     Response.Write("</TD><TD>") 



     ' 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("</TD></TR>") 

   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.h
tm”。

  在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 
 

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.110.88.71]

[关闭][返回]