在 Word 文档中,图片和形状可以添加超链接,用于跳转到外部网站、文件,或文档中的特定位置。然而,随着外部资源的变动或文档结构的调整,超链接指向的目标地址或文件路径可能会发生变化。这种情况下,如果不及时更新超链接,可能会导致链接失效,进而影响文档的正常使用和用户体验。这篇文章将介绍如何使用 Spire.Doc for .NET 在 C# 中以编程方式修改 Word 文档中图片和形状的超链接。
安装 Spire.Doc for .NET
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
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 天的临时许可证。