Spire.Doc 超链接教程(1):C# 删除 Word 超链接

超链接指的是在Word文本或者图片中插入能跳转到其他位置或对象的链接,常见的超链接可以链接到网址、电子邮箱地址、外部文件和书签。本文将介绍如何使用Spire.Doc删除文本超链接和图片超链接,并保留原来的文本和图片。

更多资源查看:Spire.Doc文本教程 | Spire.XLS图表系列教程 | Spire.PDF系列教程

超链接指的是在Word文本或者图片中插入能跳转到其他位置或对象的链接,常见的超链接可以链接到网址、电子邮箱地址、外部文件和书签。本文将介绍如何使用Spire.Doc删除文本超链接和图片超链接,并保留原来的文本和图片。

下载Spire.Doc最新试用版

源文档:

remove-the-hyperlinks-from-the-word-document-1
//创建Word对象并加载文档Document document = new Document();document.LoadFromFile(@"hyperlinks.docx");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);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);                                                 }            }        }    }}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 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);                    }                }            }        }    }}

结果:

remove-the-hyperlinks-from-the-word-document-2

如果你有任何问题或意见,请在下方评论区留言~


想要购买正版授权,或者获取更多Spire.XLS相关信息的朋友可以点击” 咨询在线客服“~

Spire.Doc 超链接教程(1):C# 删除 Word 超链接

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年4月19日
下一篇 2019年4月19日

相关推荐

发表回复

登录后才能评论