现在真正令人兴奋和愉快的时候到了。使用Server.CreateObject方法创建一个WORD实例。在常规的桌面程序的时候,你需要设定Visible=false防止程序实例显示在用户的桌面中,而当程序实例是在WEB服务器上建立的时候是不需要的。一旦所需的Word实例开始在WEB服务器后台运行,通过ADD方法建立一个新的Documents集合。最初这个文档是空的,所以你需要用存储在strSubmission变量中的内容填充这个文档。当文档第一次建立的时候,没有选择区域定义,因此,当使用Selection对象的TypeText方法传递用户提交的内容时,文本内容放置在文档的起始位置。
现在,你需要做的是检查拼写错误(如果有的话)。实际你不用做什么实际工作,Word自动的组装它自己的SpellingErrors集合。而你所要做的是引用这个集合并取出所有的错误,显示拼写错误的单词并取出Word给出的对错误的修改建议。
Word的Application对象包含一种方法叫做GetSpellingSuggestions,该方法返回一个包含对每一个错误的所有拼写建议的集合。调用这个方法,传送给它每一个错误拼写的单词(从Documents对象的SpellingErrors集合)。然后合成从Word返回的建议。
对于每一个提供给的建议,要讲起显示出来并且建立一个锚(<a>)标记封闭它。用锚标记封装是一个用建议中的单词替换错误单词快速和聪明的方法。方法是建立一个字符串变量strModified,调用VBScript的Replace函数替换错误的单词,保存objError.text中,对于Word拼写建议保存wdSuggstion.name中。然后将这些值赋给锚标记中HREF属性。
还记得我们讨论过的ASP搜索Request对象的顺序吗?并应用在txtSubmit上。我们利用了这个弹性的机制提供给我们一般引用的能力。我们超联接标记指向调用的页面本身,传递strModified作为txtSubmit的值。
原本上,该值来自于表单(Form)域,但是在后面的页面,它来自于QueryString。这就允许我们一次使用一个单词修改提交的内容中错误的单词,并减少了大量的编码工作。警告:
在将文本通过QueryString传递回页面的时候,记得使用URLEncode编码你的文本。因为传回的文本可能包含回车,换行符,HTML保留字符,如&,?等。
一旦结束了错误拼写单词的遍历过程(如果有的话),要将错误的总数告诉用户。当然,如果没有错误的话也要指出来。
到这里,进程基本上结束了。其他要做的事情就是关闭正在运行的Microsoft Word实例了。使用Application对象的QUIT方法关闭程序,并传递常数wdDoNotSaveChanges 表明不保留我们的工作文档。通过将所有的变量设为Nothing,我们释放用到的内存。
上一页 | 下一页 |
得到用户的输入 | 关于WORD的结束语 |