【教学类-20-01】20221203《世界杯16强国旗-随机版》(大班)
展示效果:
單人使用樣式:
?? 多頁打印樣式
?
?背景需求:
做《蒙德里安》格子畫時,我把A4紙分割為正方形畫框和長條紙支撐。活動中幼兒詢問:為什么我的畫站不起來?(底邊剪的不平整、提手太重、畫框有邊緣白條太重)
這讓我發(fā)現,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強國旗上主要色塊做色卡,讓幼兒進行簡單的涂色。
(國徽標志、星星由于太過細小,蠟筆根本涂不到這些細節(jié),所以都保留彩色圖案,只需要幼兒涂大色塊)
?為了便于抽取國家名稱,所有的圖片名字格式“國家-1國旗X比X.png"
里面的“-”很重要,是抽取文字的一個節(jié)點,必須在國家名稱后面加一個“-”,否則無法提取國旗對應的名字。
?
代碼設計:
'''作者:阿夏 時間:2022年12月03日世界杯16強國旗)'''import os,randomnum=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,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強國旗\16強國旗(模板).docx')# 打開帶docx模板(這個模板有頁腳的頁碼,阿夏認為頁碼是必須的)table = doc.tables[0] # 一共有1個表格 k = random.choice(lists) # 隨機抽取8個不重復空心圖案 # C:\Users\jg2yXRZ\OneDrive\桌面\16強國旗\16強國旗圖片\澳大利亞國旗2比1.pngb=k.split("\\")[-1] #抽取最后一段 澳大利亞國旗2比1.pngc=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._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強國旗\零時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) # 要生成的文件:不存在# 先創(chuàng)建 不存在的 文件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、其他:幼兒的玩法行為、語言表達、互動交流。
總結
以上是生活随笔為你收集整理的【教学类-20-01】20221203《世界杯16强国旗-随机版》(大班)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据应用之 --- apache do
- 下一篇: 招行两地一卡——PayPal美元兑换人民