【教学类-35-02】20231207大班姓名描字帖:A4单面3*10个姓名,双面共60个名字

背景需求:

需求1——需要字帖

大4班班主任说:你能给我们班孩子做一套写名字的字帖吗?我想让他们练习写名字

我说:没问题。我找找已经有的样式给你看看,再打印。

打开电脑,我把曾经做的一套“大字贴”发给她看看样板。

需求2——限定内容和数量

班主任看了模板,提出需求:

1、不要学号、班级

2、每页20个姓名

我重新做了一个word模板,修改bg单元格的数字。嵌套数组的数量、把字号调到最大。

打印一份名字笔画最多的,把纸片拿给班主任看

班主任说ok 

但是看着PDF,我感觉2*10的格子,名字左右有空格较多,有点浪费。

需求3——尝试3列*10行=30个名字

由于班级所有孩子都2-3个名字,所以我试试做成3列

客户表示也行。

需求4:尝试正反两页共打印60个名字

于是我把单元格改成从2列变成3列,名字正好写入

可以打印了,一共要打印31份。

但是最近用废纸反面打印了很多加减法题,我手里已经没有废纸了。

只能用两面空白的纸,我有点心疼,

干脆A4两面都打印名字吧,让孩子多练习几次(一面30个名字,两面60个名字)

最终设计了两页3*20行的字帖模板

素材准备;

EXCEL

WORD素材

3列20行60字为例

如果是2列10行20字,3列10行30字,也是这样的参数,就是行列删除一些

代码展示:


'''
作者:阿夏
时间:20231207
名称:大4 60个名字(30一面,正反打印).py
'''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# 需要几行已有文字
nn=int(input('一共几行(20行、10行)\n'))
mm=int(input('一共几列(2列、3列)\n'))
# 空格数量wb= 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)# 名字
# col3=sheet.col_values(2)# 班级
num=len(col2)-1  # 第一列去掉第一行list=[]
# 生成 基本组:“名字“
for i in range(1,len(col2)):for d in range(nn*mm):        # 要几行b1=col2[i]    #姓名list.append(b1)print(list)# 60个名字bg=[]
for x in range(0,nn):    # 10行for y in range(0,mm):        # 2列c='{}{}'.format('%02d'%x,'%02d'%y)bg.append(c)
print(bg)
print(len(bg))listall=[]
for o in range(int(len(list)/(nn*mm))):d=list[o*nn*mm:o*nn*mm+nn*mm]listall.append(d)
print(listall)
print(len(listall))print('----------第1步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
dir_name=r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word'
if not os.path.exists(dir_name):os.mkdir(dir_name)# doc= docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字贴\打印合集描字贴.docx")# 新建Wordfor n in range(int(len(listall))):    # 一共多少份doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\20231207大四 {}个名字.docx".format(nn*mm))table = doc.tables[0] for p in range(0,len(bg)):               # 一共有9个表格pp=int(bg[p][0:2])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字qq=int(bg[p][2:4]) # f=font[t]        # 字体格式k=listall[n][p]               # 从4名字里提取名字\print(pp,qq,k)run=table.cell(pp,qq).paragraphs[0].add_run(k)    # 在单元格0,0(第1行第1列)输入第0个名字run.font.name = '黑体'  #输入时不同字体run.font.size = Pt(60)  #输入字体大小80或68号run.Bold=Truerun.font.color.rgb = RGBColor(200,200,200) #设置颜色10%黑色=深灰r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '黑体' )#将输入语句中的中文部分字体变为华文行楷table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx'.format('%02d'%n))#保存为XX学号的零时wordtime.sleep(2)from 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 PdfMerger
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 = PdfMerger()
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/桌面/描字帖/(打印合集)大4班名字60个({}份).pdf".format(len(col2)-1))
file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word') #递归删除文件夹,即:删除非空文件夹`

终端输入:

效果展示:

打印效果

双面的名字贴,可以描2次-4次哦

不能用记号笔,只能用铅笔或者荧光笔、水笔写。

感悟:

1、在大四班带班,所以知道这个班级一半孩子会默写自己的名字。

2、但是不会写的孩子,还是需要“画“名字。同时需要家长告诉孩子正确的笔画序,矫正书写顺序。。

这是我第2次收到同事对幼儿纸类学具的主动需求,希望有更多的老师能看到我的Python学具设计,结合自身需要提出要求。

3、这份学具也给我启发,想出一个“名片游戏”——中大班孩子们描30个名字,然后把纸片裁剪开来(用切纸机,剪起来不整齐,废纸多),然后在空白反面自己默写1-3个名字或者绘画图案,然后把这些纸片与同伴们交换,玩收集“名片”的游戏(包含学号和名字,来确定还缺那些卡片)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/207316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux系统化学习】进程地址空间 | 虚拟地址和物理地址的关系

个人主页点击直达:小白不是程序媛 Linux专栏:Linux系统化学习 代码仓库:Gitee 目录 虚拟地址和物理地址 页表 进程地址空间 进程地址空间存在的意义 虚拟地址和物理地址 我们在学习C/C的时候肯定都见过下面这张有关于内存分布的图片&a…

SQL Server 数据库,多表查询

4.2使用T-SQL实现多表查询 前面讲述过的所有查询都是基于单个数据库表的查询,如果一个查询需要对多个表进行操作, 就称为联接查询,联接查询的结果集或结果称为表之间的联接。 联接查询实际上是通过各个表之间共同列的关联性来查询数据的&…

微信小程序 bindtap 事件多参数传递

在微信小程序中,我们无法直接通过 bindtap"handleClick(1,2,3)" 的方式传递参数,而是需要通过自定义属性 data- 的方式进行传递,并在事件回调函数中通过 event.currentTarget.dataset 来获取这些参数。然而,这种传参方式…

速查!软考出成绩了

2023年11月软考成绩出来啦!大家赶紧查一下,各科都45分就是通过! 01 如何查成绩 1、打开“中国计算机技术职业资格网”,网址:https://www.ruankao.org.cn/ 2、点击↘的“成绩查询”按钮。 3、输入“手机号/证件号密码验…

船舶机电设备智能故障诊断系统

1 船舶电气设备故障诊断专家系统 体系结构 整个系统的体系结构采用浏览器/ 服务器 (B/ S) 三层体系结构 ( 如图 1 所示 )。B/S 模式是一种 以 Web 技术为基础的系统平台模式 。 把传统…

【GEE】时间序列多源遥感数据随机森林回归预测|反演|验证|散点图|完整代码

实验介绍 分类和回归之间的主要区别在于,在分类中,我们的预测目标是离散的类别,而在回归中,预测目标是连续的预测值。 本实验的研究区域位于佛蒙特州的埃塞克斯郡,使用训练数据来模拟土壤氧化还原深度,然…

有哪些值得分享的销售拓客技巧?

拓客对于销售的重要性 拓客(Toker)是一个商业上的名词,核心就是提高售前服务、市场推广的水平,从而挖掘出潜在客户的隐形需求(或称软需求)。 拓客的核心,其实就是提高售前服务、市场推广的水平…

如何部署自己的服务渲染页面为Pdf文档

前言 相信大家都觉得官方发布的文档生成模块https://docs.mendix.com/appstore/modules/document-generation/很有用,它能把Mendix页面像素级导出到Pdf文件中,这对于归档等业务非常有价值。但部署依赖公有云提供的渲染服务,而中国本土用户对…

初识人工智能,一文读懂过拟合欠拟合和模型压缩的知识文集(3)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

Backend - Dbeaver

目录 一、说明 二、下载并安装 (一)官网下载 (二)安装 三、使用 (一)操作步骤 (二)相关问题:无法加载驱动类oracle.jdbc.oracledriver 1. 新建驱动 2. 再重新连接数据库 …

PyTorch2.0环境搭建

一、安装python并配置环境变量 1、打开python官网,下载并安装 Welcome to Python.org 下载 寻找版本:推荐使用3.9版本,或其他表中显示为安全(security)的版本 安装:(略) 2、配置环…

数据增强改进,实现检测目标copypaste,增加目标数据量,提升精度

🗝️YOLOv8实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv8:我的专业笔记与技术总结   -- YOLOv8轻松上手, 适用技术小白,文章代码齐全,仅需 …

python圣诞树代码编程

以下是一个简单的Python圣诞树代码: def draw_tree(height): for i in range(height): print( * (height - i - 1) * * (2 * i 1)) print( * (height - 1) |)draw_tree(10) 这个函数会绘制一个等腰三角形,其中每一行的星号数量从1开…

【TiDB理论知识09】TiFlash

一 TiFlash架构 二 TiFlash 核心特性 TiFlash 主要有 异步复制、一致性、智能选择、计算加速 等几个核心特性。 1 异步复制 TiFlash 中的副本以特殊角色 (Raft Learner) 进行异步的数据复制,这表示当 TiFlash 节点宕机或者网络高延迟等状况发生时,Ti…

亿胜盈科ATR2037 无限射频前端低噪声放大器

亿胜盈科ATR2037 是一款应用于无线通信射频前端,工作频段为 0.7 到 6GHz 的超低噪声放大器。 ATR2037 低噪声放大器采用先进的 GaAs pHEMT 工艺设计和制作,ATR2037 低噪声放大器在整个工作频段内可以获得非常好的射频性能超低噪声系数。 亿胜盈科ATR203…

WGCLOUD v3.5.0 新增支持监测交换机的接口状态UP DOWN

WGCLOUD v3.5.0开始 可以监测交换机或SNMP设备的接口状态了,直接上图

如何给网页和代码做HTML加密?

​ 本篇文章给大家谈谈html混淆加密在线,以及HTML在线加密对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 如何给代码加密? 1、源代码加密软件推荐使用德人合科技的加密软件,是一套从源头上保障数据安全和使用安全的软…

vue2+datav可视化数据大屏(1)

开始 📓 最近打算出一个前端可视化数据大屏的系列专栏,这次将很全面的教大家设计可视化大屏,从开始到打包结束,其中,包括如何设计框架,如何封装axios,等等,本次使用的数据均为mock数…

spring boot项目如何自定义参数校验规则

spring boot项目对参数进行校验时,比如非空校验,可以直接用validation包里面自带的注解。但是对于一些复杂的参数校验,自带的校验规则无法满足要求,此时需要我们自定义参数校验规则。自定义校验规则和自带的规则实现方式一样&…

时域频域(学习记录1)

1 小伙伴们,今天让我们一起来聊聊Something about DATA 系列。我们先回顾一下本系列对NVH测试中的数据采集做的整体介绍: A 数据采集过程; B 硬件设备; C 数采软件; D ATOM中的数据采集; 接下来的几篇文章…