展示效果:

单张效果(印章信息只保留名字)

 多张效果(每张都是不同的青花纹理)

 打印效果:

背景需求:

茶杯上面的花纹都不一样,可以让孩子们欣赏更多的青花纹理,每张的印章名字也不同

设计难点

原始花边图案需要顺时针、逆时针、倒置、裁切、贴入相应的格子内

Word模板设置

1、竖版 页边距0。7

2、插入3*4表格

茶杯手柄的尺寸高度为1.7,宽度为1、8.24、1、10.24

文字对齐方式:

第一行顶部居中

图片模板

编号为01-33共33张青花纹理条

EXCEL信息设置-简体转繁体

代码设计:

'''作者:阿夏
时间:2022年12月04日插入式纸盒(茶杯-青花瓷-30款花边))'''import xlwt
import xlrd
import os
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 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 RGBColor# 图片旋转
# https://www.php.cn/python-tutorials-417020.html
#首先建好一个数据_ud文件夹
import PIL.Image as img
import os # 逆时针90度
path_old ='C:/Users/jg2yXRZ/OneDrive/桌面/插入茶杯/花边/' #文件夹目录
# 旋转图片存储的位置
for d in range(0,3):    os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\花边{}'.format(d))filelist=os.listdir(path_old)
total_num=len(filelist)# 总元素# 逆时针90度
path_new = 'C:/Users/jg2yXRZ/OneDrive/桌面/插入茶杯/花边0/'
for i in range(1,total_num+1):im=img.open(path_old+str('%02d'%i)+".png")ng=im.transpose(img.ROTATE_90)#旋转90度角(逆时针90度)ng.save(path_new+str('%02d'%i)+'.png')# 顺时针90度
path_new = 'C:/Users/jg2yXRZ/OneDrive/桌面/插入茶杯/花边1/'
for i in range(1,total_num+1):im=img.open(path_old+str('%02d'%i)+".png")ng=im.transpose(img.ROTATE_270)#旋转90度角(顺时针90度)ng.save(path_new+str('%02d'%i)+'.png')# 逆时针180度
path_new = 'C:/Users/jg2yXRZ/OneDrive/桌面/插入茶杯/花边2/'
# print(total_num)
for i in range(1,total_num+1):o='%02d'%iim=img.open(path_old+str(o)+".png")ng=im.transpose(img.ROTATE_180)#旋转90度角(逆时针90度)ng.save(path_new+str(o)+'.png')# 裁剪图片
# from PIL import Image
# import matplotlib.pyplot as plt
# img=Image.open('d:/ex.jpg')  #打开图像
# plt.figure("beauty")
# plt.subplot(1,2,1), plt.title('origin')
# plt.imshow(img),plt.axis('off')# box=(80,100,260,300)
# roi=img.crop(box)
# plt.subplot(1,2,2), plt.title('roi')
# plt.imshow(roi),plt.axis('off')
# plt.show()
# 从原图片中裁剪感兴趣区域(roi),裁剪区域由4-tuple决定,该tuple中信息为(left, upper, right, lower)。 Pillow左边系统的原点(0,0)为图片的左上角。坐标中的数字单位为像素点。print('----------第1步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\零时Word')wb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\大1班名字篆书.xlsx") #打开文件并返回一个工作蒲对象。open_workbook可以点进去看看函数里面的参数的含义之类的,很详细,英语不好的可以百度翻译,翻译出来的结果差不多。
sheet=wb.sheet_by_index(0)   #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
# col1=sheet.col_values(0)# 学号
col2=sheet.col_values(2)# 名字
num=len(col2)-1  # 第一列去掉第一行s#  填写印章(姓名)
name=[]
for i in range(1,len(col2)):names='{}'.format (col2[i])     name.append(names)    #
# print(name)
# print(len(name))bg=['00', '01', '02'] # Word第一行三个表贴的图一样
for num in range(0,len(name)):    # 一共32份# 每页插入文字doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\插入茶杯(模板).docx")   c=name[num]table = doc.tables[0]          # 一共有2个表格,在第1个表格里    run=table.cell(1,1).paragraphs[0].add_run(c)    # 在单元格0,0(第1行第1列)输入国家名称run.font.name = '隶书'#输入时默认华文彩云字体run.font.size = Pt(60)  #输入字体大小默认30号run.font.color.rgb = RGBColor(79,81,120) #青花色# paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距# paragraph.paragraph_format.line_spacing = 1r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), '隶书')#将输入语句中的中文部分字体变为华文行楷table.cell(1,1).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中   # 提取原始图片路径:插入三个格子 path=r'C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\花边'files= os.listdir(path)    # 文件夹目录# print(files)lists=[] # 所有图片路径的集合for f in files:a='{}\{}'.format(path,f)    lists.append(a)# 插入原始第1行3个横向    for t in range(0,len(bg[0:3])):   # 02pp=int(bg[t][0])    qq=int(bg[t][1])                 k=lists[num]         # 依次提取每一张花纹图案# print(k)     run=doc.tables[0].cell(pp,qq).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗run.add_picture('{}'.format(k),width=Cm(6.3),height=Cm(1))table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中  # 插入底部花纹path2=r'C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\花边2'files2= os.listdir(path2)    # 文件夹目录    # print(files1)lists2=[] # 所有图片路径的集合for f2 in files2:a2='{}\{}'.format(path2,f2)    lists2.append(a2)k2=lists2[num]run=doc.tables[0].cell(3,1).paragraphs[0].add_run()         run.add_picture('{}'.format(k2),width=Cm(6.3),height=Cm(1))  table.cell(3,1).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中 # 插入左侧花纹  插入3,0格path0=r'C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\花边0'files0= os.listdir(path0)    # 文件夹目录# print(files)lists0=[] # 所有图片路径的集合for f0 in files0:a0='{}\{}'.format(path0,f0)    lists0.append(a0)k0=lists0[num]run=doc.tables[0].cell(3,0).paragraphs[0].add_run()        # run.add_picture('{}'.format(k0),width=Cm(1),height=Cm(6.2))table.cell(3,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #居中  #    左侧框底边run=doc.tables[0].cell(3,0).paragraphs[0].add_run()        run.add_picture('{}'.format(k2),width=Cm(5.12),height=Cm(1))table.cell(3,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT #居中  #  右侧框底边run=doc.tables[0].cell(3,2).paragraphs[0].add_run()        run.add_picture('{}'.format(k2),width=Cm(5.12),height=Cm(1))table.cell(3,2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT #居中 # 插入右侧花纹path1=r'C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\花边1'files1= os.listdir(path1)    # 文件夹目录# print(files1)lists1=[] # 所有图片路径的集合for f1 in files1:a1='{}\{}'.format(path1,f1)    lists1.append(a1)k1=lists1[num]run=doc.tables[0].cell(3,2).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗  run.add_picture('{}'.format(k1),width=Cm(1),height=Cm(6.3))   table.cell(3,2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT #居中     # 手柄表格插入图片  table = doc.tables[1]          # 手柄表格插入图片  run=doc.tables[1].cell(0,1).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗run.add_picture('{}'.format(k),width=Cm(8.24),height=Cm(1.65))table.cell(0,1).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中                       # doc.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\零时Word\{}.docx".format('%02d'%num))from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/插入茶杯/零时Word/{}.docx".format('%02d'%num)# 要转换的文件:已存在outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/插入茶杯/零时Word/{}.pdf".format('%02d'%num) # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile, 'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)# 多个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/桌面/插入茶杯/(打印合集)大班A整页插入茶杯2乘5加表格-4名字-({}人).pdf".format(num))
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/插入茶杯/(打印合集)大班插入青花茶杯({}人).pdf".format(num+1))
file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/插入茶杯/零时Word') #递归删除文件夹,即:删除非空文件夹for d in range(0,3):    shutil.rmtree(r'C:\Users\jg2yXRZ\OneDrive\桌面\插入茶杯\花边{}'.format(d))

