用Python实现给Word文档盖章

 更新时间:2022年02月11日 14:18:28   作者:mez_Blog  
大家好,本篇文章主要讲的是用Python实现给Word文档盖章,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

目标文件夹内有多份 Word 文件 ——【xxx涨薪通告.docx】,我们需要在这些文档的末尾处添加公司的电子章与公司名称。

这次的任务困难吗?手动操作起来其实很简单,无非就是先打开一个文档,接着在结尾处添加文字盖章:并且插入电子章图片,然后另起一行,添加公司名称闪光科技金融公司(Shining Fintech Company),将公司名称的字号设置为四号,字体加粗,右对齐;完成这些操作后,复制这些文字和图片,最后保存文档。

实现代码:

import os
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt
 
# 设置目标文件夹路径
path = "../工作/涨薪通告-练习/"
 
# 获取目标文件夹下的所有文件名
file_list = os.listdir(path)
 
for file in file_list:
    # 拼接文件路径
    file_path = path + file
    
    # 打开 Word 文件
    doc = Document(file_path)
 
    # 添加 Paragraph 对象 para_1
    para_1 = doc.add_paragraph('盖章: ')
    # 添加 Run 对象 run_stamp
    run_stamp = para_1.add_run()
    run_stamp.add_picture("./Shining.png")
 
    # 添加 Paragraph 对象 para_2
    para_2 = doc.add_paragraph()
    # 设置对齐方式
    para_2.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.RIGHT
    # 添加 Run 对象 run_comp
    run_comp = para_2.add_run('闪光科技金融公司(Shining Fintech Company)')
    # 设置字体
    run_comp.font.size = Pt(14) # 字体大小
    run_comp.font.bold = True # 字体加粗
 
    # 保存文件
    doc.save(file_path)

本次代码的详细流程图如下所示:

值得一提的是,流程图中添加文字的逻辑对应了简化版的代码。

你也可以使用常规版的流程(添加 Paragraph 对象 -> 添加 Run 对象 -> 添加文字)来添加文字。

本次项目需要使用到的新语法如下图所示:

模块分解

接着就可以打开下一个文档,在文档的最后粘贴刚才的文字和图片,然后保存并关闭文档。一直重复此操作,直到处理完所有的文档。

然后再让属性 font 调用 size,根据上面的表格,将导入的 Pt 设置好后赋值给 size 就可以设置字体的大小了。

具体写法如下所示:

from docx.shared import Pt
 
# 设置字体大小
Run 对象.font.size = Pt(14) # 字体大小

设置加粗

设置字体加粗的方式特别简单,一行代码就可以解决。

我们可以通过属性 font 调用 bold,然后将值设置为 True 即可。

具体写法如下所示:

# 设置字体加粗
Run 对象.font.bold = True # 字体加粗

font 属性还有很多其他功能,常用的还有给字体加下划线、删除线、斜体、颜色、指定字体等,只是他们与本项目无关,这里就用图片简单介绍一下,感兴趣的自己去操作。

功能块练习

这个功能块都是些记忆性的知识,写代码的时候记得参考上面的那些示例代码,照猫画虎就可以实现添加带样式的文字这个功能块了。

from docx import Document
# 导入控制对齐方式所需
from docx.enum.text import WD_ALIGN_PARAGRAPH
# 导入控制字体大小所需
from docx.shared import Pt
 
# 设置文件路径
file_path = './马邦德涨薪通告.docx'
 
# 打开文档
doc = Document(file_path)
# 添加段落2
para = doc.add_paragraph()
# 设置对齐方式
para.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
# 添加 run_comp
run_comp = para.add_run("闪光金融公司(Shining Finance Company)")
# 设置字体大小为 14pt
run_comp.font.size=Pt(14)
# 设置字体加粗
run_comp.font.bold=True
# 保存文件
doc.save('./添加带样式的文字.docx')

运行效果:

 一定要记住,设置字体要在 Run 对象中进行,不要越俎代庖。Paragraph 对象的属性管段落在文档中的位置,Run 对象的属性负责文字在段落中的样式。分工明确,各司其职。

知识归纳与总结

本节是对使用 python-docx 处理 Word 文件的知识讲解。

首先是 python-docx 会将 Word 文件分为三个层级:Document 对象、Paragraph 对象和 Run 对象。

然后是添加文字的两种方法:

添加图片可以使用Run 对象.add_picture(path)。

另外需要铭记的是:

设置段落的排版与布局,需要使用 Paragraph 对象的属性:paragraph_format。
设置文字的字体样式,需要使用 Run 对象的属性:font。

最后来看看本节的知识点思维导图。

总结

到此这篇关于用Python实现给Word文档盖章的文章就介绍到这了,更多相关Python Word文档盖章内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 用opencv给图片换背景色的示例代码

    用opencv给图片换背景色的示例代码

    这篇文章主要介绍了用opencv给图片换背景色的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 感知器基础原理及python实现过程详解

    感知器基础原理及python实现过程详解

    这篇文章主要介绍了感知器基础原理及python实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 聊聊python中令人迷惑的duplicated和drop_duplicates()用法

    聊聊python中令人迷惑的duplicated和drop_duplicates()用法

    这篇文章主要介绍了聊聊python中令人迷惑的duplicated和drop_duplicates()用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python中remove函数的踩坑记录

    python中remove函数的踩坑记录

    这篇文章主要给大家介绍了关于python中remove函数的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python实用秘技之快速优化导包顺序详解

    Python实用秘技之快速优化导包顺序详解

    这篇文章主要来和大家分享一个Python中的实用秘技,那就是如何快速优化导包顺序,文中的示例代码简洁易懂,快跟随小编一起学习起来吧
    2023-06-06
  • pyinstaller通过spec文件打包py程序的步骤

    pyinstaller通过spec文件打包py程序的步骤

    这篇文章主要介绍了pyinstaller通过spec文件打包py程序,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • Django1.3添加app提示模块不存在的解决方法

    Django1.3添加app提示模块不存在的解决方法

    这篇文章主要介绍了Django1.3添加app提示模块不存在的解决方法,原因是新版和旧版的APP名称写法问题,需要的朋友可以参考下
    2014-08-08
  • python使用fileinput模块实现逐行读取文件的方法

    python使用fileinput模块实现逐行读取文件的方法

    这篇文章主要介绍了python使用fileinput模块实现逐行读取文件的方法,涉及Python中fileinput模块操作文件的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Pytorch中的torch.where函数使用

    Pytorch中的torch.where函数使用

    这篇文章主要介绍了Pytorch中的torch.where函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 老生常谈Python中的Pickle库

    老生常谈Python中的Pickle库

    pickle是python语言的一个标准模块,安装python后已包含pickle库,不需要单独再安装。这篇文章主要介绍了Python中的Pickle库,需要的朋友可以参考下
    2022-01-01

最新评论