`

C# 如何添加、格式化、删除Word超链接

阅读更多

超链接简单来讲就是内容链接,通过设置超链接可以实现对象与网页、站点之间的连接。链接目标可以是网页、图片、邮件地址、文件夹或者是应用程序。设置链接的对象可以是文本或者图片。在下面的示例中,将讲述如何通过使用类库来添加Word超链接。同理,我们也可以格式化超链接,例如,设置超链接文本颜色,下划线,链接地址等,也可以删除文档中已经存在的一些超链接,例如:页眉处的链接、正文段落中的链接、表格中的链接、图片中的链接。以上操作我们都可以通过借助下面的类库来实现。

内容要点:

  • 添加Word超链接
  • 格式化Word超链接
  • 删除Word超链接

工具使用

1. 添加Word超链接

1.1 添加文本链接

 

C#

using System;
using Spire.Doc;
using System.Drawing;
using Spire.Doc.Documents;

namespace Insert_Word
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个Document实例并添加section
            Document doc = new Document();
            Section section = doc.AddSection();

            //添加指向网址的超链接
            Paragraph para1 = section.AddParagraph();
            para1.AppendHyperlink("www.google.com", "www.google.com", HyperlinkType.WebLink);

            //添加指向邮件地址的超链接
            Paragraph para2 = section.AddParagraph();
            para2.AppendHyperlink("mailto:support@e-iceblue.com", "support@e-iceblue.com", HyperlinkType.EMailLink);

            //添加指向外部文件的超链接
            Paragraph para3 = section.AddParagraph();
            string filePath = @"C:\Users\Administrator\Desktop\2017NobelPrize.docx";
            para3.AppendHyperlink(filePath, "点击打开文档", HyperlinkType.FileLink);

            //设置段落之间的间距	
            para1.Format.AfterSpacing = 15f;
            para2.Format.AfterSpacing = 15f;
            //保存文档
            doc.SaveToFile("文本超链接.docx", FileFormat.Docx2013);
        }
    }
}

 测试效果:

 

1.2 添加图片链接

C#

 

using System;
using Spire.Doc;
using System.Drawing;
using Spire.Doc.Documents;

namespace ImageHyperlink_Word
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个Document实例并添加section
            Document doc = new Document();
            Section section = doc.AddSection();

            //添加段落
            Paragraph para = section.AddParagraph();

            //添加图片到段落并插入网站链接
            Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\images\Google.jpg");
            Spire.Doc.Fields.DocPicture picture = para.AppendPicture(image);
            para.AppendHyperlink("www.google.com", picture, HyperlinkType.WebLink);

            //保存文档
            doc.SaveToFile("图片超链接.docx", FileFormat.Docx2013);
        }
    }
}

 测试效果:

 



 

2.设置超链接格式

一般情况下,对文本设置超链接都是默认的蓝色字体,带有下划线,在下面的操作中,我们可以自行设置超链接的文本字体、字号、颜色、下划线等。

 

C#

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace FormatHyperlink
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化一个Document类对象,并添加section
            Document document = new Document();
            Section section = document.AddSection();

            //添加段落,并设置超链接文本和链接网址。设置字体、字号、字体颜色、下划线等。
            Paragraph para = section.AddParagraph();
            para.AppendText("HyperLink: ");
            TextRange txtRange = para.AppendHyperlink("www.google.com", "www.google.com", HyperlinkType.WebLink);
            txtRange.CharacterFormat.FontName = "Times New Roman";
            txtRange.CharacterFormat.FontSize = 14;
            txtRange.CharacterFormat.TextColor = System.Drawing.Color.Green;
            txtRange.CharacterFormat.UnderlineStyle = UnderlineStyle.None;
            //保存并打开文档
            document.SaveToFile("result1.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("result1.docx");
        }
    }
}

 

测试效果:



 

3. 删除超链接

下面的测试文档中,多处文档内容包含超链接,包括页眉处的文字超链接、正文段落中的文字超链接、表格中的图片超链接等,可通过下面的代码将超链接删除。

 

测试文档:



 

C#

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Doc.Formatting;
using System.Drawing;

namespace RemoveHyperlink_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Word对象并加载文档
            Document document = new Document();
            document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx");
             //遍历文档中所有section
            foreach (Section section in document.Sections)
            {
                //删除正文里的超链接
                foreach (DocumentObject obj in section.Body.ChildObjects)
                {
                    RemoveLinks(obj, document);
                }

                //删除页眉页脚中的超链接
                foreach (HeaderFooter hf in section.HeadersFooters)
                {
                    foreach (DocumentObject hfobj in hf.ChildObjects)
                    {
                        RemoveLinks(hfobj, document);
                    }
                }
            }
            //保存文档
            document.SaveToFile("RemoveLinks.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("RemoveLinks.docx");
        }
//自定义方法RemoveLinks()删除段落、表格中的超链接
             private static void RemoveLinks(DocumentObject obj,Document document)
            {
                 //删除段落中的超链接
                  RemoveLinksInPara(obj,document);
                 //删除表格中的超链接
                if (obj.DocumentObjectType == DocumentObjectType.Table)
                {
                     foreach (TableRow row in (obj as Table).Rows)
                     {
                         foreach (TableCell cell in row.Cells)
                         {
                             foreach (DocumentObject cobj in cell.ChildObjects)
                            {
                                RemoveLinksInPara(cobj,document);                                 
                            }
                        }
                    }
                }
             }           
//自定义方法RemoveLinksInPara()删除文档段落中的所有超链接
        private static void RemoveLinksInPara(DocumentObject obj,Document document)        
         {
            //遍历文档段落中所有子对象
             if (obj.DocumentObjectType == DocumentObjectType.Paragraph)
              {
                  var objs = (obj as Paragraph).ChildObjects;
                  for (int i = 0; i < objs.Count; i++)
                  {
                     if (objs[i].DocumentObjectType == DocumentObjectType.Field)
                     {
                      //获取超链接域
                       Field field = objs[i] as Field;
                       if (field.Type == FieldType.FieldHyperlink)
                       {
                           //获取超链接的文本或图片对象
                           DocumentObject dObj = field.NextSibling.NextSibling as DocumentObject;
                           //删除文本超链接,保留文本和样式
                           if (dObj is TextRange)
                           { 
                               //获取超链接文本样式
                               CharacterFormat format = (dObj as TextRange).CharacterFormat;
                               format.UnderlineStyle = UnderlineStyle.None;
                               format.TextColor = Color.Black;
                               //创建TextRange并把超链接的文本赋予TextRange
                               TextRange tr = new TextRange(document);
                               tr.Text = field.FieldText;
                               //应用样式
                               tr.ApplyCharacterFormat(format);
                               //删除文本超链接域
                               objs.RemoveAt(i);
                               //重新插入文本
                               objs.Insert(i, tr);
                            }
                              //删除图片超链接,保留图片
                              if (dObj is DocPicture) 
                              {
                                  //删除图片超链接域
                                  objs.RemoveAt(i);
                                  //重新插入图片
                                  objs.Insert(i, dObj);
                              }
                          }
                      }
                  }
              }
         }
    }
}

 测试效果:

 



 

以上全部内容为本次关于“添加、格式化和删除Word文档超链接”的全部介绍。

 

(本文完)

 

  • 大小: 8.3 KB
  • 大小: 96.4 KB
  • 大小: 2.2 KB
  • 大小: 202.6 KB
  • 大小: 198.3 KB
0
0
分享到:
评论

相关推荐

    C# 添加Word文本和图片超链接的方法

    C#编程语言中为Word文档添加文本和图片超链接的方法涉及了几个关键知识点,首先,需要了解超链接的概念以及其在Word文档中的作用。超链接是一种特殊的链接,它允许用户通过点击链接直接跳转到另一个网页、文件或其他...

    C# HtmlToWord 将HTML文件转换成word文档

    HTML主要用于网页设计和开发,而Word则是常用的文本编辑工具,尤其适合制作报告、合同等格式化文档。本篇文章将详细探讨如何利用C#编程语言实现从HTML文件批量转换为Word文档,同时确保本地图片和链接的本地化,使得...

    NPOI 操作word遍历段落

    在C#编程中,利用NPOI库可以方便地读取、创建和修改Word文档,极大地提高了开发效率。在“NPOI操作word遍历段落”的主题中,我们将深入探讨如何使用NPOI来遍历Word文档中的各个段落,并获取段落编号,从而避免手动...

    RichTextBox控件扩展支持中文超链接

    在Windows应用程序开发中,`RichTextBox`控件是一种常见的文本编辑和显示组件,它允许用户输入、编辑和格式化文本。然而,原生的`RichTextBox`控件并不直接支持中文字符作为超链接,这对于处理中文内容的应用来说是...

    C#板Word转CHM应用程序与源代码

    在这个过程中,开发者需要注意处理各种可能的问题,例如Word文档的格式保持、图片嵌入、超链接管理以及兼容性问题等。此外,对于大型文档,性能优化也是关键,因为大量的Word到HTML转换可能会消耗大量资源。 通过...

    pdf转word C# 源码 VS2010 测试可用

    PDF转Word是IT领域中常见的文件格式转换需求,特别是在办公自动化和文档处理中。本项目提供的是一套基于C#编程语言的源代码,用于在Visual Studio 2010环境下实现这一功能。以下是对这套源码及其相关知识点的详细...

    C#写word,自己做的例子

    2. **格式化文本**:可以设置文本的字体、大小、颜色、下划线等属性。 3. **插入图片**:需要将图片转换为Byte数组,然后添加到文档中。 4. **创建表格**:使用`Table`对象创建表格,并通过`TableRow`和`TableCell`...

    C# richTextBox实现带格式word文档的打开 保存 另存为,vs2008和vs2015两种版本

    在C#中,我们可以通过`richtextbox`的API来实现读取和写入这些格式化的文本。 1. **打开文档:** 要打开一个已存在的Word文档,我们需要读取文件内容并将其加载到`richtextbox`中。这通常通过`StreamReader`或`File...

    如何在richtextbox里实现网址的超链接,当点击该网址时就会打开网站

    在Windows Forms应用程序开发中,RichTextBox 控件是一个非常强大的文本编辑控件,它不仅支持多种格式的文本输入与显示,还提供了对超链接的支持。本文将详细介绍如何在 RichTextBox 控件中实现超链接功能,使得用户...

    C#的Word转PDF.rar

    在IT行业中,转换文档格式是一项常见的任务,尤其是在办公自动化领域。C#作为.NET框架下的主要编程语言,提供了丰富的库和工具来实现各种文件格式之间的转换,包括将Word文档转换为PDF。本篇将深入探讨如何在C#环境...

    C#-Spire.Doc-Spire.Pdf.zip

    Spire.Doc提供了丰富的API,可以进行文档的创建、读取、修改、格式化、合并、分割、导出以及更多操作。例如,你可以用它来添加文本、图片、表格、页眉和页脚,甚至可以插入公式和图表。此外,Spire.Doc还支持宏和VBA...

    word内嵌

    要实现Word内嵌,我们主要会用到Microsoft.Office.Interop.Word这个命名空间,它是COM Interop组件,允许C#代码与Word的自动化接口进行通信。 1. **COM Interop**:这是.NET与非托管代码(如COM对象)交互的一种...

    WinForm仿word编辑控件

    有时候,我们需要在WinForm中实现类似Microsoft Word的功能,比如编辑、格式化文本,插入图片等。"WinForm仿word编辑控件"就是为了解决这个问题而设计的。它允许开发者在WinForm应用中创建一个具有基本文本编辑功能...

    C# richtxt实例

    RichTextBox是Windows Forms和WPF中提供的一个控件,它允许用户编辑和格式化文本,类似于Word的基本功能。下面我们将深入探讨这个实例以及与之相关的知识点。 1. **RichTextBox控件介绍**: RichTextBox控件提供了...

    C#word(2007)操作类

    textRange.Text = "格式化文本"; textRange.Font.Name = "宋体"; textRange.Font.Size = 14; textRange.Font.Color = WdColor.wdColorBlue; ``` **添加文本和超链接:** 使用Range对象的InsertAfter或InsertBefore...

    C#Word导出之NPOI-10个模板

    在Word文档中插入和格式化文本是常见的需求。NPOI提供了方法来添加文本、设置字体、大小、颜色,以及创建超链接等。 4. **表格操作** 创建和编辑表格也是NPOI的一大功能。你可以使用`XWPFTable`类来创建表格,并...

    Aspose.Words For .NET 生成word和pdf 支持模板关键字替换图片替换

    Aspose.Words for .NET 是一个强大的文档处理库,它允许开发者在.NET环境中创建、编辑、格式化和转换Microsoft Word文档以及PDF文件。这个库以其高效性和灵活性而著名,能够帮助程序员实现各种复杂的文档操作,比如...

    类似word编辑

    1. **富文本编辑器**: 类似Word编辑的软件或工具通常内置了富文本编辑器,如CKEditor,它允许用户在网页上创建和编辑内容,支持各种格式化的文本、段落样式、列表、链接等。 2. **格式化功能**: 包括字体选择、字号...

    PublicMethod_NPOI封装_npoi_c#arcengine_基于NPOI封装C#_

    这可能包括读取、写入、修改、格式化单元格、合并单元格、处理公式、图表等操作。 在"标签"中提到的"NPOI封装"是指将NPOI的原始API转化为更易于理解和使用的自定义类或方法,以提高代码的可维护性和可读性。"npoi ...

    FreeSpire操作Word读写.7z

    FreeSpire.Doc提供了一个简单易用的API,使得开发者能够方便地进行文本插入、删除、格式化,表格和图表的创建,图片和超链接的管理等多种功能。 2. **C#编程语言**:本示例是用C#编写的,这是一种广泛使用的面向...

Global site tag (gtag.js) - Google Analytics