Python docx库删除复制paragraph及行高设置图片插入示例


Posted in Python onJuly 23, 2022

引言

这两天做一个python小工具,用到了docx库,涉及到paragraph的删除、,还有行高设置等技术,这里做一下记录。

1、复制paragraph

即用来原文档的加粗、斜体,下划线,颜色等属性的,官方没有提供paragraph的接口,只能自己实现:

# 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

网上有用clear()的,实际不行。 我删除一个空行paragraph,用clear不行,还是后来用了下面这个接口才解决:

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

3、插入图片和paragraph行高设置

由于默认的行高限制,我的使用中遇到了麻烦,插入的图片的时候,图片部分只能显示一部分。后来,找到了一个办法设置行高属性:

from docx.enum.text import WD_LINE_SPACING
     paragraph.paragraph_format.line_spacing_rule = WD_LINE_SPACING.MULTIPLE #根据实际大小
     output_run = paragraph.add_run("")
     output_run.add_picture('{}.png'.format(ownerName), width=Pt(50), height=Pt(15))

以上就是Python docx库删除复制paragraph及行高设置图片插入示例的详细内容,更多关于Python docx库操作的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python输入错误密码用户锁定实现方法
Nov 27 Python
python代码实现ID3决策树算法
Dec 20 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
python__new__内置静态方法使用解析
Jan 07 Python
python绘制封闭多边形教程
Feb 18 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
django haystack实现全文检索的示例代码
Jun 24 Python
MoviePy简介及Python视频剪辑自动化
Dec 18 Python
如何用python批量调整视频声音
Dec 22 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 #Python
Pytorch中expand()的使用(扩展某个维度)
Jul 15 #Python
Python实现聚类K-means算法详解
Jul 15 #Python
python自动获取微信公众号最新文章的实现代码
Jul 15 #Python
pytorch实现加载保存查看checkpoint文件
Jul 15 #Python
pytest实现多进程与多线程运行超好用的插件
Jul 15 #Python
python如何将mat文件转为png
Jul 15 #Python
You might like
体育彩票排列三组选三算法分享
2014/03/07 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
更优雅的事件触发兼容
2011/10/24 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python实现分段线性插值
2018/12/17 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
Python 没有main函数的原因
2020/07/10 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
Java程序员常见面试题
2015/07/16 面试题
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
保险专业自荐信范文
2014/02/20 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
幼儿园开学寄语
2014/04/03 职场文书
导游欢迎词范文
2015/01/23 职场文书
公诉意见书范文
2015/06/05 职场文书
我的暑假生活作文(五年级)范文
2019/08/07 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Python Parser的用法
2021/05/12 Python