原理:使用python-docx模块制作奖状生成器,批量生成word奖状。由于每个学生拥有一个word文档,打印起来非常不方便,所以再利用文档合并代码,将所有奖状的word放在一个word里就可以批量打印奖状了。

一、安装三个库
pip install python-docx
pin install pinyin
pip install certimaker

我在安装docx库时报错,于是采用了国内安装源:
pip install python-docx -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
即可安装成功:

二、制作单个奖状代码

"""
制作纸质奖状
"""
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
from docx import Document
import pinyin
import datetime
from docxclass import make_certificate"""
设置文本颜色为黑色
"""
BLACK = RGBColor(0,0,0)"""
获取当前时间以便落款
"""
THISYM = datetime.datetime.now().strftime('%Y年%m月') """
绘制word内容
"""
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,fontsize = 20,bold=True)self.new_para()self.write_run(THISYM,alignment=WD_ALIGN_PARAGRAPH.RIGHT,fontsize = 20,bold=True)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.new_para()awardoc.new_para()awardoc.new_para()awardoc.new_para()awardoc.new_para()awardoc.write_run('\t'*2+name,fontsize = 25,underline = False,bold=True)awardoc.write_run('同学:',fontsize = 20,bold=True)awardoc.new_para()awardoc.write_run(f'\t\t\t荣……获第三届科技节编程类竞赛',underline = False,bold=True,fontsize = 25)awardoc.new_para()awardoc.write_run('\t'*8 + award + ' '*2, underline=False, bold=True,fontsize = 40)awardoc.new_para()awardoc.signature('……小学校')awardoc.save_doc()name = '羊羊羊'
award = '一等奖'
make_certificate(name,award)

三、批量制作奖状
在字典中添加想要制作的奖状即可批量生产。

award_dict = {'羊羊羊':'一等奖',……
}for name,award in award_dict.items():make_certificate(name,award)

四、合并所有奖状方便打印
因为批量生产出来的奖状如下,不方便打印

于是,我们来合并所有word文件吧!!!

"""
合并奖状
"""
import win32com.client as win32
import os
word = win32.gencache.EnsureDispatch('Word.Application')
#启动word对象应用
word.Visible = False
path = r'C:/Users/86136/Desktop/奖状制作/制作纸质奖状'
files = []
for filename in os.listdir(path):filename = os.path.join(path,filename)files.append(filename)
#新建合并后的文档
output = word.Documents.Add()
for file in files:output.Application.Selection.InsertFile(file)#拼接文档
#获取合并后文档的内容
doc = output.Range(output.Content.Start, output.Content.End)
output.SaveAs('C:/Users/86136/Desktop/奖状制作/合并奖状.docx') #保存
output.Close()

五、问题
1.怎么初始化页面设置为横向+A4纸,有大佬能帮忙解答下吗?
2.合并的时候换页如何换,有大佬能帮忙解答下吗?

