超链接是一种有用的工具,用于在文档的不同部分或外部资源(如网站或文件)之间进行连接和导航。但是,在某些情况下,您可能需要修改 Word 文档中的超链接。例如,您可能需要更新超链接的文本或 URL 以确保准确性,或者更改超链接的外观以提高可读性。本文将介绍如何使用 Spire.Doc for Python 在 Python 中更新或更改 Word 文档中的超链接。
安装 Spire.Doc for Python
本教程需要使用 Spire.Doc for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc
如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
Python 更新 Word 文档中的超链接
超链接被 Spire.Doc for Python 识别为 FormField 对象。为了修改特定的超链接,我们需要检索文档中的所有超链接,并通过其索引获取所需的超链接。可以通过 FormField.Text 属性和 FormField.Code 属性重置超链接的显示文本和 URL。以下是使用 Spire.Doc for Python 更新 Word 文档中超链接的详细步骤:
- 创建一个 Document 对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文件。
- 循环浏览文档中的元素以查找所有超链接。
- 从超链接集合中获取特定的超链接。
- 通过 FormField.FieldText 属性更新超链接的显示文本。
- 通过 FormField.Code 属性更新超链接的 URL。
- 使用 Document.SaveToFile() 方法将其转换为 RTF 文件。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个文档对象
doc = Document()
# 从文件加载文档内容
doc.LoadFromFile("data/test.docx")
# 初始化一个空列表,用于存储超链接
hyperlinks = []
# 遍历文档的所有章节
for i in range(doc.Sections.Count):
# 获取当前章节
section = doc.Sections.get_Item(i)
# 遍历章节中的所有子对象
for j in range(section.Body.ChildObjects.Count):
# 获取当前子对象
sec = section.Body.ChildObjects.get_Item(j)
# 如果子对象是段落类型
if sec.DocumentObjectType == DocumentObjectType.Paragraph:
# 遍历段落中的所有子对象
for k in range((sec if isinstance(sec, Paragraph) else None).ChildObjects.Count):
# 获取当前子对象
para = (sec if isinstance(sec, Paragraph)
else None).ChildObjects.get_Item(k)
# 如果子对象是字段类型
if para.DocumentObjectType == DocumentObjectType.Field:
# 获取当前字段对象
field = para if isinstance(para, Field) else None
# 如果字段类型是超链接类型
if field.Type == FieldType.FieldHyperlink:
# 将字段对象添加到超链接列表中
hyperlinks.append(field)
# 获取第一个超链接对象
hyperlink = hyperlinks[0]
# 设置超链接的文本为 "https://www.e-iceblue.cn"
hyperlink.FieldText = "https://www.e-iceblue.cn"
# 设置超链接的代码为 "HYPERLINK \"https://www.e-iceblue.cn/about-us.html\""
hyperlink.Code ="HYPERLINK \"" + "https://www.e-iceblue.cn/about-us.html" + "\""
# 将修改后的文档保存到文件中
doc.SaveToFile("output/UpdateHyperlink.docx", FileFormat.Docx)
# 关闭文档对象
doc.Close()
Python 更改 Word 文档中超链接的外观
获取超链接后,可以通过 FormField.CharacterFormat 对象轻松更改其外观。具体而言,CharacterFormat 对象提供 TextColor、FontName、FontSize、UnderlineStyle 等属性来更改超链接字符的样式。以下是详细步骤:
- 创建一个 Document 对象。
- 使用 Document.LoadFromFile()方法加载Word文件。
- 循环浏览文档中的元素以查找所有超链接。
- 从超链接集合中获取特定的超链接。
- 通过 FormField.CharacterFormat 对象下的属性更改超链接的外观。
- 使用 Document.SaveToFile() 方法将其转换为 Word 文件。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个文档对象
doc = Document()
# 从文件加载文档内容
doc.LoadFromFile("data/test.docx")
# 初始化一个空列表,用于存储超链接
hyperlinks = []
# 遍历文档的所有章节
for i in range(doc.Sections.Count):
# 获取当前章节
section = doc.Sections.get_Item(i)
# 遍历章节中的所有子对象
for j in range(section.Body.ChildObjects.Count):
# 获取当前子对象
sec = section.Body.ChildObjects.get_Item(j)
# 如果子对象是段落类型
if sec.DocumentObjectType == DocumentObjectType.Paragraph:
# 遍历段落中的所有子对象
for k in range((sec if isinstance(sec, Paragraph) else None).ChildObjects.Count):
# 获取当前子对象
para = (sec if isinstance(sec, Paragraph)
else None).ChildObjects.get_Item(k)
# 如果子对象是字段类型
if para.DocumentObjectType == DocumentObjectType.Field:
# 获取当前字段对象
field = para if isinstance(para, Field) else None
# 如果字段类型是超链接类型
if field.Type == FieldType.FieldHyperlink:
# 将字段对象添加到超链接列表中
hyperlinks.append(field)
# 获取第一个超链接对象
hyperlink = hyperlinks[0]
# 设置超链接的下划线样式为无
hyperlink.CharacterFormat.UnderlineStyle = UnderlineStyle.none
# 设置超链接的文本颜色为紫色
hyperlink.CharacterFormat.TextColor = Color.get_Purple()
# 设置超链接为粗体
hyperlink.CharacterFormat.Bold = True
# 将修改后的文档保存到文件中
doc.SaveToFile("output/ChangeAppearance.docx", FileFormat.Docx)
# 关闭文档对象
doc.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。