• 【教学类-20-02】20221203《世界杯16强国旗-定量版》(大班)


    展示效果:

    (1个国家2张,16国旗,共32张)

    打印效果:

     背景需求:

    上一份代码打印后发现:

    1.打印时发现随机抽取的图案不稳定,30张”澳大利亚”“波兰”的图片特别多。因为前期修图花了不少时间,我想把所有的16张图片都用上,只能单张单国打印2份。

     2、而且打印后发现,只有13个国旗图片,少了3个国家。

    random.choice(lists,N)因为是随机抽1张,所以会有图案重复,某些图片抽多了,部分图片就不会被选中,因而遗漏。

     Word模板设置 

     插入1行3列表格

     第1个单元格的高宽

     第2个单元格的高宽

     第3个单元格的高宽

     边框设置:内外边框都是黑体3磅,

    文字

     

     

     

    国旗的设计:

    网上百度百科里下载16强国家的国旗图片,PNG图片+标注国旗长宽比

    由于每个国旗的长宽比不同,因此不能把国旗统一成一样的长款。

    所以需要在ppt 里把图片调整适应Word单元格大小(宽度最多14.1CM)

    16强国旗主要有几种款式:(1:3、1:2、7:10、10:18、5:8、1:1、3:5、2:3最多)

     

     

     如果单纯用纸条制作旗杆,时间过快,所以用PPT把16强国旗上主要色块做色卡,让幼儿进行简单的涂色。

    (国徽标志、星星由于太过细小,蜡笔根本涂不到这些细节,所以都保留彩色图案,只需要幼儿涂大色块)

     为了便于抽取国家名称,所有的图片名字格式“国家-1国旗X比X.png"

    里面的“-”很重要,是抽取文字的一个节点,必须在国家名称后面加一个“-”,否则无法提取国旗对应的名字。

     

    代码设计:

    1. '''
    2. 作者:阿夏
    3. 时间:2022年12月04日世界杯16强国旗(定量32张,每个国家2份)
    4. '''
    5. import os,random
    6. num=int(input('生成多少份32份\n'))
    7. # Number=int(input('抽取几个16强国旗图片(1个)\n'))
    8. print('----------第1步:提取所有的16强国旗图片的路径------------')
    9. path = r'C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\16强国旗图片' #文件夹目录
    10. files= os.listdir(path) #得到文件夹下的所有文件名称 ['塞内加尔国旗2比3.png','澳大利亚国旗2比1.png']
    11. print(files)
    12. lists=[] # 所有图片路径的集合
    13. for f in files:
    14. a='{}\{}'.format(path,f) # 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\塞内加尔国旗2比3.png'
    15. lists.append(a)
    16. lists.append(a)
    17. print(lists)
    18. # ['C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\塞内加尔国旗2比3.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\巴西国旗7比10.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\法国国旗2比3.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\波兰国旗5比8.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强
    19. # 国旗图片\\澳大利亚国旗2比1.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\美国国旗10比19.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\英格兰国旗3比
    20. # 5.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\荷兰国旗2比3.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\葡萄牙国旗2比3.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\阿根廷国旗3比5.png']
    21. print('----------第2步:新建一个临时文件夹------------')
    22. # 新建一个”装N份word和PDF“的文件夹
    23. os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\零时Word')
    24. print('----------第3步:随机抽取16个国旗1个 ------------')
    25. from win32com.client import constants,gencache
    26. from win32com.client.gencache import EnsureDispatch
    27. from win32com.client import constants # 导入枚举常数模块
    28. import os,time
    29. import docx
    30. from docx import Document
    31. from docx.shared import Inches,Cm,Pt
    32. from docx.shared import RGBColor
    33. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    34. from docx.oxml.ns import qn
    35. from docxtpl import DocxTemplate
    36. import pandas as pd
    37. from docx2pdf import convert
    38. from docx.shared import RGBColor
    39. for nn in range(0,len(lists)):
    40. # word = gencache.EnsureDispatch('Word.Application')
    41. doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\16强国旗(模板).docx')# 打开带docx模板(这个模板有页脚的页码,阿夏认为页码是必须的)
    42. table = doc.tables[0] # 一共有1个表格
    43. k = lists[nn] # 随机抽取8个不重复空心图案 # C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\16强国旗图片\澳大利亚国旗2比1.png
    44. b=k.split("\\")[-1] #抽取最后一段 澳大利亚国旗2比1.png
    45. c=b.split("-")[0] # 抽取-前面的文字 澳大利亚
    46. run=doc.tables[0].cell(0,2).paragraphs[0].add_run() # 在第1个表格中第2个单元格内插入国旗
    47. # run.add_picture('{}'.format(k),width=Cm(13.5),height=Cm(9))
    48. run.add_picture('{}'.format(k))
    49. # 插入16强国旗图片,k=16强国旗图片所在路径。单元格大小有限,每张16强国旗图片原始尺寸8.744CM,插入的大小最多4CM
    50. table.cell(0,2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    51. run=table.cell(0,0).paragraphs[0].add_run(c) # 在单元格0,0(第1行第1列)输入国家名称
    52. run.font.name = '黑体'#输入时默认华文彩云字体
    53. run.font.size = Pt(80) #输入字体大小默认30号
    54. run.font.color.rgb = RGBColor(200,200,200) #设置灰色
    55. # paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距
    56. r = run._element
    57. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    58. table.cell(0,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    59. # doc.Save()# 把有空格的1.docx保存
    60. doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\零时Word\{}.docx'.format('%02d'%nn))
    61. from docx2pdf import convert
    62. # docx 文件另存为PDF文件
    63. inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/16强国旗/零时Word/{}.docx".format('%02d'%nn) # 要转换的文件:已存在
    64. outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/16强国旗/零时Word/{}.pdf".format('%02d'%nn) # 要生成的文件:不存在
    65. # 先创建 不存在的 文件
    66. f1 = open(outputFile, 'w')
    67. f1.close()
    68. # 再转换往PDF中写入内容
    69. convert(inputFile, outputFile)
    70. print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    71. # 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
    72. import os
    73. from PyPDF2 import PdfFileMerger
    74. target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/16强国旗/零时Word'
    75. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    76. pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
    77. pdf_lst.sort()
    78. file_merger = PdfFileMerger()
    79. for pdf in pdf_lst:
    80. print(pdf)
    81. file_merger.append(pdf)
    82. file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/16强国旗/(打印合集)16强国旗A4整张({}份).pdf".format(num))
    83. file_merger.close()
    84. # doc.Close()
    85. # print('----------第5步:删除临时文件夹------------')
    86. import shutil
    87. shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/16强国旗/零时Word') #递归删除文件夹,即:删除非空文件夹

    重点说明:

    输入数据

    只要填写份数(16*2=32张)

      运行过程

    国旗图片的路径

     合成PDF

      随后删除过渡信息

      一、提取所有图片的路径

     二、抽图片,及图片上的文字,填入相应的格子里

     效果展示: 

    实现目标:

    1、用这一份代码生成的PDF,让我找到了缺失的三个国家国旗,补打印。

      2、这份代码PDF可以直接打印,确保16国旗都有,并且每份2张。发的时候。同桌的孩子可以选一样的2张,互相讨论画法。

    感悟:

    还是老老实实按照列表索引一个个抽取写入图案吧。

    教学实践:

    时间:2022年12月6日

    班级:大1班

    人数:28人

    操作过程:

    一、经验导入

    首先,教师引导幼儿通过行列方式查找自己喜欢的、认识的国旗

    “你喜欢那一面国旗,它在几行几列?”

    “我喜欢阿根廷”

    “我知道美国”

    “蓝球的那个是巴西”

    “我知道俄罗斯(蓝白红)”

    “日本在第三行、第四列”

    "我喜欢沙特的(都是阿拉伯文的国旗)

    二、规则要求:

    1、涂色:

    结合打印图纸,引导参考电视机的的图片色彩,说说涂矩形色块图什么颜色?

    重点说明:灰色框不涂色(代表白色快)

    重点说明:逐一分析16个国家图纸上需要涂什么颜色(瑞士外圈涂色、美国细条涂色小心、韩国黑色八卦图案用记号笔涂) 

     重点优势:因为打印纸的左侧有国旗的国家大字,在一些识字孩子的带领下,孩子们一起念诵国旗的名字。并根据图形颜色去查看电视上的原始国旗颜色。(定义名称,形成共有概念,是大班幼儿的认知需求。)

    2、选纸:

    看不见随机抽取:抽了6位能力弱的孩子做预测试。把纸张反过来,幼儿是随机抽图

    可见任意选择:午餐后,其他孩子进行操作,先到先选自己喜欢的国旗图案,可以先选适合自己操作的、或者自己熟悉的、喜欢的国旗图纸。

     3、介绍两种旗杆的做法

    长条对折法:折的越细、旗杆越硬。

    斜边滚纸法:从直角边开始斜着卷纸,只要涂一个角上的浇水

    旗杆包裹法:在旗面内部图上大量胶水,把旗杆抱在中间。

    4.幼儿语言表达

    你们想选哪个国家呢?

    A:“我要选阿根廷”

    T::“看来阿根廷太有名了”

    B:“我选沙特!”

    T::“嗯,沙特没有进入16强”

    C:“我要选中国!“

    T:”……”(这是一件让人悲伤的事)

    D:“我选澳大利亚,澳大利亚应该很好涂颜色吧”

    T:(教师样例就是澳大利亚)“其实不太好涂,因为有很多白色六角形挡着,涂起来要一块一块涂”

    三、幼儿涂色

     第一轮:个别小组操作:6人 

     自我学习:因为每张图纸不一样,加上棒子没有折过,幼儿之间大量的观摩同伴行为,互相吸取经验。

     

     我帮你描字

     碎纸做点小玩具

     第二轮:集体轮流操作:22人 

    参考电视机的色彩,了解自己国旗需要涂的颜色

    这位男孩的制作流程:

    1先剪后画

    2、折叠、滚旗杆

    3、黏贴

     

    选纸:选个澳大利亚吧  


      

    涂色:

     ​​​​​​​

     ​​​​​​​

     ​​​​​​​

     

     

    剪纸片

     

    ​​​​​​​​​​​​​

     ​​​​​​​

     对折:

     折旗杆

     

     为什么这个杆子变大了(斜角卷纸,纸卷容易松开)

    胶水用完了

    旗杆有点软,对折加固

       

     ​​​​​​​ 黏贴胶水

    其他方法:先剪折,贴旗杆,然后再涂色、写个人信息

      

     ​​​​​​​

     修剪白色边缘

     ​​​​​​​​​​​​​​

     书写信息及花纹装饰

     ​​​​​​​​​​​​​​

    作品展示:

     ​​​​​​​

    结语:

    孩子们对国旗涂色兴趣浓厚,每位孩子都填了属于自己的色块。搓了各式各样的纸棒。28人。

    什么时候孩子们也能在世界杯的国旗里,找到一面属于中国的旗帜呢。让我们撸起袖子加油干吧!

     ​​​​​​​“把袖子卷起来,蜡笔会把袖子弄脏的”​​​​​​​

    手持国旗展示(大小对比)

     

     

     

     ​​​​​​​

     

     

     

     

     

     ​​​​​​​

     

     ​​​​​​​​​​​​​​

     

     

     

     

     

     

     

     

  • 相关阅读:
    吃鸡游戏出现msvcp140.dll缺失的四个解决方法
    SpringBoot中公共字段的自动填充
    [附源码]java毕业设计选课管理系统
    论文阅读-基于低秩分解的网络异常检测综述
    一篇文章带你掌握主流基础框架——Spring
    Runable和Callable的区别?首先要搞清楚Thread以及FutureTask!
    java.sql.SQLSyntaxErrorException: Unknown column ‘id‘ in ‘field list‘
    《JAVA EE》内部类(上篇)
    4.MidBook项目经验之MonogoDB和easyExcel导入导出
    HTML网页设计结课作业——基于HTML+CSS仿学校官网页面
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/128181762