python docx run断开_python-docx

该代码段展示了如何在Python-docx中为段落添加超链接,并能自定义颜色和下划线样式。它首先获取文档的关系ID,然后创建`w:hyperlink`元素,设置超链接文本和样式,最后将超链接插入到段落中。示例中创建了两个超链接,一个带有默认格式,另一个自定义颜色且无下划线。
摘要由CSDN通过智能技术生成

defadd_hyperlink(paragraph, url, text, color, underline):"""A function that places a hyperlink within a paragraph object.

:param paragraph: The paragraph we are adding the hyperlink to.

:param url: A string containing the required url

:param text: The text displayed for the url

:return: The hyperlink object"""

#This gets access to the document.xml.rels file and gets a new relation id value

part =paragraph.part

r_id= part.relate_to(url, docx.opc.constants.RELATIONSHIP_TYPE.HYPERLINK, is_external=True)#Create the w:hyperlink tag and add needed values

hyperlink = docx.oxml.shared.OxmlElement('w:hyperlink')

hyperlink.set(docx.oxml.shared.qn('r:id'), r_id, )#Create a w:r element

new_run = docx.oxml.shared.OxmlElement('w:r')#Create a new w:rPr element

rPr = docx.oxml.shared.OxmlElement('w:rPr')#Add color if it is given

if not color isNone:

c= docx.oxml.shared.OxmlElement('w:color')

c.set(docx.oxml.shared.qn('w:val'), color)

rPr.append(c)#Remove underlining if it is requested

if notunderline:

u= docx.oxml.shared.OxmlElement('w:u')

u.set(docx.oxml.shared.qn('w:val'), 'none')

rPr.append(u)#Join all the xml elements together add add the required text to the w:r element

new_run.append(rPr)

new_run.text=text

hyperlink.append(new_run)

paragraph._p.append(hyperlink)returnhyperlink

document=docx.Document()

p=document.add_paragraph()#add a hyperlink with the normal formatting (blue underline)

hyperlink = add_hyperlink(p, 'http://www.google.com', 'Google', None, True)#add a hyperlink with a custom color and no underline

hyperlink = add_hyperlink(p, 'http://www.google.com', 'Google', 'FF8822', False)

document.save('demo.docx')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值