> 文章列表 > 【教学类-32-01】十二生肖1.0版(绘画+手工+排序+分类+玩牌)(中班:偏科学-数)

【教学类-32-01】十二生肖1.0版(绘画+手工+排序+分类+玩牌)(中班:偏科学-数)

十二生肖教学卡片制作指南

有没有想过,用十二生肖图片代替枯燥的数字来教孩子?

今天教大家一招,告别单调的“1+1=2”,让孩子们在涂色、排序中感受传统文化!

问题来了:找图片麻烦吗?

不怕!Office PPT的图标库就是你的救命稻草,内置大量矢量图,大小一致,省去修图烦恼!

想知道如何用Python自动生成生肖卡片?

超简单!代码帮你随机抽取图片,制作排序题,还能一键生成PDF打印版!

还在犹豫什么?快试试,让你的课堂活起来!

【教学类-32-01】十二生肖1.0版(绘画+手工+排序+分类+玩牌)(中班:偏科学-数)

作品展示

背景需求——从数字到图片

最佳孩子们做Python纸类(数学)的频率比较高。但都是数字类(加减法、门牌号、火车箱、电话号码等)我想翻新花样,设计新的内容,就想到了水果图片动物图片。

百度图片找到的简笔画图片大小不统,还要修图(PNG)和调整大小,有点麻烦。而搜狗输入法、讯飞输入法里面的符号图形又比较单一,不满足我的需求。

解决方法:最近我发现安装的office PPT2013里面有一个图标的功能,内置大量矢量图(图片大小相等)

素材准备:

dai

1、图片准备

office PPT2013里面有一个图标的功能,内置大量矢量图(图片大小相等) 

PPt -插入-图表

输入水果:

(只有一个,不够用) 

输入动物(似乎看到了所有的十二生肖)

 龙(需要修图)

 把每个动物的图片另存为“XX.PNG"的样式

 

 2、word准备:

 

 

 3、代码展示:代码

'''
十二生肖1.0(一页2份 动物朝向右侧)
目的:
1、十二生肖涂色
2、十二生肖排序
作者:阿夏
时间:2023年4月15日)'''import osnum=int(input('生成多少份28人\\n'))
Number=int(input('随机抽取几个图片(12个)\\n'))print('----------第1步:提取所有的扑克牌的路径------------')path=[]
p=r"C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\十二生肖\\十二生肖图片(序号+生肖+右侧)"
# 过滤:只保留png结尾的图片
imgs=os.listdir(p)
for img in imgs:if img.endswith(".png"):path.append(p+'\\\\'+img)
# 所有图片的路径
print(path)
print(imgs)
# ['01鼠.png', '02牛.png', '03虎.png', '04兔.png', '05龙.png', '06蛇.png', '07马.png', '08羊.png', '09猴.png', '10鸡.png', '11狗.png', '12猪.png']# from PIL import Image 
# tp = Image.open(r'D:\\Desktop\\22.png') 
# tp.transpose(Image.FLIP_TOP_BOTTOM).save(r'D:\\Desktop\\220.png')  # 上下翻转# 再保存一个图片文件夹(图片左右翻转)
# from PIL import Image 
# tp = Image.open(r'D:\\Desktop\\22.png') 
# tp.transpose(Image.FLIP_LEFT_RIGHT).save(r'D:\\Desktop\\221.png')  # 左右翻转print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\十二生肖\\零时Word')print('----------第3步:随机抽取12张图片 ------------')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 randomimport 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 qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorfor nn in range(0,int(num/2)):    doc = Document(r'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\十二生肖\\十二生肖(模板).docx')# 制作列表    for z in range(2):        # 5行组合循环2次 每页两张表figures=random.sample(path,Number)    # 12个图片随机写入12个           # 单元格位置3*4格bg=[]for x in range(0,4):        # 4行for y in range(0,3):    # 3列ww='{}{}'.format(x,y)bg.append(ww)print(bg)   # ['00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01']table = doc.tables[z]          # 4567(8)行for t in range(len(bg)):   # 02pp=int(bg[t][0:1])    qq=int(bg[t][1:2])  # print(p)               k=figures[t] k2= figures[t][-7:-4]print(pp,qq,k)print(k2)  # 写入图片run=doc.tables[z].cell(pp,qq).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗run.add_picture('{}'.format(k),width=Cm(3),height=Cm(3))table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #居中  # 写入序号和生肖名称run=table.cell(pp,qq).paragraphs[0].add_run(k2)    # 在单元格0,0(第1行第1列)输入第0个图图案run.font.name = '黑体'#输入时默认华文彩云字体# run.font.size = Pt(46)  #输入字体大小默认30号 换行(一页一份大卡片run.font.size = Pt(29)  #输入字体大小默认30号 一行里(可以一页两份)run.font.bold= True  #是否加粗run.font.color.rgb = RGBColor(200,200,200) #数字小,颜色深0-255# paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距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'%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/桌面/十二生肖/(打印合集)十二生肖({}人共{}份).pdf".format(num,int(num/2)))
file_merger.close()
# doc.Close()# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/十二生肖/零时Word') #递归删除文件夹,即:删除非空文件夹

4、代码重点:

 

 

 终端运行