【教学类-20-01】20221203《世界杯16强国旗-随机版》(大班)
展示效果:
單人使用樣式:
?? 多頁打印樣式
?
?背景需求:
做《蒙德里安》格子畫時(shí),我把A4紙分割為正方形畫框和長條紙支撐。活動(dòng)中幼兒詢問:為什么我的畫站不起來?(底邊剪的不平整、提手太重、畫框有邊緣白條太重)
這讓我發(fā)現(xiàn),Python批量的紙類A4學(xué)具除了運(yùn)用與數(shù)學(xué)和美術(shù),還可以基于紙張本身的材料,進(jìn)行一些探究活動(dòng)——平衡性等。
在世界杯期間,我想把A4紙條利用起來,就想到了最簡(jiǎn)單的手工制作方法——搓棒子。制作手持式國旗。
?Word模板設(shè)置?
?
?插入1行3列表格
?第1個(gè)單元格的高寬
?第2個(gè)單元格的高寬
?第3個(gè)單元格的高寬
?邊框設(shè)置:內(nèi)外邊框都是黑體3磅,
文字
?
?
?
國旗的設(shè)計(jì):
網(wǎng)上百度百科里下載16強(qiáng)國家的國旗圖片,PNG圖片+標(biāo)注國旗長寬比
由于每個(gè)國旗的長寬比不同,因此不能把國旗統(tǒng)一成一樣的長款。
所以需要在ppt 里把圖片調(diào)整適應(yīng)Word單元格大小(寬度最多14.1CM)
16強(qiáng)國旗主要有幾種款式:(1:3、1:2、7:10、10:18、5:8、1:1、3:5、2:3最多)
?
?
?如果單純用紙條制作旗桿,時(shí)間過快,所以用PPT把16強(qiáng)國旗上主要色塊做色卡,讓幼兒進(jìn)行簡(jiǎn)單的涂色。
(國徽標(biāo)志、星星由于太過細(xì)小,蠟筆根本涂不到這些細(xì)節(jié),所以都保留彩色圖案,只需要幼兒涂大色塊)
?為了便于抽取國家名稱,所有的圖片名字格式“國家-1國旗X比X.png"
里面的“-”很重要,是抽取文字的一個(gè)節(jié)點(diǎn),必須在國家名稱后面加一個(gè)“-”,否則無法提取國旗對(duì)應(yīng)的名字。
?
代碼設(shè)計(jì):
'''作者:阿夏 時(shí)間:2022年12月03日世界杯16強(qiáng)國旗)'''import os,randomnum=int(input('生成多少份\n')) # Number=int(input('抽取幾個(gè)16強(qiáng)國旗圖片(1個(gè))\n'))print('----------第1步:提取所有的16強(qiáng)國旗圖片的路徑------------')path = r'C:\Users\jg2yXRZ\OneDrive\桌面\16強(qiáng)國旗\16強(qiáng)國旗圖片' #文件夾目錄 files= os.listdir(path) #得到文件夾下的所有文件名稱 ['塞內(nèi)加爾國旗2比3.png','澳大利亞國旗2比1.png'] print(files) lists=[] # 所有圖片路徑的集合 for f in files:a='{}\{}'.format(path,f) # 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\塞內(nèi)加爾國旗2比3.png'lists.append(a) print(lists) # ['C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\塞內(nèi)加爾國旗2比3.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\巴西國旗7比10.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\法國國旗2比3.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\波蘭國旗5比8.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng) # 國旗圖片\\澳大利亞國旗2比1.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\美國國旗10比19.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\英格蘭國旗3比 # 5.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\荷蘭國旗2比3.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\葡萄牙國旗2比3.png', 'C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\16強(qiáng)國旗\\16強(qiáng)國旗圖片\\阿根廷國旗3比5.png']print('----------第2步:新建一個(gè)臨時(shí)文件夾------------') # 新建一個(gè)”裝N份word和PDF“的文件夾 os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\16強(qiáng)國旗\零時(shí)Word')print('----------第3步:隨機(jī)抽取16個(gè)國旗1個(gè) ------------')from win32com.client import constants,gencache from win32com.client.gencache import EnsureDispatch from win32com.client import constants # 導(dǎo)入枚舉常數(shù)模塊 import os,timeimport 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(1,num+1): # word = gencache.EnsureDispatch('Word.Application')doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\16強(qiáng)國旗\16強(qiáng)國旗(模板).docx')# 打開帶docx模板(這個(gè)模板有頁腳的頁碼,阿夏認(rèn)為頁碼是必須的)table = doc.tables[0] # 一共有1個(gè)表格 k = random.choice(lists) # 隨機(jī)抽取8個(gè)不重復(fù)空心圖案 # C:\Users\jg2yXRZ\OneDrive\桌面\16強(qiáng)國旗\16強(qiáng)國旗圖片\澳大利亞國旗2比1.pngb=k.split("\\")[-1] #抽取最后一段 澳大利亞國旗2比1.pngc=b.split("-")[0] # 抽取-前面的文字 澳大利亞 run=doc.tables[0].cell(0,2).paragraphs[0].add_run() # 在第1個(gè)表格中第2個(gè)單元格內(nèi)插入國旗# run.add_picture('{}'.format(k),width=Cm(13.5),height=Cm(9)) run.add_picture('{}'.format(k))# 插入16強(qiáng)國旗圖片,k=16強(qiáng)國旗圖片所在路徑。單元格大小有限,每張16強(qiáng)國旗圖片原始尺寸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 = '黑體'#輸入時(shí)默認(rèn)華文彩云字體run.font.size = Pt(80) #輸入字體大小默認(rèn)30號(hào)run.font.color.rgb = RGBColor(200,200,200) #設(shè)置灰色# paragraph.paragraph_format.line_spacing = Pt(180) #數(shù)字段間距r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '黑體')#將輸入語句中的中文部分字體變?yōu)槿A文行楷table.cell(0,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中 # doc.Save()# 把有空格的1.docx保存doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\16強(qiáng)國旗\零時(shí)Word\{}.docx'.format('%02d'%nn)) from docx2pdf import convert# docx 文件另存為PDF文件inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/16強(qiáng)國旗/零時(shí)Word/{}.docx".format('%02d'%nn) # 要轉(zhuǎn)換的文件:已存在outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/16強(qiáng)國旗/零時(shí)Word/{}.pdf".format('%02d'%nn) # 要生成的文件:不存在# 先創(chuàng)建 不存在的 文件f1 = open(outputFile, 'w')f1.close()# 再轉(zhuǎn)換往PDF中寫入內(nèi)容convert(inputFile, outputFile)print('----------第4步:把都有PDF合并為一個(gè)打印用PDF------------')# 多個(gè)PDF合并(CSDN博主「紅色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205) import os from PyPDF2 import PdfFileMerger target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/16強(qiáng)國旗/零時(shí)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強(qiáng)國旗/(打印合集)16強(qiáng)國旗A4整張({}份).pdf".format(num)) file_merger.close() # doc.Close()# print('----------第5步:刪除臨時(shí)文件夾------------') import shutil shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/16強(qiáng)國旗/零時(shí)Word') #遞歸刪除文件夾,即:刪除非空文件夾重點(diǎn)說明:
輸入數(shù)據(jù)
只要填寫份數(shù),其他都是默認(rèn)的
?
?運(yùn)行過程
國旗圖片的路徑?
?合成PDF
??隨后刪除過渡信息
?
??一、提取所有圖片的路徑
?二、抽圖片,及圖片上的文字,填入相應(yīng)的格子里
?效果展示:
1張1人?
???預(yù)設(shè)玩法:
1、探究:做一根國旗桿(折紙、卷紙)
2、美術(shù):根據(jù)電視上圖片的圖案涂色。
3、前書寫:名字、學(xué)號(hào)
4、其他:幼兒的玩法行為、語言表達(dá)、互動(dòng)交流。
總結(jié)
以上是生活随笔為你收集整理的【教学类-20-01】20221203《世界杯16强国旗-随机版》(大班)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据应用之 --- apache do
- 下一篇: Ubuntu使用代理服务器上网