【教学类-35-07】17号的字帖(二)班级字帖“大4”(A4竖版1份)

作品展示

背景需求:

大4班17号孩子练习数字书写,上一次是“17”号,这次是大“4”。

【教学类-35-05】17号的学号字帖(A4竖版1份)-CSDN博客文章浏览阅读440次,点赞6次,收藏7次。【教学类-35-05】17号的学号字帖(A4竖版1份)https://blog.csdn.net/reasonsummer/article/details/134888067

WORD模板:见上面的链接

代码展示:


'''
作者:阿夏
时间:20231227
名称:大4班17号的描字帖——大4 练习 数字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# 需要几行已有文字
nn=8
# int(input('一共几行(8行、其中4行是两个数字,4行是1组数字)\n'))
mm=6
# int(input('一共几列(6列)\n'))
kk=int(input('需要空几行(让幼儿自由书写用(最少0行(全是描红字),最多4行(整页空白自己写)\n'))
# s=int(input('请输入学号(17)\n'))
s='4'# 分开的学号
w=int((nn/2-kk)*mm) # 8行的一半=4行,4行中的3行有数字,1行无数字
kg='' # 空格
# 有学号的部分
list1=[]
for a1 in range(0,w):if len(s)==1:        # 如果学号是1位数for s1 in range(2):list1.append(s[0])if len(s)==2:    # 如果学号是2位数for s2 in range(len(s)):list1.append(s[s2])
# 空行部分让幼儿自己填写
for c in range(2):for b1 in range(kk*mm):list1.append(kg)
print(list1)
print(len(list1))
# 48# 有学号的部分
list2=[]
for a2 in range(0,w):# r='大'list2.append(s)# 空行部分让幼儿自己填写
for b2 in range(kk*mm):list2.append(kg)
print(list2)print(len(list2))
# 24# 合并的学号
list=list1+list2
print(list)
print(len(list))
# 48+24=72# 制作所有单元格的数字
# 前4行的坐标
bg1=[]
for x1 in range(1,int(nn/2)+1):    # 8/2=4行 第一行是标题,所以从索引1(第2行开始)for y1 in range(0,mm*2):        #6列*2  数字拆开的2份,所以是12格子c1='{}{}'.format('%02d'%x1,'%02d'%y1)bg1.append(c1)
print(bg1)
print(len(bg1))# 后4行的坐标
bg2=[]
for x2 in range(1+int(nn/2),nn+1):    # 从第5行开始,到第8行+1for y2 in range(0,mm*2,2):        #6列*2  0-12 之间,所有的0,2,4,6坐标c2='{}{}'.format('%02d'%x2,'%02d'%y2)bg2.append(c2)
print(bg2)
print(len(bg2))# 一页所有的坐标
bg=bg1+bg2
print(bg)
print(len(bg))# 标题坐标
bt='班级是:大{} {} {} {}'.format(s,s,s,s)
zb='0000'# 插入标题的坐标和内容
bg.insert(0,zb)
list.insert(0,bt)
print(len(bg))
print(len(list))print('----------第1步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
dir_name=r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\17号的数字练字帖\零时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(1):    # 一共多少份doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\17号的数字练字帖\17号的学号字帖.docx")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=list[n][p]               # 从4名字里提取名字\pp=int(bg[p][0:2])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字qq=int(bg[p][2:4]) # f=font[t]        # 字体格式k=list[p]               # 只有一个,所以不要nprint(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(61)  #输入字体大小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\桌面\描字帖\17号的数字练字帖\零时Word\{}.docx'.format('%02d'%n))#保存为XX学号的零时wordtime.sleep(2)from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\17号的数字练字帖\零时Word\{}.docx".format('%02d'%n)# 要转换的文件:已存在outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\17号的数字练字帖\零时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/桌面/描字帖/17号的数字练字帖/零时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/桌面/描字帖/17号的数字练字帖/(打印合集)17号的班级大4练字帖({}份).pdf".format(int(n+1)))
file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/17号的数字练字帖/零时Word') #递归删除文件夹,即:删除非空文件夹`

终端输入:

作品展示:

4的笔画是两笔,口述怕17号同学记不住,所以标题栏上多写了3个4,准备打印后,用记号笔画出笔画顺序。提示幼儿正确的书写方法

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

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

相关文章

Vue2从源码角度来回答一些常见的问题

1.请说一下Vue2响应式数据的理解(先知道基本的问题在哪里,源码的角度来回答,用的时候会有哪些问题) 可以监控一个数据的修改和获取操作。针对对象格式会给每个对象的属性进行劫持 Object.defineProperty 源码层面 initData ->…

在香橙派5 Plus上搭建Gitlab

作为一个码农,一定知道Github这个最大的成人交友网站。但是Github在国内不稳定,经常拉不下来代码,也就无法推送代码。为了更方便的使用,顺便更好地了解Git工具,决定在香橙派5 Plus上搭建一个属于自己的代码仓库。 1、…

k8s的二进制部署: 源码包部署-----node节点部署

服务器IP软件包k8s--master0120.0.0.61kube-aplserver,kube-controer-manager,kube-scheduler,etcdk8s--master0220.0.0.62kube-controer-manager,kube-schedulernode节点0120.0.0.62kubelet,kube-proxy,et…

MongoDB 根据 _id 获取记录的创建时间并回填记录中

1、单条更新 MongoDB 集合 test1,有字段 _id,createTime,createTimeStr,name字段 , 查询createTime不为空的,根据 _id 生成该条记录的创建时间时间戳并填写到字段 createTime 字段中 ,并打印时间戳…

IDEA快捷使用-快捷键模板

常用快捷模板 .方法的使用,例如输入 arr.null 回车 其他常规方法直接输入回车,不需要对象通过.来调用。 创建变量 psfi 创建公开int类型常量 public static final int prsf 创建 私有静态变量 private static final psf 创建公开静态变量 public static final创…

【问题系列】同时管理多版本node方案

目录 一、问题描述 二、解决方案 三、详细步骤 3.1 安装NVM: 3.2 运行NVM 3.3 安装Node.js 3.4 切换Node.js版本 3.5 验证安装: 四、拓展 4.1 设置默认 Node.js 版本 4.2 列出已安装的 Node.js 版本 4.3 其他命令介绍 一、问题描述 需要运行…

C#实现串口通讯

1、官网下载Launch Virtual Serial Port Driver Virtual Serial Port Driver - create and emulate virtual COM port,开个虚拟串口: Pair模式(一对,成双成对的意思,就是COM1向COM2传或者COM2向COM1,好比两台机器的CO…

软件工程期末复习

● 用例:借书 ●参与者:管理员,借阅者 ●操作流: ① 管理员进入图书借阅界面,用例开始。 ② 系统要求输入借阅者的借书证编码。 ③系统检验借书证编码,如果正确,则显示借阅者的信息。 A1:借书证编码有错。 A2: 如果该借…

巨量引擎大众消费发布“十佳好课”榜单:涵盖五大行业 助力商家进阶

2023,中国消费市场出现温和复苏态势,在不确定市场环境下,大众消费商家如何用好科学营销手段,实现确定性增长?如何紧跟平台趋势,把握生意增长先机? 为了给商家持续提供前沿适配的营销方法、解决实际生意卡点&#xff…

MYSQL一一函数一一字符串函数

嘿嘿大家好我回来啦,今天我们要学习的是MYSQL中的函数,函数呢我们又分为字符串函数,数值函数,日期函数,流程函数来介绍,今天重点介绍字符串函数(从小题到案例方便你们更加深入的理解) 函数指的是一段可以直…

软件测试面试题合集,金三银四offer稳了。。。

前言 前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些…

操作系统期末复习题

进程同步(P、V操作) 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女…

nginx源码分析-1

使用gdb查看函数上下文: gdb attach nginx的work线程 监听端口状态时: 断点打在ngx_http_process_request 并通过浏览器触发请求时:

剑指offer题解合集——Week2day2

文章目录 剑指offerWeek2周二:剪绳子AC代码思路: 剑指offerWeek2 周二:剪绳子 题目链接:剪绳子 给你一根长度为 n绳子,请把绳子剪成 m段(m、n都是整数,2≤n≤58 并且 m≥2)。每段…

Unity-序列化和反序列化

序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程。序列化最主要的用途就是传递对象和保存对象。 在Unity中保存和加载、prefab、scene、Inspector窗口、实例化预制体等都使用了序列化与反序列化。 1 可序列化类型 1> 自定义的具有Serial…

简易考试系统第1关:简易考试系统之用户注册

任务描述 本关任务:实现简易考试系统中新用户注册的功能。 编程要求 仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中实现简易考试系统中新用户注册的功能,具体要求如下: User.java 提供了用户的基本信息&#xff0…

在linux下添加中文输入

一共三个步骤,过程中有参考Linux最详细且好用的安装中文输入法教程 - 知乎 1. 打开左侧的software下载安装Fcitx 2. 点击左下侧搜索language support,把keyboard input method system改成Fcitx 4 3. input source把中文放在最前面 成功&#xff0…

基于openGauss5.0.0全密态数据库等值查询小案例

基于openGauss5.0.0全密态数据库等值查询小案例 一、全密态数据库简介二、环境说明三、测试步骤四、使用约束 一、全密态数据库简介 价值体现: 密态数据库意在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传…

Web 3.0 是什么

第 1 章 明晰Web 3.0 从本章开始,就进入了本书的第一篇章,入门Web3.0,在第一篇章中将会让读者对Web3.0有一个整体的认知,为学习后面的章节打下基础。 在本章中,主要介绍的是Web的发展历史,包涵Web1.0、Web2.0、Web3.0的发展过程,以及资本为什么需要入场Web3.0、Web3.0…

遗传算法的应用——求解一元函数的极值

遗传算法的应用——求解一元函数的极值 1 基本概念2 预备知识3.1 模拟二进制转化为十进制的方法3.2 轮盘赌选择算法 3 问题4 Matlab代码5 运行效果6 总结 1 基本概念 遗传算法(Genetic Algorithm,GA)是模拟生物在自然环境中遗传和进化过程从而形成的随机全局搜索和优化方法&am…