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中执行shell命令的几个方法小结
Sep 18 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
Apr 17 Python
python实现指定字符串补全空格的方法
Apr 30 Python
Python计算三角函数之asin()方法的使用
May 15 Python
Python中的rfind()方法使用详解
May 19 Python
Python中的fileinput模块的简单实用示例
Jul 09 Python
Python冲顶大会 快来答题!
Jan 17 Python
python smtplib发送带附件邮件小程序
May 22 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
基于Python中random.sample()的替代方案
May 23 Python
一劳永逸彻底解决pip install慢的办法
May 24 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
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
简单实现Vue的observer和watcher
2016/12/21 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
python 日志增量抓取实现方法
2018/04/28 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
Python面向对象类的继承实例详解
2018/06/27 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
介绍java中初始化块的使用
2012/09/11 面试题
中学生运动会入场词
2014/02/12 职场文书
2014学生会工作总结报告
2014/12/02 职场文书