【教学类-15-05】20221207《八款字体的描字帖-2*4格》(中班大班)
创始人
2024-03-25 01:53:17
0

 成品样式:

80号字(适应2-3个名字的大小)

 68号字(适应4个名字大小(2-3个名字也可以用,字会很小))

 

 打印样式:

 

  

 背景需求:

前期进行多次的Python学具教学活动,对中3班、大1班幼儿书写学号和名字书写的情况评估:

1、中3班:平均25位幼儿,其中3位幼儿会写名字和学号,1位不会写学号(24),3位幼儿学号笔画不规范、2位幼儿学号长期镜像数字

2、大1班:平均25位幼儿,24位幼儿能正确书写学号,1位幼儿不会写学号(但会写名字),84%幼儿会写名字,有6位幼儿不能自主默写名字(有参考的话可以描摹)

由此可见:无论中班(要求会写学号)还是大班(要求会写学号和名字),幼儿对于“学号”“名字”的书写的水平差异两极化。

学号、名字需要持续性、强化性练习,才能形成肌肉记忆。

为了让幼儿对描字产生一定的兴趣,我想用不同字体来打印幼儿的名字,不同的字体外形,一定程度让幼儿产生新奇感觉,从而进行描摹

word表格设置

 竖版,页边距:上下左右0.7CM

 

 每个格子里面的字体大小

 只有一行,固定值1,不能变成两页

表格的边框设置(中间要虚线)

EXCLE设置:

 表格放在第一个

代码发布:

第1款:常用(生成2-3个名字的最佳字体大小:80)


'''
作者:阿夏
时间:2022年12月7日
名称:中班学号姓名描字帖,8个不同字体的学号名字,做成小本子2-3个名字)
'''import xlwt
import xlrd
import os
import random
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块import os,time
import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor# banji=input('请输入班级(大1)\n')print('----------第1步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word')
# doc= docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字贴\打印合集描字贴.docx")# 新建Wordwb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\学生名单.xlsx") #打开文件并返回一个工作蒲对象。open_workbook可以点进去看看函数里面的参数的含义之类的,很详细,英语不好的可以百度翻译,翻译出来的结果差不多。
sheet=wb.sheet_by_index(0)   #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
col1=sheet.col_values(0)# 学号
col2=sheet.col_values(1)# 名字
num=len(col1)-1  # 第一列去掉第一行ls=[]
# 生成 基本组:“学号+名字“
for i in range(1,len(col1)):# for d in range(8):name='{}\n{}'.format ('%02d'%int(col1[i]),col2[i])     #吧学号和名字拼在一起, 01张三      ls.append(name)    # 生成第一行信息['01张三 ],正好摆一行  
print(ls)# 32个名字
# ['01\n张 三', '06\n李四光', '13\n王者荣耀', '29\n赵匡胤']# 单元格坐标
#  确定8*4表格的表格单元格坐标(如第1行第1格是0,0 ,第2行第3格是(1,2)   
bg=[]
for  x in range(0,4):    # 行for y in range(0,2):        # 列bg.append('{}{}'.format(x,y))
print(bg)  
# ['00', '01', '10', '11', '20', '21', '30', '31']font=['黑体','宋体','楷体','隶书','华文新魏','华文彩云','方正姚体','幼圆']# 8种字体
# print(font[0])for n in range(0,num):    # 一共多少份doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\不同字体名字本子.docx")table = doc.tables[0]          # 一共有9个表格for t in range(0,len(font)): # 8种字体     pp=int(bg[t][0])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字qq=int(bg[t][1])f=font[t]        # 字体格式k=ls[n]               # 从4名字里提取名字print(pp,qq,k)run=table.cell(pp,qq).paragraphs[0].add_run(k)    # 在单元格0,0(第1行第1列)输入第0个名字run.font.name = f  #输入时不同字体run.font.size = Pt(80)  #输入字体大小默认80号(适合2-3个名字)run.font.color.rgb = RGBColor(200,200,200) #设置颜色10%黑色=深灰r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), f )#将输入语句中的中文部分字体变为华文行楷table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中       doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx'.format('%02d'%n))#保存为XX学号的零时wordfrom docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx".format('%02d'%n)# 要转换的文件:已存在outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.pdf".format('%02d'%n)  # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile,'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)from docx2pdf import convertprint('----------第4步:把都有PDF合并为一个打印用PDF------------')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/桌面/描字帖/(打印合集)大班A整页描字帖2乘5加表格-4名字-({}人).pdf".format(num))
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/(打印合集)中3班8个不同字体字帖2-3名字({}人).pdf".format(num))
file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word') #递归删除文件夹,即:删除非空文件夹

