在 word 文档中,图片和形状可以添加超链接,用于跳转到外部网站、文件,或文档中的特定位置。然而,随着外部资源的变动或文档结构的调整,超链接指向的目标地址或文件路径可能会发生变化。这种情况下,如果不及时更新超链接,可能会导致链接失效,进而影响文档的正常使用和用户体验。这篇文章将介绍如何使用 spire.doc for .net 在 c# 中以编程方式修改 word 文档中图片和形状的超链接。
安装 spire.doc for .net
首先,您需要将 spire.doc for.net 包含的 dll 文件作为引用添加到您的 .net 项目中。dll 文件可以从此链接下载,也可以通过 安装。
pm> install-package spire.doc
c# 修改 word 中图片的超链接
spire.doc for .net 提供了 docpicture.hashyperlink 属性,用于检测图片是否包含超链接。一旦检测到超链接,可以通过 docpicture.href 属性来更新或修改超链接。详细步骤如下:
- 创建 document 类的实例。
- 使用 document.loadfromfile() 方法加载 word 文档。
- 遍历文档中的所有节、段落和段落中的子对象。
- 检查对象是否为 docpicture 类型(即图片)。
- 使用 docpicture.hashyperlink 属性检查图片是否包含超链接。
- 使用 docpicture.href 属性修改超链接内容(若需删除超链接,将其值设为空)。
- 使用 document.savetofile() 方法保存修改后的文档。
- c#
using spire.doc;
using spire.doc.documents;
using spire.doc.fields;
namespace updatehyperlinkforimage
{
internal class program
{
static void main(string[] args)
{
// 创建 document 类的实例
document doc = new document();
// 加载 word 文档
doc.loadfromfile("示例1.docx");
// 遍历文档中的所有节
foreach (section section in doc.sections)
{
// 遍历节中的所有段落
foreach (paragraph paragraph in section.paragraphs)
{
// 遍历段落中的所有子对象
foreach (documentobject documentobject in paragraph.childobjects)
{
// 检查子对象是否为 docpicture 类型
if (documentobject is docpicture)
{
docpicture pic = documentobject as docpicture;
// 检查该图片是否包含超链接
if (pic.hashyperlink)
{
// 更新图片超链接(若需删除超链接,将值设置为空)
pic.href = "https://www.e-iceblue.cn/";
}
}
}
}
}
// 保存修改后的文档到指定路径
doc.savetofile("修改图片超链接.docx", fileformat.docx2016);
// 关闭文档,释放资源
doc.close();
}
}
}
c# 修改 word 中形状的超链接
与修改图片超链接类似,你可以使用 shapeobject.hashyperlink 属性检测形状是否包含超链接,并通过 shapeobject.href 属性更新或修改超链接。详细步骤如下:
- 创建 document 类的实例。
- 使用 document.loadfromfile() 方法加载 word 文档。
- 遍历文档中的所有节、段落和段落中的子对象。
- 检查对象是否为 shapeobject 类型(即形状)。
- 使用 shapeobject.hashyperlink 属性检查形状是否包含超链接。
- 使用 shapeobject.href 属性修改超链接内容(若需删除超链接,将其值设为空)。
- 使用 document.savetofile() 方法保存修改后的文档。
- c#
using spire.doc;
using spire.doc.documents;
using spire.doc.fields;
namespace updatehyperlinkforshape
{
internal class program
{
static void main(string[] args)
{
// 创建 document 类的实例
document doc = new document();
// 加载 word 文档
doc.loadfromfile("示例2.docx");
// 遍历文档中的所有节
foreach (section section in doc.sections)
{
// 遍历节中的所有段落
foreach (paragraph paragraph in section.paragraphs)
{
// 遍历段落中的所有子对象
foreach (documentobject documentobject in paragraph.childobjects)
{
// 检查子对象是否为 shapeobject 类型
if (documentobject is shapeobject)
{
shapeobject shape = documentobject as shapeobject;
// 检查该形状是否包含超链接
if (shape.hashyperlink)
{
// 更新形状超链接(若需删除超链接,将值设置为空)
shape.href = "https://www.e-iceblue.cn/";
}
}
}
}
}
// 保存修改后的文档到指定路径
doc.savetofile("修改形状超链接.docx", fileformat.docx2016);
// 关闭文档,释放资源
doc.close();
}
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。