【教学类-20-01】20221203《世界杯16强国旗》(大班)

news2024/11/8 19:55:31

展示效果:

单人使用样式:

   多页打印样式

 背景需求:

做《蒙德里安》格子画时,我把A4纸分割为正方形画框和长条纸支撑。活动中幼儿询问:为什么我的画站不起来?(底边剪的不平整、提手太重、画框有边缘白条太重)

这让我发现,Python批量的纸类A4学具除了运用与数学和美术,还可以基于纸张本身的材料,进行一些探究活动——平衡性等。

在世界杯期间,我想把A4纸条利用起来,就想到了最简单的手工制作方法——搓棒子制作手持式国旗。

 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"

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

​​​​​​​

 

代码设计:

'''

作者:阿夏
时间:2022年12月03日世界杯16强国旗)

'''

import os,random

num=int(input('生成多少份\n'))
# Number=int(input('抽取几个16强国旗图片(1个)\n'))

print('----------第1步:提取所有的16强国旗图片的路径------------')

path = r'C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\16强国旗图片' #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称 ['塞内加尔国旗2比3.png','澳大利亚国旗2比1.png']
print(files)
lists=[] # 所有图片路径的集合
for f in files:
    a='{}\{}'.format(path,f)    # 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\塞内加尔国旗2比3.png'
    lists.append(a)
print(lists)
# ['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强 
# 国旗图片\\澳大利亚国旗2比1.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\美国国旗10比19.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16强国旗\\16强国旗图片\\英格兰国旗3比
# 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']

print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\零时Word')


print('----------第3步:随机抽取16个国旗1个 ------------')

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 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

for nn in range(1,num+1):    
    # word = gencache.EnsureDispatch('Word.Application')
    doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\16强国旗(模板).docx')# 打开带docx模板(这个模板有页脚的页码,阿夏认为页码是必须的)
    
    table = doc.tables[0]          # 一共有1个表格    
    k = random.choice(lists)    # 随机抽取8个不重复空心图案  # C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\16强国旗图片\澳大利亚国旗2比1.png
    b=k.split("\\")[-1] #抽取最后一段 澳大利亚国旗2比1.png
    c=b.split("-")[0]    # 抽取-前面的文字 澳大利亚   
       
    run=doc.tables[0].cell(0,2).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗
    # run.add_picture('{}'.format(k),width=Cm(13.5),height=Cm(9))     
    run.add_picture('{}'.format(k))
    # 插入16强国旗图片,k=16强国旗图片所在路径。单元格大小有限,每张16强国旗图片原始尺寸8.744CM,插入的大小最多4CM    
    table.cell(0,2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中     

    
    run=table.cell(0,0).paragraphs[0].add_run(c)    # 在单元格0,0(第1行第1列)输入国家名称
    run.font.name = '黑体'#输入时默认华文彩云字体
    run.font.size = Pt(80)  #输入字体大小默认30号
    run.font.color.rgb = RGBColor(200,200,200) #设置灰色
    # paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距

    r = run._element
    r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    table.cell(0,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中   


    # doc.Save()# 把有空格的1.docx保存
    doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\16强国旗\零时Word\{}.docx'.format('%02d'%nn))       
    
    from docx2pdf import convert

    # docx 文件另存为PDF文件
    inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/16强国旗/零时Word/{}.docx".format('%02d'%nn)  # 要转换的文件:已存在
    outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/16强国旗/零时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/桌面/16强国旗/零时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/桌面/16强国旗/(打印合集)16强国旗A4整张({}份).pdf".format(num))
file_merger.close()
# doc.Close()

# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/16强国旗/零时Word') #递归删除文件夹,即:删除非空文件夹

重点说明:

输入数据

只要填写份数,其他都是默认的

 运行过程

国旗图片的路径

 合成PDF

  随后删除过渡信息

  一、提取所有图片的路径

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

 效果展示:

1张1人 

   预设玩法:

1、探究:做一根国旗杆(折纸、卷纸)

2、美术:根据电视上图片的图案涂色。

3、前书写:名字、学号

4、其他:幼儿的玩法行为、语言表达、互动交流。

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

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

相关文章

知识直播:时代乐见搜狐的长期主义选择

国内著名商业咨询顾问刘润说:“所有伟大的机会都源自于巨大的结构性改变。大成就背后,一定有涌动的、因商业逻辑巨变而释放出来的红利。” 这话用在当前的互联网行业身上再好不过。面对重重不确定性,如何拨开迷雾,看懂市场趋势&a…

HTTP到底是什么?

文章目录HTTP简介HTTP协议的特点1) 简单快速2) 灵活3) 无连接4) 无状态HTTP协议的发展历程1) HTTP/0.92) HTTP/1.03) HTTP/1.14) HTTP/2.0HTTP的工作流程HTTP简介 HTTP 全称为 Hypertext Transfer Protocol,翻译为中文是“超文本传输协议”的意思,它是互…

Java并发编程—volatile