第2款:不常用(生成4个名字的最佳字体大小:68)

'''作者:阿夏
时间:2022年12月7日
名称:中班学号姓名描字帖,8个不同字体的学号名字,做成小本子4个名字)'''import xlwt
import xlrd
import os
import random
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块import os,time
import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor# banji=input('请输入班级(大1)\n')print('----------第1步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word')
# doc= docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字贴\打印合集描字贴.docx")# 新建Wordwb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\学生名单.xlsx") #打开文件并返回一个工作蒲对象。open_workbook可以点进去看看函数里面的参数的含义之类的,很详细,英语不好的可以百度翻译,翻译出来的结果差不多。
sheet=wb.sheet_by_index(0)   #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
col1=sheet.col_values(0)# 学号
col2=sheet.col_values(1)# 名字
num=len(col1)-1  # 第一列去掉第一行ls=[]
# 生成 基本组:“学号+名字“
for i in range(1,len(col1)):# for d in range(8):name='{}\n{}'.format ('%02d'%int(col1[i]),col2[i])     #吧学号和名字拼在一起, 01张三      ls.append(name)    # 生成第一行信息['01张三 ],正好摆一行  
print(ls)# 32个名字
# ['01\n张 三', '06\n李四光', '13\n王者荣耀', '29\n赵匡胤']# 单元格坐标
#  确定8*4表格的表格单元格坐标(如第1行第1格是0,0 ,第2行第3格是(1,2)   
bg=[]
for  x in range(0,4):    # 4行for y in range(0,2):        # 2列bg.append('{}{}'.format(x,y))
print(bg)  
# ['00', '01', '10', '11', '20', '21', '30', '31']font=['黑体','宋体','楷体','隶书','华文新魏','华文彩云','方正姚体','幼圆']# 8种字体
# print(font[0])for n in range(0,num):    # 一共多少份doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\不同字体名字本子.docx")table = doc.tables[0]          # 一共有1个表格for t in range(0,len(font)): # 8种字体     pp=int(bg[t][0])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字qq=int(bg[t][1])f=font[t]        # 字体格式k=ls[n]               # 从4个名字里依次提取名字print(pp,qq,k)run=table.cell(pp,qq).paragraphs[0].add_run(k)    # 在单元格0,0(第1行第1列)输入第0个名字run.font.name = f  #输入时不同字体run.font.size = Pt(68)  #字体大小(适合4个名字)run.font.color.rgb = RGBColor(200,200,200) #设置颜色10%黑色=深灰r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), f )#将输入语句中的中文部分字体变为华文行楷table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中       doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx'.format('%02d'%n))#保存为XX学号的零时wordfrom docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx".format('%02d'%n)# 要转换的文件:已存在outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.pdf".format('%02d'%n)  # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile,'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)from docx2pdf import convertprint('----------第4步:把都有PDF合并为一个打印用PDF------------')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/桌面/描字帖/(打印合集)大班A整页描字帖2乘5加表格-4名字-({}人).pdf".format(num))
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/(打印合集)中3班8个不同字体字帖4名字({}人).pdf".format(num))
file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word') #递归删除文件夹,即:删除非空文件夹

重点说明:

 

 重点:把8种字体做成列表,依次抽取不同字体,写入不同的单元格

学具展示及制作:

(1)a4打印+剪5刀

 (2)四张叠起来--中间对折

 (3)订书机装订

 (4)装饰条(纸条提手)+描字

 感悟:

字体的变化。可以让单一重复的名字变得更多元。由此可以看到,格式里面的字体大小、颜色、字体,都可以做成列表引用,一次性生成更多的样式。

 于是我把两套代码合并在一起,运行一次,就能够生成两份PDF(一份是80号字2个3个名字、一份是68号字4个名字),打印时,教师选择选择相应的页面打印。


'''
作者:阿夏
时间:2022年12月7日
名称:中班学号姓名描字帖,8个不同字体的学号名字,做成小本子3字一套,4字一套)
'''import xlwt
import xlrd
import os
import random
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块import os,time
import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorwb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\学生名单.xlsx") #打开文件并返回一个工作蒲对象。open_workbook可以点进去看看函数里面的参数的含义之类的,很详细,英语不好的可以百度翻译,翻译出来的结果差不多。
sheet=wb.sheet_by_index(0)   #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
col1=sheet.col_values(0)# 学号
col2=sheet.col_values(1)# 名字
num=len(col1)-1  # 第一列去掉第一行ls=[]
# 生成 基本组:“学号+名字“
for i in range(1,len(col1)):# for d in range(8):name='{}\n{}'.format ('%02d'%int(col1[i]),col2[i])     #吧学号和名字拼在一起, 01张三      ls.append(name)    # 生成第一行信息['01张三 ],正好摆一行  
print(ls)# 32个名字
# ['01\n张 三', '06\n李四光', '13\n王者荣耀', '29\n赵匡胤']# 单元格坐标
#  确定8*4表格的表格单元格坐标(如第1行第1格是0,0 ,第2行第3格是(1,2)   
bg=[]
for  x in range(0,4):    # 行for y in range(0,2):        # 列bg.append('{}{}'.format(x,y))
print(bg)  
# ['00', '01', '10', '11', '20', '21', '30', '31']font=['黑体','宋体','楷体','隶书','华文新魏','华文彩云','方正姚体','幼圆']# 8种字体
# print(font[0])
size=[80,68]for s in range(0,len(size)):print('----------第1步:新建一个临时文件夹------------')# 新建一个”装N份word和PDF“的文件夹os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word')# doc= docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字贴\打印合集描字贴.docx")# 新建Wordfor n in range(0,num):    # 一共多少份doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\不同字体名字本子.docx")table = doc.tables[0]          # 一共有9个表格for t in range(0,len(font)): # 8种字体     pp=int(bg[t][0])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字qq=int(bg[t][1])f=font[t]        # 字体格式k=ls[n]               # 从4名字里提取名字\ss=size[s]print(pp,qq,k)run=table.cell(pp,qq).paragraphs[0].add_run(k)    # 在单元格0,0(第1行第1列)输入第0个名字run.font.name = f  #输入时不同字体run.font.size = Pt(ss)  #输入字体大小80或68号run.font.color.rgb = RGBColor(200,200,200) #设置颜色10%黑色=深灰r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), f )#将输入语句中的中文部分字体变为华文行楷table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中       doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx'.format('%02d'%n))#保存为XX学号的零时wordfrom docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx".format('%02d'%n)# 要转换的文件:已存在outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.pdf".format('%02d'%n)  # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile,'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)from docx2pdf import convertprint('----------第4步:把都有PDF合并为一个打印用PDF------------')import osfrom PyPDF2 import PdfFileMergertarget_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/桌面/描字帖/(打印合集)大班A整页描字帖2乘5加表格-4名字-({}人).pdf".format(num))file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/(打印合集)中3班8个不同字体字帖({}号字{}人).pdf".format(size[s],num))file_merger.close()# doc.Close()# # print('----------第5步:删除临时文件夹------------')    import shutilshutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word') #递归删除文件夹,即:删除非空文件夹`

 重点说明: 

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...