更新:以下模块已经上传到pypi,可以直接使用
pip install certimaker
当然,这个程序需要预装两个依赖包,如果没有安装过python-docx模块和pinyin模块的话,可以使用以下代码安装这两个模块:

pip install python-docx
pin install pinyin

下载certimaker模块,然后在本地代码中使用以下代码就可以快速生成奖状

from certimaker.certimaker import make_certificate
make_certificate('王大雷','国家奖学金')

完成这个小项目需要掌握以下知识点:
1.第三方模块的import使用方法
2.word文档的docx模型(doc/paragraph/run三层结构)
3.类和函数写法(OOP)基础
4.pinyin、datetime模块的基本使用方法

代码如下:

from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
import pinyin
import datetimeBLACK = RGBColor(0,0,0)
RED = RGBColor(255,0,0)
GREEN = RGBColor(0,255,0)
BLUE = RGBColor(0,0,255)
TODATE = datetime.datetime.now().strftime('%Y.%m.%d')
THISY = datetime.datetime.now().strftime('%Y')
LASTY = str(int(THISY)-1)
class DocWriter:def __init__(self,name,award):self.doc = Document()self.name = nameself.award = awarddef new_para(self):self.para = self.doc.add_paragraph()def write_run(self, content, fontsize = 25, fontname = '华文中宋',alignment = WD_ALIGN_PARAGRAPH.LEFT, color = BLACK, underline = False, bold = False):para = self.pararun = para.add_run(content)run.font.size = Pt(fontsize)run.font.name = fontnamerun.font.underline = underlinerun.font.bold = boldr = run._element.rPr.rFontsr.set(qn('w:eastAsia'),fontname)para.alignment = alignmentrun.font.color.rgb = colordef signature(self,sign):self.new_para()self.write_run(sign,alignment=WD_ALIGN_PARAGRAPH.RIGHT)self.new_para()self.write_run(TODATE,alignment=WD_ALIGN_PARAGRAPH.RIGHT)def save_doc(self):pyname = pinyin.get(self.name, format='strip', delimiter="")pyaward= pinyin.get(self.award,format='strip', delimiter="")filename = pyname + '_'+ pyaward + '.docx'self.doc.save(filename)def make_certificate(name,award):awardoc = DocWriter(name,award)awardoc.new_para()awardoc.write_run('奖  状', fontsize = 50,alignment= WD_ALIGN_PARAGRAPH.CENTER,color = RED,bold=True)awardoc.new_para()awardoc.write_run(' '*2+name+' '*2,fontsize = 30,underline = True,bold=True)awardoc.write_run(' 同学:',fontsize = 30)awardoc.new_para()awardoc.write_run(f'\t你在{LASTY}—{THISY}年度表现优异,被授予')awardoc.write_run(' '*2 + award + ' '*2, underline=True, bold=True)awardoc.write_run('荣誉称号。')awardoc.new_para()awardoc.write_run('\t特发此证,以资鼓励!')awardoc.signature('python大学')awardoc.save_doc()name = '李雷'
award = '三好学生'
make_certificate(name,award)

运行之后会生成.docx类型的word文档如下:

打开之后,我们可以看到成功生成了一张奖状:

我们把以上代码保存为模块’docxclass.py’,就可以在其他的python代码中调用这个模块里面定义的函数make_certificate(),我们新建一个新的python文件,写入以下代码:

from docxclass import make_certificate
award_dict = {'李雷':'三好学生','韩梅梅':'学习积极分子','Jim':'体育积极分子','Kate':'文艺积极分子','Lucy':'劳动积极分子','Lily':'德育积极分子',
}for name,award in award_dict.items():make_certificate(name,award)

这样就可以批量生成奖状了:


我们随意打开其中的一个,就可以得到想要的奖状效果:

