轉帖|使用教程|編輯:黃竹雯|2019-05-22 10:14:27.490|閱讀 300 次
概述:超鏈接指的是在Word文本或者圖片中插入能跳轉到其他位置或對象的鏈接,常見的超鏈接可以鏈接到網址、電子郵箱地址、外部文件和書簽。本文將介紹如何使用Spire.Doc刪除文本超鏈接和圖片超鏈接,并保留原來的文本和圖片。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
更多資源查看:Spire.Doc文本教程 | Spire.XLS圖表系列教程 | Spire.PDF系列教程
超鏈接指的是在Word文本或者圖片中插入能跳轉到其他位置或對象的鏈接,常見的超鏈接可以鏈接到網址、電子郵箱地址、外部文件和書簽。本文將介紹如何使用Spire.Doc刪除文本超鏈接和圖片超鏈接,并保留原來的文本和圖片。
源文檔:

//創建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);
}
}
}
}
}
}結果:

如果你有任何問題或意見,請在下方評論區留言~
想要購買正版授權,或者獲取更多Spire.XLS相關信息的朋友可以點擊" "~
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn