2021年3月16日星期二

C# 获取Word文本高亮和背景(附vb.net代码)

Word中的文本高亮和背景是通过不同方法来设置的。文本高亮(Text Highlight Color)是通过【字体】中的快速工具栏设置;文本背景(Text Background/Shading)是通过【设计】-【页面边框】-【底纹】来设置。因此,在读取文档中的文本高亮或背景时需要采用不同方法。下面通过调用Spire.doc.dll文件提供的方法来分别获取。

需在【解决方案资源管理器】中引用以下必要程序集文件:

 

 

程序中用于测试的Word文档如图:

C#

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System;using System.Drawing;namespace GetTextBackground{ class Program {  static void Main(string[] args)  {   //加载Word文档   Document doc = new Document();   doc.LoadFromFile("test.docx");   //获取section   Section section = doc.Sections[0];   //遍历所有段落   for (int i = 0; i < section.Paragraphs.Count;i++ )   {    Paragraph paragraph = section.Paragraphs[i];    //遍历段落中的所有对象    for (int j = 0; j < paragraph.ChildObjects.Count;j++ )    {     object obj = paragraph.ChildObjects[j];     if (obj is TextRange)     {      string text = ((TextRange)obj).Text;//获取文本      //Color color = ((TextRange)obj).CharacterFormat.HighlightColor;//获取文本的高亮颜色(即突出显示颜色)      Color color = ((TextRange) obj).CharacterFormat.TextBackgroundColor;//获取文字背景色(底纹)      if (!(color.IsEmpty))      {       //获取文本和颜色       Console.WriteLine("文本内容:"+ text+        "\n"+        "颜色:"+ color);       Console.ReadLine();                           }     }    }   }  } }}

VB.NET

Imports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.FieldsImports System.DrawingNamespace GetTextBackground Class Program  Private Shared Sub Main(args As String())   '加载Word文档   Dim doc As New Document()   doc.LoadFromFile("test.docx")   '获取section   Dim section As Section = doc.Sections(0)   '遍历所有段落   For i As Integer = 0 To section.Paragraphs.Count - 1    Dim paragraph As Paragraph = section.Paragraphs(i)    '遍历段落中的所有对象    For j As Integer = 0 To paragraph.ChildObjects.Count - 1     Dim obj As Object = paragraph.ChildObjects(j)     If TypeOf obj Is TextRange Then      Dim text As String = DirectCast(obj, TextRange).Text      '获取文本      'Color color = ((TextRange)obj).CharacterFormat.HighlightColor;//获取文本的高亮颜色(即突出显示颜色)      Dim color As Color = DirectCast(obj, TextRange).CharacterFormat.TextBackgroundColor      '获取文字背景色(底纹)      If Not (color.IsEmpty) Then       '获取文本和颜色       Console.WriteLine((Convert.ToString("文本内容:") & text) + vbLf + "颜色:" + color)       Console.ReadLine()      End If     End If    Next   Next  End Sub End ClassEnd Namespace

文本背景(底纹)读取结果:

文本高亮读取结果:

 

 

 

(如需转载,请务必注明出处!!)

 









原文转载:http://www.shaoqun.com/a/631662.html

跨境电商:https://www.ikjzd.com/

damai:https://www.ikjzd.com/w/1391

feedly:https://www.ikjzd.com/w/754


Word中的文本高亮和背景是通过不同方法来设置的。文本高亮(TextHighlightColor)是通过【字体】中的快速工具栏设置;文本背景(TextBackground/Shading)是通过【设计】-【页面边框】-【底纹】来设置。因此,在读取文档中的文本高亮或背景时需要采用不同方法。下面通过调用Spire.doc.dll文件提供的方法来分别获取。需在【解决方案资源管理器】中引用以下必要程序集文
扬帆计划:https://www.ikjzd.com/w/1581
丰趣海淘:https://www.ikjzd.com/w/1716
feedly:https://www.ikjzd.com/w/754
男人口述:我怎么处理主动送上门的女人:http://lady.shaoqun.com/m/a/44432.html
Fruugo:https://www.ikjzd.com/w/321
重要更新!亚马逊欧洲站将自动移除无在售信息库存:https://www.ikjzd.com/home/126965

没有评论:

发表评论