文章目录volatile的应用volatile的定义与实现原理专业术语:volatile是如何来保证可见性的呢?volatile的原理:volatile的两条实现原则:(物理上如何实施)volatile的内存语义volatile的特性例:下面…

SpringBoot -集成Druid

文章目录Druid概述使用问题解决Spring监控不生效方式1:修改yml的配置写法方式2:参考DruidSpringAopConfiguration自行注入Bean,灵活(更建议)Druid 概述 官网: https://github.com/alibaba/druid   文档&a…

校园论坛(Java)—— 用户管理系统模块

校园论坛(Java)—— 用户管理系统模块 文章目录校园论坛(Java)—— 用户管理系统模块[toc]1、写在前面2、系统结构设计2.1 各个页面之间的调用关系2.2. 用户管理系统模块各层的设计3、管理员管理用户功能3.1 管理员查看普通用户的…

微服务框架 SpringCloud微服务架构 10 使用Docker 10.1 镜像命令

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构10 使用Docker10.1 镜像命令10.1.1 镜像相关命令10.1.2 镜像操作命令10.1.…

SpringBoot_整合PageHelper

分页插件/PageHelper插件 我们在正常的查询业务之中,只需要加上一行代码就可以实现分页的数据的封装处理 实现原理 PageHelper方法使用了静态的ThreadLocal参数,分页参数和线程是绑定的。内部流程是ThreadLocal中设置了分页参数(pageIndex&#xff0c…

TypeScript21(装饰器Decorator)

Decorator 装饰器是一项实验性特性,在未来的版本中可能会发生改变 不仅增加了代码的可读性,清晰地表达了意图,而且提供一种方便的手段,增加或修改类的功能; 若要启用实验性的装饰器特性,你必须在命令行或…

计算机网络 HTTPS

HTTPS HTTPS (全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是…

git:多分支管理

多分支管理1. 列出分支2. 新建分支3. 删除分支4. 切换分支5. 分支合并多分支开发的特点 | 作用1. 测试:合并之后再在分支中工作是否主分支里面的相同文件不会更改2. 测试:修改编辑test分支的文件,最后再合并分支,是否是直接覆盖&a…

FT2004(D2000)开发实战之启动流程介绍

一 启动流程概述 飞腾FT2004/D2000芯片提供两种引导方案,具体如下所示: 方案一: 方案二: 方案一和方案二的区别是第二阶段的运行组件不同,方案一运行的是U-boot、方案二运行的是UEFI 那么为什么会这样的了? 答案是:飞腾FT2004/D2000芯片既可以用于嵌入式方案,也可以…

Docker中网络的使用和配置用法详解

一、单个物理机中docker网络 1.1 Docker默认网桥 安装Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。 使用 doc…

初识猿如意开发工具

嗨,大家好,我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助,请支持一波。 希望未来可以一起学习交流。 一、初遇猿如意 第一次听说猿如意开发工具,于是抱着试试的心态,开始下载尝试。 首先是…

算法导论23章最小生成树习题—23.2练习

23.2-1对于同一个输人图,Kruskal 算法返回的最小生成树可以不同。这种不同来源于对边进行排序时,对权重相同的边进行的不同处理。证明:对于图G的每棵最小生成树T,都存在一种办法来对G的边进行排序,使得Kruskal算法所返回的最小生成…

HTML+CSS+JS网页设计期末课程大作业——上海旅游景点(10页)web前端开发技术 web课程设计 网页规划与设计

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

离散化【带题讲解】

全文目录🤔 原理😕 区间和😵‍💫 建立映射😵‍💫 查找映射的下标😵‍💫 代码🤔 原理 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提…

NVIDIA 安装 CUDA

名词解释:CUDA 是一个架构 该架构使GPU能够解决复杂的计算问题 此实战使用电脑为联想Y9000P 显卡型号为 3060 在安装 CUDA 之前需要先打开 NVIDIA 控制面板 一、准备工作 如图我这个显卡需要安装 CUDA 11.7 的版本 二、下载软件 进入官网下载 CUDA NVIDIA Deve…

解放军军官军衔(不含士兵军衔)分为3等10级

军衔,是国家最高权力机关授予军人的一种衔称。不同的级别有不同的军衔。对于军衔的认识,一些朋友或许只有片面的认识,下面,笔者就给大家来科普一下中国的军衔。 为了纪念中国人民解放军建军93周年,弘扬爱国主义精神&a…

被迫毕业,面试 30 家公司,终于上岸了!

大家好,我是君哥。今天分享一个老弟,被“毕业”后的求职经历。 在老东家干了 6 年,发展一般,很想出去,但是一直没有合适的机会,只好一边准备面试一边学习。让我没有想到的是,突然收到了“毕业”…

(1-线性回归问题)线性回归(Linear regression)Lasso回归和Ridge回归的区别

回归分析是机器学习中的经典算法之一,用途广泛,在用实际数据进行分析时,可能会遇到以下两种问题 过拟合, overfitting欠拟合, underfitting 在机器学习中,首先根据一批数据集来构建一个回归模型,然后在用另外一批数据…