【教学类-35-01】20230529带笔画步骤图的描字(姓氏)(A4整张)

文章描述了一种使用UIbot自动化下载幼儿姓名笔画图片并生成相应Word模板的方法。通过程序处理,可以快速制作包含不同笔画数量汉字的描红练习,便于教学使用。同时,文章提到了教学展示和幼儿学习过程中遇到的情况,强调了信息填写、描字和笔画遗漏等问题。
摘要由CSDN通过智能技术生成

作品展示:

1、图片一行(0-6):文字简单,写3*4=12个字

2、图片2行(6-12):笔画适中,写3*3=9个字

3、图片3行(12-18):笔画适中,写3*3=9个字

 3、图片4行(18-24):笔画很多,写3*2=6个字

 笔画图片的来源

使用UIbot程序读取幼儿的学号、姓名中的每个字,然后从“比邻网”上下载每一个字的笔画图片。名称保存为“学号+字序+汉字+笔画数.png”

(人工下载速度太慢,也容易错,写了个UIbot程序,自动下载笔画图,名称为四类信息汇总)

WORD模板说明:

 0-6(1行图片)

6-12(2行图片)

 12-18(3行图片)

 18-24(4行图片)

 代码展示


 # -*- coding:utf-8 -*- 1 
'''
目的:幼儿名字姓氏笔画描画,有笔画步骤图
作者:阿夏
日期:2023年05月27日 21:54
'''

# 第一步:插入图片
import os
# sum=int(input('最大数字(6张、8张、10张、12张图片)\n'))
# size=float(input('图片尺寸(1.6、1.4、1.1、0.8)\n'))
# num=int(input('生成多少份(28人)\n'))
# Number=int(input('随机抽取几个图片(12个)\n'))
little=int(input('最小卡片(0、6、12,18)\n'))
big=int(input('最大卡片(6,12,18,24)\n'))
size=int(input('字体大小(120,140.120,140)\n'))

print('----------第1步:提取所有的名字步骤图png的路径------------')

path=[]
pathimg=[]
p=r"C:\Users\jg2yXRZ\OneDrive\桌面\下载幼儿姓氏笔画\中6姓名笔画总数"
# p=r'C:\Users\jg2yXRZ\OneDrive\桌面\下载幼儿姓氏笔画\演示名字图片'
# 过滤:只保留png结尾的图片
imgs=os.listdir(p)
for img in imgs:
    if img.endswith(".png"):
        # 0<=n<6:  #1行6个,实际5个  14张
        # 6<=n<12:#2行12个,实际12个  50张
        # 12<=n<18:#3行18个,实际17个   18张 合集82
        if str(img[3:5])=='01':
            # 提取“字序01”的汉字——也就是姓氏(这里只考虑单姓,不考虑司马一类的复姓)
            if little<=int(img[8:-4])<big:
                # 这里提取“单姓”的笔画数,不同的数量写入不同Word模板,让能够练习的汉字尽可能多。 
                path.append(p+'\\'+img)
                pathimg.append(img)
       
        else:
            pass
            # print('没有这样的字')
# 所有图片的路径
print(len(path))
print(path)
# print(pathimg)


# print('----------第2步:新建一个临时文件夹------------')
# # 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\下载幼儿姓氏笔画\零时Word')

print('----------第2-3步:指定单元格写入图片、写入灰色文字 ------------')

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 qn
import random

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.oxml.ns import qn

from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

name=[]
title=[]
for nn in range(len(path)):
    print(nn)    
    doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\下载幼儿姓氏笔画\幼儿名字笔画({}-{}).docx'.format(little,big))   

    table = doc.tables[0]          # 一页,写入一个名字

    pic=path[nn]     # 图片路径             