面向对象使用python-docx模块制作格式化文本(奖状生成器)相关推荐

  1. python docx模块如何删除段落_在pythondocx中更改段落格式

    我试图使用Python的Python docx模块更改多个段落的格式.在from docx import Document from docx.shared import Pt from docx.s ...

  2. python textwrap_[Python标准库]textwrap——格式化文本段落

    textwrap--格式化文本段落 作用:通过调整换行符在段落中出现的位置来格式化文本.         Python 版本:2.5 及以后版本         需要美观打印时,可以用 textwra ...

  3. python docx模块pip安装_python安装docx模块

    python docx 怎么安装 如何安装python docx 直接 pip install docxor python -m pip install docxor sudo python -m p ...

  4. python docx转换成txt文本

    使用python将docx文件转换为txt文件,网上找了几个跑了下都报错.终于找到了一个能用的,这里记录一下,免得以后又要用的时候又找不到. 参照:https://blog.csdn.net/wenz ...

  5. python docx模块pip安装_pip安装python模块方法

    网上搜索了很多,主流的配置方法分为两种: 摘自 1.http://www.jb51.net/article/83617.htm 安装pip的包并确定pip安装时的镜像源地址,国内常用的地址有: 1&g ...

  6. python合并word表格单元格_python docx模块读取word表格遇到合并单元格时的处理

    python docx模块读取word表格遇到合并单元格时的处理 python docx模块读取word表格遇到合并单元格时的处理 python docx模块读取word表 遇到合并单元格时的处理 通 ...

  7. python random.random 缩短小数点儿后位数_Python random模块制作简易的四位数验证码...

    先给大家介绍下python中random模块 random与numpy.random对比: 1.random.random():生成[0,1)之间的随机浮点数: numpy.random.random ...

  8. Python精灵模块月江西楼mv

    月满西楼mv_Python精灵模块作品 用Python精灵模块制作的MV,以下是源代码: """月满西楼mv.py本程序是一幅多媒体动画.本程序运行前需要安装精灵模块 p ...

  9. python中docx模块的使用_python使用docx模块读写docx文件的方法与docx模块常用方法详解...

    一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...

  10. python中docx模块的使用_Python-使用.docx模块

    Word文档包含包装在三个对象级别中的格式化文本.最低级别-运行对象,中间级别-段落对象和最高级别-文档对象. 因此,我们无法使用常规文本编辑器来处理这些文档.但是我们可以使用python-docx模 ...

最新文章

  1. 装逼一步到位!GauGAN代码解读来了
  2. Flutter开发之搭建Flutter开发环境(三)
  3. win10怎么用Linux命令,教你Windows10系统使用Linux命令的技巧
  4. IDEA中实用的快捷方式
  5. 深度学习之卷积和反卷积
  6. (数据挖掘-入门-2)相似度衡量的方法
  7. IT十八掌掌第十一天课程总结
  8. 《暮色4:破晓(上)》暮光之城 高清蓝光BD 1080P 720P下载,附中英双字字幕!...
  9. Brute-Force 算法与KMP算法
  10. 【框架-MFC】MFC 显示和隐藏 星号密码 以及如何预防被查看
  11. 阿里云移动测试平台使用教程
  12. 建筑企业收并购系列二:股转与吸收合并
  13. 教你熟透开关电源设计的各种元器件
  14. x77.be/bbs/index.php,试驾体验东风风行CM7 视频体验/外观内饰空间一览
  15. 数据计量单位的换算关系
  16. 如何用Python处理自然语言?(Spacy与Word Embedding)
  17. 翻译D19(附AC码 POJ 17:The Largest City Nearby)
  18. 补零与离散傅里叶变换的分辨率
  19. 2022年重庆最新建筑施工焊工(建筑特种作业)模拟考试题库及答案解析
  20. 为您的高速SPI添加强大和可靠的隔离交流

热门文章

  1. 计算机卸载不了360云盘,360企业云盘如何卸载?360企业云盘的四种卸载方法
  2. 2.使用RNN做诗歌生成
  3. 什么是驻点和拐点_临界点、驻点、拐点的定义是什么?
  4. c++win32项目 如何显示后再删除一个绘图_以weblogic为中间件,部署一个项目,需如何做?...
  5. 公有云、私有云、混合云
  6. idea常用的搜索方式
  7. 一切成功源于积累——20140219 混沌理论三原则
  8. Android 出海 Admob 踩坑
  9. 计算机msvcp100.dll,msvcp100.dll丢失怎样修复
  10. 经济学中ppf计算机会成本例题,经济学中的PPF是什么