作品展示:
15*15CM手工纸 文本框12磅加粗。学号数字是段落写入,黑体270磅
背景需求
最近都在小班、中班、大班里做“Python学具测试”,由于都是陌生的孩子,上课时,我通常只能喊“白衣服的女孩”“花格子衣服的男孩”,大班孩子能根据我的目光,几秒后反应过来叫的是自己。而刚进入中班、小班的孩子,就完全不能回应我。
我想起前几年在另一个幼儿园借班上课,当时班主任熟门熟路拿出一堆挂牌,上面写着孩子的小名(两个字)——小楠、嘉嘉、平安、毛豆、乐乐。
于是我想做一套“学号挂牌”,如果有拍摄集体活动需求时,就让中班、大班孩子们佩戴挂牌,提升导入环节互动的效率。
设计思路:
1、挂牌大小确定——15*15CM彩色手工纸
幼儿挂牌要多大呢?为了便于剪切,我想到了15*15的手工纸。
优势:
(1)单份打印:15CM手工统一确定了挂牌的大小,便于打印和剪切,少点废纸,少点切割步骤
(2)看的清楚:集体活动中,大牌子便于老师能看到最后一排的孩子的学号。
(3)幼儿裁剪:让孩子每人剪1-2张的学号圆牌。
2、挂牌结构确定——正反都是数字,双面打印
考虑到幼儿好动,可能会玩挂牌,我想在手工纸两面都打印同一个学号。无论翻到那一面,都有学号可以提示我。
材料准备:
WORD准备:
代码设计
# '''
# 15*15正方形圆形挂牌(正反)
# 目的:公开课幼儿学号挂牌便于选人(圆形文本框,文字以段落输入形式 黑体270)
# 作者:阿夏
# 时间:2023年9月22日7:27
# '''
num=int(input('最大的学号数字(35)\n'))
# 班额说明,托班20 小班25 中班30 大班35,也就是各班人数最多35人,1-35号
print('----------第3步:随机抽取12张图片 ------------')
import docx
from docx import Document #用来建立一个word对象
from docx.shared import Pt,RGBColor#设置字体的颜色
from docx.oxml.ns import qn#设置字体
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT #设置对齐方式
from docx.shared import Pt #设置字体大小
import os,time
import docx
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
# # from docx.enum.text import WD_VERTICAL_ALIGNMENT
# from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT #用来设置单元格垂直对齐方式
from docx.oxml.ns import qn
from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor
print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:/Users/jg2yXRZ/OneDrive/桌面/圆形挂牌/零时Word')
for nn in range(1,num+1): # 读取图片的全路径 的数量 31张
for y in range(2):
z=str(nn)
print(z)
doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\圆形挂牌\圆形挂牌.docx')
paragraph=doc.add_paragraph(0)
paragraph.paragraph_format.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER #LEFT就是居左,可以替换成RIGHT右 CENTER居中
run=paragraph.add_run(z) #向段落中追加文字,段间距固定值70时,一行上可以有三个学号“学号+学号+学号”
run.bold=True #设置追加文字样式 设置 加粗
# run.font.italic=True #把字体改为斜体,这里不需要
run.font.size=Pt(270)#设置 字号大小 一行上可以有三个学号时,字号最大就是53
run.font.name = u"黑体" #设置 字体名称
run._element.rPr.rFonts.set(qn('w:eastAsia'),'黑体') #只设置中文字体 好像这段不管用
run.font.color.rgb=RGBColor(0,0,0) #颜色=灰色190,190,190,描红的底色要浅,打印机只能打印黑白,255,3,5=红色
# run.font.name='Arial' #只能设置英文名称
# paragraph.paragraph_format.line_spacing=Pt(70) #行距 设置固定值
paragraph.paragraph_format.line_spacing = 1 #行距 设置1倍 2倍
doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\圆形挂牌\零时Word\{}-{}.docx'.format('%02d'%nn,'%02d'%y))
from docx2pdf import convert
# docx 文件另存为PDF文件
inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/圆形挂牌/零时Word/{}-{}.docx".format('%02d'%nn,'%02d'%y) # 要转换的文件:已存在
outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/圆形挂牌/零时Word/{}-{}.pdf".format('%02d'%nn,'%02d'%y) # 要生成的文件:不存在
# 先创建 不存在的 文件
f1 = open(outputFile, 'w')
f1.close()
# 再转换往PDF中写入内容
convert(inputFile, outputFile)
print('----------第4步:把都有PDF合并为一个打印用PDF------------')
# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
import os
from PyPDF2 import PdfFileMerger
target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/圆形挂牌/零时Word'
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfFileMerger()
for pdf in pdf_lst:
print(pdf)
file_merger.append(pdf)
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/圆形挂牌/(打印合集)公开课圆形学号挂牌(正反)({}人共{}份).pdf".format(num,num))
file_merger.close()
# doc.Close()
# print('----------第5步:删除临时文件夹------------')
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/圆形挂牌/零时Word') #递归删除文件夹,即:删除非空文件夹
终端运行:
重点说明
1.单个学号生成2份
2.以段落文本写入(非单元格写入)
结果展示:
打印机设置(有些打印机无法改变纸张大小):
WPS打开PDF,WPS打印设置
双面打印过程
20230922手工纸15*15CM双面打印学号
打印15*15后,一定要把打印机首选 纸张大小改回A4。
作业展示:双面效果
周一请大班孩子去边,然后塑封,再裁剪。圆形挂牌。