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

原创 2000年11月28日 07:22:00
编译 甘冀平(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、对于新页面,切换到源码视图,在<BODY>标记之间输入下面的代码:

<!-- Page header -->

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

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

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

<font color=blue><%=Request("TEXTAREA1")%></font><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 -->

<font color=red>There were <%=wdErrors.Count%> spelling error(s).</font><p>

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

<TR>

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

   <TD><b><font size=+1>Suggestions</font></b></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.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

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

2000年11月28日 07:22:00 编译 甘冀平(2000-09-26)本文讨论的问题与下列方面相关: Microsoft Word 97 for Windows Microsoft V...
  • softart
  • softart
  • 2007年10月27日 07:31
  • 203

在服务器端生成 Word 2007 文档

在服务器...
  • whchen
  • whchen
  • 2006年12月15日 14:54
  • 3207

Word2010取消拼写检查

在Word中很多专业的英文单词被标记为红色波浪线,这是Word自带的拼写检查功能导致的,可以取消 审阅---->拼写和语法----->全部忽略;...
  • hezikui1987
  • hezikui1987
  • 2013年09月11日 11:51
  • 990

Word 关闭拼写检查 (去掉Word中拼写检查的所有红色和绿色的浪线)

工具=>选项=>拼写和语法(选项卡),把所有能去掉的对勾都去掉.好了,看着很烦的红红绿绿的波浪线都去掉了....
  • iamoyjj
  • iamoyjj
  • 2010年08月22日 21:32
  • 1951

C#调用Word拼写检查功能

    public string ChkSpelling(string word)    {        System.Type wordType = System.Type.GetTypeFro...
  • litao6664
  • litao6664
  • 2007年08月13日 13:32
  • 1785

vb.net中如何调用Word2000的拼写检查或者语法检查

要使用Microsoft Word对象的属性和方法,需要引用Word组件。在解决方案浏览器中的“引用”上单击右键,添加引用,在弹出的对话框的标签页中选“COM”标签页,然后找到“Microsoft W...
  • usersmj
  • usersmj
  • 2007年05月15日 16:31
  • 1127

Texworks拼写检查

我使用的是Tex Live2015,其中自带的编辑器 Texworks是不自带拼写检查的,那么我们书写英文单词的时候需要Word那样的拼写检查怎么办? (1)在OpenOffice的官网下载对应的词...
  • T_27080901
  • T_27080901
  • 2015年09月18日 09:53
  • 2847

word2007禁用自动拼写和语法检查

默认情况下,Word 2007 会在您键入时自动检查拼写和语法。拼写错误由红色波浪下划线标记,语法错误由绿色波浪下划线标记。在某些计算机上,这些选项可能会对性能产生不良的影响。 若要禁用“自...
  • hongqishi
  • hongqishi
  • 2011年12月05日 19:24
  • 4097

贝叶斯定理在拼写检查中的应用

贝叶斯定理 条件概率 通常条件概率表示为P(A|B)P(A|B),表示在给定B条件下A事件发生的概率。联合概率 两个事件同时发生的概率,表示为P(A,B)P(A, B),事件A,B互相独立时...
  • GnahzNib
  • GnahzNib
  • 2017年04月19日 18:58
  • 459

将asp页面导出到WORD

js代码script language="javascript"> function OpenWord()...{ Layer1.style.border=0 ExcelSheet = new Act...
  • xiang588
  • xiang588
  • 2007年05月06日 19:58
  • 1256
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用ASP和Word进行服务器端拼写检查
举报原因:
原因补充:

(最多只允许输入30个字)