超链接可以指向文件、电子邮件、网站、图像或视频,当读者点击时。超链接在 word 文档中被广泛使用,因为它非常方便地将读者引导到相关有用的内容。通过使用 spire.doc for .net,开发人员可以添加超链接、查找超链接和修改超链接。在本文中,我们将演示如何使用 spire. doc for .net 在 c# 中找到 word 文档中的所有现有超链接以及修改特定的超链接。
安装 spire.doc for .net
首先,您需要将 spire.doc for.net 包含的 dll 文件作为引用添加到您的 .net 项目中。dll 文件可以从此链接下载,也可以通过 安装。
pm> install-package spire.doc
查找 word 文档中所有超链接
超链接由两个基本部分组成:超链接地址(url)和其显示文本。使用 spire.doc for .net,您可以先遍历文档对象,找到所有超链接对象,再使用 field.fieldtext 和 field.code 属性来获取超链接的显示文本地址和地址(url),详细步骤如下。
- 创建 document 对象。
- 使用 document.loadfromfile() 方法来加载源文档。
- 创建一个 list 对象 list
用于存放找到的超链接对象。 - 遍历示例 word 文档每个节中的每个段落,找到段落中的超链接对象,并将其添加到 list 对象中。
- 遍历 list 对象,通过 field.fieldtext、field.code 获取每个超链接的显示文本以及地址 url。
- 通过 stringbuilder 对象和 file 类将获取到的所有的超链接信息保存到本地 txt 文档中。
- c#
using spire.doc;
using system.io;
using system.text;
namespace findhyperlink
{
internal class program
{
static void main(string[] args)
{
// 创建一个document对象
document doc = new document();
// 从指定路径加载一个word文档
doc.loadfromfile(@"hyperlink.docx");
// 创建一个field类型的列表,用于存储超链接
list hyperlinks = new list();
// 遍历文档的所有节
foreach (section section in doc.sections)
{
// 遍历每个节的子对象
foreach (documentobject sec in section.body.childobjects)
{
// 判断子对象是否为段落类型
if (sec.documentobjecttype == documentobjecttype.paragraph)
{
// 遍历段落的子对象
foreach (documentobject para in (sec as paragraph).childobjects)
{
// 判断子对象是否为field类型
if (para.documentobjecttype == documentobjecttype.field)
{
// 将子对象转换为field类型
field field = para as field;
// 判断字段是否为超链接类型
if (field.type == fieldtype.fieldhyperlink)
{
// 将超链接对象添加到列表中
hyperlinks.add(field);
}
}
}
}
}
}
// 创建一个stringbuilder对象,用于拼接超链接信息
stringbuilder sb = new stringbuilder();
// 遍历超链接列表
foreach (field hyperlink in hyperlinks)
{
// 添加超链接显示文本到stringbuilder中
sb.appendline("超链接的文本:" hyperlink.fieldtext);
// 添加超链接地址url到stringbuilder中
sb.appendline("超链接的链接:" hyperlink.code);
// 添加空行分隔不同的超链接信息
sb.appendline();
}
// 将stringbuilder中的内容写入到指定的文件中
file.writealltext(@"hyper_result.txt", sb.tostring());
// 关闭文档对象
doc.close();
}
}
}
修改 word 文档中特定超链接
使用 spire.doc for .net,您可以使用 field.code 和 field.fieldtext 属性修改现有超链接的地址和显示文本,通过 field.characterformat 下的相关属性来设置超链接显示文本的字体大小、字体颜色、字体斜体效果、字体加粗效果等,具体步骤如下:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法来加载源文档。
- 遍历源文档的每个节中的每个段落,找到段落中的超链接对象。
- 判断当前超链接的显示文本是不是指定文本内容,如果是,就通过 field.code 来修改链接地址(url),通过 field.characterformat.fontsize、field.characterformat.textcolor、field.characterformat.italic、field.characterformat.bold 来修改超链接显示文本的字体大小、字体颜色、字体斜体效果、字体加粗效果。
- 通过 document.savetofile 保存结果文档。
- c#
using spire.doc.documents;
using spire.doc;
using system.text;
using system.io;
namespace countwordsandcharactersforparagraph
{
internal class program
{
static void main(string[] args)
{
// 创建一个document对象
document doc = new document();
// 从指定路径加载一个word文档
doc.loadfromfile(@"../../data/hyperlink.docx");
// 遍历文档的所有节
foreach (section section in doc.sections)
{
// 遍历每个节的子对象
foreach (documentobject sec in section.body.childobjects)
{
// 判断子对象是否为段落类型
if (sec.documentobjecttype == documentobjecttype.paragraph)
{
// 遍历段落的子对象
foreach (documentobject para in (sec as paragraph).childobjects)
{
// 判断子对象是否为field类型
if (para.documentobjecttype == documentobjecttype.field)
{
// 将子对象转换为field类型
field field = para as field;
// 判断字段是否为超链接类型
if (field.type == fieldtype.fieldhyperlink)
{
// 判断超链接文本是否为"spire.doc for .net"
if (field.fieldtext.equals("spire.doc for .net"))
{
// 修改超链接的目标地址
field.code = "hyperlink \"" "https://www.e-iceblue.com/introduce/word-for-net-introduce.html" "\"";
// 设置超链接字体大小为15
field.characterformat.fontsize = 15;
// 设置超链接字体颜色为红色
field.characterformat.textcolor = color.red;
// 设置超链接字体为斜体
field.characterformat.italic = true;
// 设置超链接字体为粗体
field.characterformat.bold = true;
}
}
}
}
}
}
}
// 将修改后的文档保存到指定路径,格式为docx
doc.savetofile(@"edithyperlinks.docx", fileformat.docx);
}
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。