日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Python?docx庫刪除復(fù)制paragraph及行高設(shè)置圖片插入示例_python

作者:IT工作者 ? 更新時(shí)間: 2022-09-16 編程語言

引言

這兩天做一個(gè)python小工具,用到了docx庫,涉及到paragraph的刪除、,還有行高設(shè)置等技術(shù),這里做一下記錄。

1、復(fù)制paragraph

即用來原文檔的加粗、斜體,下劃線,顏色等屬性的,官方?jīng)]有提供paragraph的接口,只能自己實(shí)現(xiàn):

# paragraph 的
def get_para_data(output_doc_name, paragraph):
    """
    Write the run to the new file and then set its font, bold, alignment, color etc. data.
    """
    output_para = output_doc_name.add_paragraph()
    for run in paragraph.runs:
        output_run = output_para.add_run(run.text)
        # Run's bold data
        output_run.bold = run.bold
        # Run's italic data
        output_run.italic = run.italic
        # Run's underline data
        output_run.underline = run.underline
        # Run's color data
        output_run.font.color.rgb = run.font.color.rgb
        # Run's font data
        output_run.style.name = run.style.name
    # Paragraph's alignment data
    output_para.paragraph_format.alignment = paragraph.paragraph_format.alignment

2、刪除paragraph

網(wǎng)上有用clear()的,實(shí)際不行。 我刪除一個(gè)空行paragraph,用clear不行,還是后來用了下面這個(gè)接口才解決:

def delete_paragraph(paragraph):
    p = paragraph._element
    p.getparent().remove(p)
    p._p = p._element = None

3、插入圖片和paragraph行高設(shè)置

由于默認(rèn)的行高限制,我的使用中遇到了麻煩,插入的圖片的時(shí)候,圖片部分只能顯示一部分。后來,找到了一個(gè)辦法設(shè)置行高屬性:

 from docx.enum.text import WD_LINE_SPACING
     paragraph.paragraph_format.line_spacing_rule = WD_LINE_SPACING.MULTIPLE #根據(jù)實(shí)際大小
     output_run = paragraph.add_run("")
     output_run.add_picture('{}.png'.format(ownerName), width=Pt(50), height=Pt(15))

原文鏈接:https://cloud.tencent.com/developer/article/2053985

欄目分類
最近更新