使用VB.NET检查Word文档中的字体样式

3
我希望您能够使用vb.net检查word文件,并检查文档中的样式是否正确。我需要检查以下这些表达式在word文档中是否存在:
a.Verdana + 16 pt + Bold + Red
b.Verdana + 12 pt + Bold + Italic + Blue c.Verdana + 11 pt + Bold + Italic + Brown
d.Arial + 10 pt + Black
我已经尝试过以下方法:
If objDoc.Range.Font.Name = "Arial" And objDoc.Range.Font.Size = 10 Then
   If objDoc.Range.Font.Color = WdColor.wdColorBlack Then
   End If
        MsgBox("ok")
    Else
        MsgBox("not ok")
End If

但是,使用这段代码时,只有当整个word文档包含Arial,10,Black时,它才显示消息框“OK”,并在包含上述表达式的情况下(除了Arial,10,Black)显示消息框“Not Ok”。
基本上,我需要帮助找出同一Word文档中所有包含所有上述表达式/样式的表达式。
任何帮助都会非常感激。 请帮助我解决这个问题,我还没有找到解决方案。

我已经更新了我的问题,请查看一下。 - Jigar patel
不必在标题中添加“[已更新]”。这里有一个编辑历史记录。每个人都可以看到您的帖子已经更新。 - Ken White
@Winky,你应该解释一下为什么你决定开启悬赏的答案有什么问题。如果你遇到任何问题,你应该开一个新问题并详细说明问题所在! - Kazimierz Jawor
@ Winky,请提出一个新问题,我会在那里发布我的答案,我会尽力使这个过程更快。 - Jigar patel
并在此处发布您的问题链接。 - Jigar patel
显示剩余4条评论
1个回答

4
以下代码可以找到字体样式不同的句子。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim oDoc As New Word.Document()
    Dim wapp As New Word.Application()

    Try
        oDoc = wapp.Documents.Open(TextBox1.Text & "\" & "TEST.doc")

        For Each Senetence As Word.Range In oDoc.Sentences
            For Each Character As Word.Range In Senetence.Characters
                If Character.Font.Name <> "Verdana" AndAlso Character.Font.Name <> "Arial" Then
                    MsgBox(" Font Name not matching Error Line number " & Senetence.Text)
                    Exit For
                End If
            Next
        Next
        oDoc.Close()
    Catch ex As Exception
        oDoc.Close()
    End Try

End Sub

即使字体大小不同,是否有助于找到句子?@TithiPatel - user3391751
1
@Winky,是的,您可以设置所需的字体大小值。例如:If Character.Font.Name = "Verdana" AndAlso Character.Font.size = 12 Then else msgbox("Error" & Sentence.Text) 这将读取句子并检查上述样式,如果句子中的任何字符不包含上述样式,则会显示该特定句子。 - Jigar patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接