【教学类-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,一经查实,立即删除!

相关文章

测试:API接口测试

API接口测试 API接口测试是确保应用程序编程接口(API)在开发过程中正确实现并满足预定功能要求的过程。API是不同软件之间交流的桥梁,负责数据的传输、交换和控制。进行API测试的目的是验证API的功能、性能、安全性和兼容性。 API接口测试的…

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

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

SQL Server 数据库,多表查询

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

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

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

跨框架解决方案-Mitosis【Context】

Context Mitosis的context必须是: 在自己的文件中创建文件名必须以context.lite.ts结尾默认导出必须是一个返回context对象的函数 // simple.context.lite.ts import { createContext } from builder.io/mitosis;export default createContext({foo: bar,get foo…

速查!软考出成绩了

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

光伏储能IC

光伏储能IC 电子元器件百科 文章目录 光伏储能IC前言一、光伏储能IC是什么二、光伏储能IC的类别三、光伏储能IC的应用实例四、光伏储能IC的作用原理总结前言 光伏储能IC可以提高光伏发电和储能系统的效率和稳定性,同时提供智能化的管理和控制功能。它在光伏发电和储能领域具有…

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

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

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

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

Codeforces Round 851 (Div. 2 D:枚举+组合 Edp)

A - One and Two 相当于找第一个位置前后2的个数相同 #include<bits/stdc.h> using namespace std; const int N 1e610,mod998244353; #define int long long typedef long long LL; typedef pair<int, int> PII; const long long inf1e17; int n,m,k; int a[N]…

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

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

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

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

折半查找(数据结构实训)

题目&#xff1a; 标准输入输出 题目描述&#xff1a; 实现折半查找。要求查找给定的值在数据表中相应的存储位置。本题目假定输入元素均按非降序输入。 输入&#xff1a; 输入包含若干个测试用例&#xff0c;第一行为测试用例个数k。每个测试用例占3行&#xff0c;其中第一行为…

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

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

SQL存储过程和视图

1 存储过程 存储过程是事先编写好、存储在数据库中的一组SQL命令集合。用来完成对数据库的指定操作。 1.1 优缺点 优点&#xff1a; 1&#xff09;提高系统性能。创建时进行编译&#xff0c;随后存放在数据库服务器的过程高速缓存中&#xff0c;之后不需要再次执行分析和编…

uniapp app将base64保存到相册,uniapp app将文件流保存到相册

如果是文件流可以先转base64详情见>uniapp 显示文件流图片-CSDN博客 onDown(){let base64 this.qrcodeUrl ; // base64地址const bitmap new plus.nativeObj.Bitmap("test");bitmap.loadBase64Data(base64, function() {const url "_doc/" new Dat…

Backend - Dbeaver

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

PyTorch2.0环境搭建

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

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

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

python圣诞树代码编程

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