作品展示:
背景需求:
最近在做小课题结题资料,看到之前做过的几个学具项目,其中的空心图案拼贴画很不错(中班上学期做过)想到中6班的孩子还没有玩过,就想再打印一套学具(中班下学期做)。再次做就把代码优化一下(段落写入文字图形 改成 单元格写入文字图形)
材料准备:
WORD表格
代码展示
'''
作者:阿夏
时间:2023年10月25日
名称:中班学具:8个随机空心图案拼贴-不重复图案)单元格,6个图形拼贴
'''
# print('----------第1步:制作docx里面的数字 把100个数字分成10*10矩阵导入xls S形迷宫 1、3、5、7是升序排列,2,4,6,8是降序排列------------')
import xlwt
import os
from docx import Document
list=['○','◇','□','△','▽','☆','☼','☺','☾','◎']# 搜狗拼音符号里面的空心的常用图形10个
num=int(input('生成多少份(28份)\n'))
Number=int(input('每页制作多少个(6个)\n'))
print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\随机几何形模板\零时Word')
print('----------第3步:随机抽取8个不重复的图案 ------------')
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 qn
figure=[]
figurea=[]
for nn in range(0,int(num/2)): #28/2 0-14
figure.clear()
doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\随机几何形模板\随机几何形模板(单元格).docx')# 打开带docx模板(这个模板有页脚的页码,阿夏认为页码是必须的)
# 随机抽取8个不重复空心图案(#CSDN博主「孟意昶」 原文链接:https://blog.csdn.net/weixin_44999258/article/details/125163277)
for aa in range(2):
shuffle = random.sample(list, Number) # 随机抽取8个不重复空心图案
figure.append(shuffle)
print(figure) # ['◇','□','△','▽','☆','☼','☺','☾','◎']
for z in range(2): # 5行组合循环2次 每页两张表
table = doc.tables[z]
# 单元格位置3*3格
bg=[]
# 前1+3+1行不要写入 从4动
for x in range(0,3): # 3行 索引1行2行3行
for y in range(0,2): # 3列 索引0列1列2列
ww='{}{}'.format(x,y)
bg.append(ww)
print(bg)
for t in range(len(bg)): # 12
pp=int(bg[t][0:1])
qq=int(bg[t][1:2])
# print(p) 22
k=figure[z][t]
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(46) #输入字体大小默认30号 换行(一页一份大卡片
run.font.size = Pt(129) #输入字体大小默认30号 一行里(可以一页两份)
# run.font.bold= False #是否加粗
run.font.bold= True #是否加粗
run.font.color.rgb = RGBColor(170,170,170) #数字小,颜色深0-255
# paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距
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乘2)({}人共{}份).pdf".format(num,int(num/2)))
file_merger.close()
# doc.Close()
# print('----------第5步:删除临时文件夹------------')
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/随机几何形模板/零时Word') #递归删除文件夹,即:删除非空文件夹
终端运行:
结果展示:
材料打印:
教学过程:
时间:2023年6月5日 8:30-8:50
班级:中6班
人数:24人
教学思路:
本来准备做剪切和图形拼贴,但是考虑到幼儿的能力差异
1、不是每位孩子都能够剪出特种图形,如:五角星、太阳,它们的的外形不是直线或者圆弧)。
2、也不是每位孩子都能够想象出人物造型并黏贴。
所以,降低难度,询问孩子们:对这些图形,你有什么玩法呢?
孩子们介绍的主要“玩法”如下:
1、描边
2、涂色(在图案里面涂色、在图形的外面涂色(正方形框里,反相选择范围涂色)
3、图形剪下来当贴纸。
4、照着图案在空的地方画一摸一样的图案。
幼儿也按照这些思路进行了适合自己的剪贴画活动
描边勾边
临摹图形
剪直线方块
直接剪图形
对称镂空剪
先剪成方块,再剪修剪细节
图形内部涂色
带剧情的卡片(热死了,快下雨!)*
做贴纸:
卡片
作品分析:
1、幼儿勾线、涂色情况良好,勾线完整,涂色均匀(白点少)
2、方形、三角形、圆形裁剪较好,五角星、月亮、太阳等边缘复杂的图案,幼儿还需要练习
3、幼儿尝试掌握先剪成小块,再进行精细剪边的方法。
4、个别孩子尝试用图形拼贴造型并组合画面故事(太阳月亮、小人等)