gpt4 book ai didi

.net - 使用 Interop 中的 Word 2007 拼写检查时,某些语言无法工作

转载 作者:行者123 更新时间:2023-12-02 05:39:03 26 4
gpt4 key购买 nike

我正在 VB.net 桌面应用程序中通过 Interop 使用 Word 2007 拼写检查器。当使用默认语言(英语)时,它工作正常。如果我通过 LanguageId 将语言设置为法语,它也可以工作。但如果我将其设置为法语(加拿大)(Word.WdLanguageID.wdFrenchCanadian),它就不起作用。没有错误消息,它只是运行并表示文档不包含错误。

我知道确实如此,如果我将完全相同的文本粘贴到 Word 本身并使用法语(加拿大)词典运行它,它会发现错误。为什么那本词典不起作用对我来说有点神秘。

完整代码如下:

Public Shared Function SpellCheck(ByVal text As String, ByVal checkGrammar As Boolean) As String
' If there is no data to spell check, then exit sub here.
If text.Length = 0 Then
Return text
End If

Dim objWord As Word.Application
Dim objTempDoc As Word.Document
' Declare an IDataObject to hold the data returned from the
' clipboard.
Dim iData As IDataObject

objWord = New Word.Application()
objTempDoc = objWord.Documents.Add
objWord.Visible = False

' Position Word off the screen...this keeps Word invisible
' throughout.
objWord.WindowState = 0
objWord.Top = -3000
' Copy the contents of the textbox to the clipboard
Clipboard.SetDataObject(text)
' With the temporary document, perform either a spell check or a
' complete
' grammar check, based on user selection.
With objTempDoc
.Content.Paste()
.Activate()
.Content.LanguageID = Word.WdLanguageID.wdFrenchCanadian
If checkGrammar Then
.CheckGrammar()
Else
.CheckSpelling()
End If
' After user has made changes, use the clipboard to
' transfer the contents back to the text box
.Content.Copy()
iData = Clipboard.GetDataObject
If iData.GetDataPresent(DataFormats.Text) Then
text = CType(iData.GetData(DataFormats.Text), _
String)
End If
.Saved = True
.Close()
End With
objWord.Quit()
Return text

End Function

最佳答案

拼写检查器是否实际安装了不起作用的语言?

如果您尝试将语言更改为德语? (或意大利语但不是意大利语(瑞士))

关于.net - 使用 Interop 中的 Word 2007 拼写检查时,某些语言无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2510603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com