期末了给孩子们一些鼓励吧!用Python批量制作【纸质】奖状的方法请查收!相关推荐

  1. python适合自学编程吗-孩子学编程选Scratch还是Python

    我们都知道编程的重要性,编程要从娃娃抓起,但孩子到底是该学Scratch还是Python呢?Scratch和Python的区别是什么? 1.孩子应该学Scratch还是Python? (1)0-6岁的 ...

  2. HTML5期末大作业:漫画网站设计——海贼王我当定了(6页) web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 计算机毕设网页设计源码

    HTML5期末大作业:漫画网站设计--海贼王我当定了(6页) web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 计算机毕设网页设计源码 常见网页设计作业题材有 个 ...

  3. HTML+CSS网页设计期末课程大作——篮球网页设计(6页) 学校篮球网页制作模板 学生简单体育运动网站设计成品

    HTML+CSS网页设计期末课程大作--篮球网页设计(6页) 学校篮球网页制作模板 学生简单体育运动网站设计成品 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. ...

  4. 编程入门python语言是多大孩子学的-什么是少儿Python编程?这一篇就够啦!

    原标题:什么是少儿Python编程?这一篇就够啦! 少儿Python编程大家都了解多少呢? 由于少儿编程学习的重要性被广大家长朋友们所知,再加上近几年来我国对少儿编程教育的重视,现在很多的家长朋友们都 ...

  5. web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 (绿色植物网站设计)...

    1.临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手? 网页要求的总数量太多? 2.没有合适的模板?等等一系列问题.你想要解决的问题,在这篇博文中基本都能 ...

  6. web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 (绿色植物网站设计)

    HTML5期末大作业:绿色植物网站设计--绿色多肉盆栽植物养殖网页(6页) HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 1.临近 ...

  7. 上海交通大学python期末考试样题加解析_上海交通大学python期末考试样题加解析...

    <上海交通大学python期末考试样题加解析>由会员分享,可在线阅读,更多相关<上海交通大学python期末考试样题加解析(7页珍藏版)>请在人人文库网上搜索. 1.升够上伙归 ...

  8. 5000套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作【建议收藏】

    一.1000套HTML期末学生结课大作业作品(HTML+CSS+JS) 这8年来做了1000多套(HTML+CSS+JS)网页设计的学生期末大作业,都是给学生定制的都符合学校或者学生考试期末作业的水平 ...

  9. 200套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作

    一.200套HTML期末学生结课大作业作品(HTML+CSS+JS) 这五年来做了200多套(HTML+CSS+JS)网页设计的学生期末大作业,都是给学生定制的都符合学校或者学生考试期末作业的水平,都 ...

  10. HTML5期末大作业:汽车主题网页设计——21 汽车租赁(47页) HTML+CSS+JavaScript web前端期末大作业 html+css+javascript网页设计实例 企业网站制作

    HTML5期末大作业:汽车主题网页设计--21 汽车租赁(47页) HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 大学生毕设网页设 ...

最新文章

  1. 查询时间范围_MySQL慢查询(中):正确处理姿势,你get到了吗?
  2. Java文件非法字符
  3. Maven(五)使用Nexus搭建Maven私服
  4. linux下使用ThinkPHP注意大小写问题
  5. 信息学奥赛一本通C++语言——1054:三角形判断
  6. spring IOC快速入门,属性注入,注解开发
  7. selenium自动化测试配置工具整理
  8. java equals() output_Java中的==和equals
  9. was进程内存占用过大_Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决...
  10. matlab2016b慢,Matlab 2016a/b中调用GPU速度巨慢的解决办法
  11. 怎样用计算机粉碎文件夹,怎么使用电脑文件管家粉碎功能
  12. Google Earth Engine(GEE)——使用Combining reducers计算均值和标准差
  13. Codeforces D. Berserk And Fireball(贪心)
  14. 计算机课件白板培训,交互式电子白板的使用培训(1)(2)ppt课件
  15. 《文言文复兴系列 5 人之道》(江湖一剑客)
  16. Xilinx zynqmp VCU使用
  17. android摇一摇跳转界面,android摇一摇随机变图片
  18. 题目---小Q定义了一种数列称为翻转数列: 给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4..., 每隔m个符号翻转一次, 最初符号为'-';。
  19. 中国好生意 经典论述:哈林是来主持的,刘欢是来开家长会的,那英是来唠嗑的,杨坤是来做宣传的,而......
  20. 7-2 拍7令四 (100 分)

热门文章

  1. 西安电子科技大学计算机考博,西安电子科技大学2017年拟录取申请考核博士生名.PDF...
  2. 机器学习学习笔记之——处理文本数据
  3. Java中的增强for
  4. Redis(十九)-Redis的数据库与键空间
  5. 清空SQL数据库日志|数据库开发|SQL|web开发|快速开发|中间件平台|方正飞鸿|ES2007|
  6. 5G学习笔记之RRC_IDLE/RRC_INACTIVE态UE功能概述
  7. 可汗学院公开课:统计学笔记——线性回归、卡方分布、方差分析
  8. Verilog中reg和wire的区别
  9. [书目20110904]谢孟媛英文文法
  10. XML文档类型定义---XML Schema结构