#            

    # 写入图片
    run=doc.tables[0].cell(1,0).paragraphs[0].add_run()        # 在第1个表格中第2行第1列单元格内插入步骤图
    run.add_picture('{}'.format(pic), width=Cm(19.3))            # 1.5的图片最多6个
    table.cell(1,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中  


#     # 写入图片顶端的基本信息

    title.clear()
    xh1=pathimg[nn][0:2]     # 学号 格式01(学号)
    xh2=str(int(xh1))   # 学号 格式1 
    print(xh2)

    zx1=pathimg[nn][3:5]    # 字序 格式01(名字第一个字)
    zx2=str(int(zx1))   # 字序 格式1 
    print(zx2)

    bhs1=pathimg[nn][8:-4]     # 笔画数 左侧第8个 到 右侧左数4个
    print(bhs1)

    title.append(xh2)
    title.append(zx2)
    title.append(bhs1)

    bg0=['00','01','02']#标题的单元格写入

    for tt in range(len(bg0)):   # 02
        
        pp0=int(bg0[tt][0:1])    
        qq0=int(bg0[tt][1:2])  
        # print(p) 
        # for i in range(len(bg)):              
        title1=title[tt]
        print(title)
        
        run=table.cell(pp0,qq0).paragraphs[0].add_run(title1)    # 在单元格0,0(第1行第1列)输入第0个图图案
        run.font.name = '楷体'#
        # run.font.size = Pt(46)  #输入字体大小默认30号 换行(一页一份大卡片
        run.font.size = Pt(36)  #输入字体大小默认30号 一行里(可以一页两份)
        run.font.bold= True  #是否加粗
        run.font.color.rgb = RGBColor(230,230,230) #数字小,颜色深0-255
        # paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距
    
        r = run._element
        r.rPr.rFonts.set(qn('w:eastAsia'), '楷体')#将输入语句中的中文部分字体变为华文行楷
        table.cell(pp0,qq0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中 

    # 写入图片上的汉字2*3格子灰色

    # 单元格位置2*2格
    bg=[]
    for x in range(2,4):        # 2行
        for y in range(0,3):    # 2列
            ww='{}{}'.format('%02d'%x,'%02d'%y)
            bg.append(ww)
    print(bg)   

    # ['00', '01', '02', '10', '11', '12', '20', '21', '22', '30', '31', '32']
    for t in range(len(bg)):   # 02
        
        pp=int(bg[t][0:2])    
        qq=int(bg[t][2:4])  
        # print(p) 
        # for i in range(len(bg)):              
        name=pathimg[nn][6]
        print(name)
        

      
            
        # 写入序号和生肖名称
        run=table.cell(pp,qq).paragraphs[0].add_run(name)    # 在单元格0,0(第1行第1列)输入第0个图图案
        run.font.name = '楷体'#
        # run.font.size = Pt(46)  #输入字体大小默认30号 换行(一页一份大卡片
        run.font.size = Pt(size)  #输入字体大小默认30号 一行里(可以一页两份)
        # run.font.bold= True  #是否加粗
        run.font.color.rgb = RGBColor(230,230,230) #数字小,颜色深0-255
        # run.paragraph_format.line_spacing = Pt(100) #数字段间距
    
        r = run._element
        r.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'%nn))   
    
    from docx2pdf import convert

    # docx 文件另存为PDF文件
    inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/下载幼儿姓氏笔画/零时Word/{}.docx".format('%02d'%nn)  # 要转换的文件:已存在
    outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/下载幼儿姓氏笔画/零时Word/{}.pdf".format('%02d'%nn)  # 要生成的文件:不存在
    # 先创建 不存在的 文件
    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/桌面/下载幼儿姓氏笔画/(打印合集)自己写3个 中6姓名名笔画字帖(28人共{}张).pdf".format(int(len(path))))
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/下载幼儿姓氏笔画/(打印合集)姓名笔画演示版字帖(姓氏{}-{}整数共{}张).pdf".format(little,big,int(len(path))))
file_merger.close()
# doc.Close()

# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/下载幼儿姓氏笔画/零时Word') #递归删除文件夹,即:删除非空文件夹

终端运行

 

同样的方法,再次运行,输入第2组数据

同样的方法,再次运行,输入第3组数据

 同样的方法,再次运行,输入第4组数据

 

 (目前姓氏最多3行12-18,我凑了一个18-24的姓氏,凑满了4种类型,还有5

运行四次,输入不同的值,调用不同的模板,得到撑满格的“带笔画步骤图”的描字帖。

目前打印结果显示

幼儿名字中

1-5笔(1行)的有3个名字

6-11笔(2行)的有23张

12-17笔(3行)的有2张

教学展示:

时间:2023年6月21日 8:30-8:50

班级:中6

人数:26人


材料准备:

一个名字一张A4竖版

 学习过程:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 学习过程分析:

1、需求激发

教师:我准备了你们的名字字帖,本来想等中8班的5位男孩(分流生)来了,再一起练字的。但是他们班关班了,我们暂时还见不到,今天就开始练名字贴吧,你们想不想练练自己的名字呢?

幼儿:想!

教师:中6班的孩子都会写自己的学号了,而且都写对了(没有镜像数字),你们真棒!再过两个月,你们就是大班哥哥姐姐了,到了大班,我们不仅要写学号数字,还要会写自己的名字!

幼儿A:我会写名字,

幼儿B:我也会

幼儿C:我会写第一个字!

幼儿D:我不会写!

教师:目前老师知道有6位女孩会写自己的名字  3月我刚到你们班,就看到QT会写自己名字,然后是男孩HHM、后来4月份WBX、QMX,最近老师看到MBL、CTN也会写了!(幼儿EFG插嘴:我们会写一个字!)对,小G、两位L 同学、小J,你们会写“姓”或者“名字”中的一个字(相对最容易写的汉字)其他小朋友,也要加油了。今天我们就来试试写一个名字。

拿出字帖展示:

2、分发学具——掌握学具数量

教师,前几天已经给你们认过每个字的笔画了!请问你的名字有几个字?

幼儿们:3个字!

教师:对,名字是3个子的举手!名字只有2个字的举手。

幼儿分别举手。

教师:OK,都对了,等会儿,你们要等拿到3张名字或者2个名字后,才可以去拿记号笔或铅笔哦

……因为字帖是按行数打印的,所以虽然是按学号发放,但没有人不一定一次性拿全。幼儿等候。

教师发完后就把没来的多余的纸放到钢琴上,这时26号女孩走过来说:“老师,我只有一张纸,我有三个名字!”

我一看,哎呀,果然后面26、27、28的部分名字没有发放

“谢谢你提示,是我忘记了!对不起!”

3、书写作品扫描(姓氏)

 

 

 

 

 

 

 

 

 

 

 

 总结性分析:

1,信息填写:半数幼儿描了顶部的信息(学号、字序、笔画数),200的RGB下,灰色颜色很浅。

2、95%的幼儿“画”名字。幼儿并没有按照笔画序的写字,

(1)灰色描字帖:以绘画形式把每个灰色字,描满,字形结构相对完善。

(2)自主书写:幼儿以临摹自己的名字时,字体会放大、缩小、变形、少笔画等。但是每位孩子都在教师提示下,在同伴的督促下,努力画出了自己的名字,学习品质佳

3、笔画遗漏:有时候幼儿描画会有笔画遗漏(灰色笔画看不清楚、家里不练习名字,不熟悉笔画)

认识自己的名字,到画名字,到书写名字……这是一个漫长的过程,孩子们,大班继续加油吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值