重点说明:

教学过程:

时间:2022年12月16日15:00-15:30

班级:大1班

人数:5人(1-5号中有3位女孩在园,拿到自己名字的纸膜,另外两份给了两位能干的女孩。)

背景说明:

昨天我接到通知下周一正式成为中7班班主任(原班主任怀孕请假休养),再也没有机会带机动班(大1班、中3班),所以我想把前期设计的一些python纸类学具用掉。

几天前我想打印大一班1号的青花茶杯纸膜做个测试(是否能够按线条折出茶杯),因为没有设置好,变成打印了全部。紧急关闭打印机程序后,已经打印了5张(学号1-5号)。我想把这几张用掉。这几天混管阳性的老师幼儿及同住人越来越多,幼儿人数越来越少。

1-5号中有3位女孩在园,拿到自己名字的纸膜,另外两份给了两位能干的女孩。

1、剪边

折线

凹造型

黏贴手柄

创意水壶

写名字做记号

作品展示 

感悟:

折痕线与实际折叠效果有差异(虚线能看到)纸膜折线需要适当调整位置,适应折叠厚度。

【教学类-21-02】20221210《青花茶杯-A4纸插入式纸盒-不同花纹》(大班主题《我是中国人-青花瓷》)相关推荐

  1. 【教学类-21-01】20221205《青花茶杯-A4纸插入式纸盒-统一花纹》(大班主题《我是中国人-青花瓷》)

    展示效果: 单张效果 多张效果 隐藏的部分 信息: 1.右侧第1列:幼儿园名字: 2.右侧第3列,幼儿名字 (1)3个名字+印 (为了统一4字) (2)2个名字+印章/印信/印文)(为了统一4字) ( ...

  2. 【教学类-22-02】20221210《八款字体的描字帖-4*4格整张-不用订书机》(大班主题《我是中国人-中国字》)

    成品样式: 48号字(适应2-3个名字的大小) 44号字(适应4个名字大小(2-3个名字也可以用,字会稍微小)) 打印样式: 背景需求: 观摩中3班做"描花体字"的本子的情景后,我 ...

  3. 【教学类-18-02】20221124《蒙德里安“红黄蓝黑格子画”-A4竖版》(大班)

    效果展示: 单页效果 多页效果  预设效果 实际效果:正面 实际效果:背面 三角柱贴在直角边上更稳定 背景需求: 2022年11月23日,作为艺术特色幼儿园,蒙德里安风格装饰在我们幼儿园的环境中. 蒙 ...

  4. 【教学类-18-01】20221123《蒙德里安“红黄蓝黑格子画”-A4横板》(大班)

    效果展示: 单页效果 多页效果 预设效果 背景需求: 2022年11月23日,作为艺术特色幼儿园,蒙德里安风格装饰在我们幼儿园的环境中. 蒙德里安是几何抽象画派的先驱,以几何图形为绘画的基本元素,与德 ...

  5. 【教学类-15-02】20221119《姓名描字帖-A4竖版(2*7)普通中号字》(大班适合中层次幼儿)

    成品样式: 背景需求: 感觉上大1班孩子都会写名字,但做<数字图密码>时,几位大班孩子说:"我不会写名字""那你就写个学号吧!" 原来上次做< ...

  6. 【教学类-15-03】20221119《姓名描字帖-A4竖版(1*7笔画复杂大字)》(大班适合中层次幼儿)

    成品样式: 背景需求: 49号字体和60号字体可以批量出2*7个名字,但是一些孩子的名字笔画很多,如果用60号字体不容易画清里面的所有笔画.所以需要将名字的字号变大. 选了一些复杂的名字做样板,延时1 ...

  7. 【教学类-17-02】20221125《世界杯七巧板A4整页-随机参考图七巧板 3份一页》(大班)

    效果展示: 单页效果 多页效果 预设样式: 背景需求: 2022年11月24日,大1班随机抽取的9位幼儿制作了9张拼图,发现以下三个问题: 1.粉红色辅助纸选择量多--9份作业有4位幼儿的七巧板人物是 ...

  8. 【教学类-19-03】20221127《ABBABB式-规律排序-A4竖版2份》(中班)

    展示效果: 单人使用样式: 单页打印样式 ​ 背景需求: 中班幼儿需要掌握ABBABB的排序规律 前文制作了ABCABC单元格色块,完全套用ABC排序word表格,调整python的代码,随机生成AB ...

  9. 【教学类-19-02】20221127《ABCABC式-规律排序-A4竖版2份》(中班)

    展示效果: 单人使用样式: 单页打印样式 ​ 背景需求: 中班幼儿需要掌握ABCABC的排序规律 ​ 前文制作了ABAB单元格色块,微调word表格的列数,调整python的参数,随机生成ABC排序样 ...

最新文章

  1. corrplot包绘制相关性图
  2. VTK:循环收缩用法实战
  3. sql_1-2_get基于盲注
  4. iPhone开发之BASE64加密和解密
  5. c++基础(part1)--cpp简介
  6. 感谢博客园让我拥有自己的空间
  7. 职工工作量c语言调试分析,c语言职工工作量统计
  8. CSDN Markdown帮助文档
  9. 拓端tecdat|红圈律所微信公众号图文数据报告
  10. 数据中心机房建设标准规范
  11. 30个值得推荐的数据可视化工具(2022年最新)
  12. AI - 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总
  13. 找到Java中长整型(long)所能表示的最大素数: 9223372036854775783
  14. 2022年最新计算机专业毕业设计选题 - 选题推荐 毕设开题 简单易过 题目新颖
  15. c语言分数乘法,武汉小学数学六年级
  16. JPA中@Basic注解详解
  17. java 解码和加密 汉信码_java中的编码与解码
  18. 常用工具类(一) 身份证+姓名+手机号码验证
  19. 苹果蓝牙耳机怎么接电话_除了苹果AirPods,真无线蓝牙耳机到底怎么选?
  20. 怎么看待SEO?新型SEO与传统SEO对比优势?

热门文章

  1. 手机端密码键盘(weiKeyBoard.js)
  2. domain条目注册和查看注册结果
  3. abcde依次进入一个队列_一个队列的入队序列为:abcde,则队列的出队序列是( )。
  4. [BZOJ 2085]POI2010 Hamsters
  5. ASP.Net学习(七)
  6. 什么是协方差,怎么计算?为什么需要协方差?
  7. 记录学习Mockito单元测试的坑——空指针异常
  8. 软件技能代码之外的生存指南笔记
  9. 电脑蓝屏/中断导致 git 文件损坏的修复方法
  10. 路由实验总结(思科6.2)