`

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#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    实例051 格式化输入数据为货币格式 65 实例052 开发一个进制转换器 66 3.4 日期时间格式的数据处理 67 实例053 动态获得系统当前日期和时间 67 实例054 手动设置系统日期时间 69 实例055 根据生日自动计算员工年龄 ...

    免费版.NET Word 组件_Free Spire.Doc for .NET 6.3

    支持动态创建一个全新的 Word 文档,并支持几乎所有的 Word 文档元素,它们主要包括页面、节、页眉、页脚、脚注、尾注、段落、项目符号和编号、表格、 文本、域、超链接、书签、注释、图片、样式、背景设置、打印...

    C#全能速查宝典

    1.4.13 Format方法——格式化字符串 56 1.4.14 GETDATE函数——返回当前系统日期和时间 58 1.4.15 GetDayOfMonth方法——返回几号 59 1.4.16 GetDayOfWeek方法——返回星期几 59 1.4.17 GetDayOfYear方法——返回第...

    C#程序开发范例宝典(第2版).part02

    实例243 格式化磁盘 337 7.4 系统控制 338 实例244 将计算机设置为休眠状态 338 实例245 切换输入法 339 实例246 创建应用程序快捷方式 340 7.5 系统设置 340 实例247 设置桌面背景 341 实例248 设置系统时间...

    C#程序开发范例宝典(第2版).part08

    实例243 格式化磁盘 337 7.4 系统控制 338 实例244 将计算机设置为休眠状态 338 实例245 切换输入法 339 实例246 创建应用程序快捷方式 340 7.5 系统设置 340 实例247 设置桌面背景 341 实例248 设置系统时间...

    C#程序开发范例宝典(第2版).part12

    实例243 格式化磁盘 337 7.4 系统控制 338 实例244 将计算机设置为休眠状态 338 实例245 切换输入法 339 实例246 创建应用程序快捷方式 340 7.5 系统设置 340 实例247 设置桌面背景 341 实例248 设置系统时间...

    C#程序开发范例宝典(第2版).part13

    实例243 格式化磁盘 337 7.4 系统控制 338 实例244 将计算机设置为休眠状态 338 实例245 切换输入法 339 实例246 创建应用程序快捷方式 340 7.5 系统设置 340 实例247 设置桌面背景 341 实例248 设置系统时间...

    ASP.NET 3.5 开发大全word课件

    5.2.2 超链接控件(HyperLink) 5.2.3 图像控件(Image) 5.3 文本框控件(TextBox) 5.3.1 文本框控件的属性 5.3.2 文本框控件的使用 5.4 按钮控件(Button,LinkButton,ImageButton) 5.4.1 按钮控件的通用属性 ...

    Visual assist X 1626(带注册机)

     增加了色彩和格式:采用了更多的色彩和格式选项,代码解译更加迅速。增强了IDE的基本语法色彩,在您输入代码的同时,突出匹配和不匹配条目。另外,还添加了column indicator和print in color,将RTF置于剪切版内。...

Global site tag (gtag.js) - Google Analytics