【教学类-13-03】20221118《数字色块图5*7*8-A4横板-横切》(大班主题《》)

news2024/11/23 2:10:57

  效果展示(一张8个图,对半横切(

打印效果图、中间剪开成2分(白色废纸)

 背景需求:

   前期中3班制作5*7 *9张数字图,幼儿找出数字的人数更多

我还希望在大班进行数字图涂色练习。为了增加难度,准备以“破译行李箱4位密码“为情景,为了避免幼儿搞不清楚数字排序,将竖切改为横切。一行4个,更符合阅读顺序。

WORD表格制作(在横向A4 中间画横切割线)

页眉写入个人信息

  4分栏

  表格参数  

 两个表格中间的段落间距 

切割线(插入图形,线条,拉一条蓝色线,线条颜色改为黑色)

代码设计:

'''

作者:阿夏
时间:2022年11月18日数字像素图(A4横板5*7 8个表 中间一切二横切)
(A4横板排5*7*8 每套两个数字涂成不同的颜色  有括号,要汇总密码))
'''

import os,random

num=int(input('生成多少份\n'))
Number=int(input('抽取几个数字(10个数字中取横板8个(4个一组)\n'))
size=float(input('数字大小(最大28,建议25)\n'))
weight=int(input('表格宽度(5格)\n'))
height=int(input('表格长度高度(7格)\n'))

print('----------第1步:提取所有图案------------')

import random
# m数字位置上的数字


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


print('----------第3步:随机抽取8个不重复的图案 ------------')
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 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 z in range(0,num):   #多少份  

    m=str(random.randint(0,1)) # 涂色部分数字,数字小 0和1(小数)(只有用0的画,有大量重复,所以加了1)
    n=str(random.randint(2,9)) # 非涂色部分数字,2,3,4,5,6,7,8,9  (大数)

    N=[]
    def same():
        for r in range(0,len(nn)):
            nn1=int(nn[r][0])
            nn2=int(nn[r][1])
            for nnn in range(nn1,nn2):
                N.append(n) 

            mm1=int(mm[r][0])
            mm2=int(mm[r][1])
            for mmm in range(mm1,mm2):
                N.append(m)
    # print(N)

    # 数字1 的坐标位置列表值
    nn=['07','04','04','04','04','07']
    mm=['01','01','01','01','01','00']
    same()

    # 数字2 的坐标位置列表值
    nn=['06','04','02','02','04','06']
    mm=['03','01','03','01','03','00']
    same()

    # 数字3 的坐标位置列表值
    nn=['06','04','02','04','02','06']
    mm=['03','01','03','01','03','00']
    same()

    # 数字4 的坐标位置列表值
    nn=['06','01','02','01','02','01','02','03','06']
    mm=['01','01','01','01','01','01','04','01','00']
    same()

    # 数字5 的坐标位置列表值
    nn=['06','02','04','04','02','06']
    mm=['03','01','03','01','03','00']
    same()

    # 数字6 的坐标位置列表值
    nn=['06','02','04','02','01','02','06']
    mm=['03','01','03','01','01','03','00']

    # 数字7 的坐标位置列表值
    nn=['06','04','04','04','04','06']
    mm=['03','01','01','01','01','00']
    same()

    # 数字8 的坐标位置列表值
    nn=['06','02','01','02','02','01','02','06']
    mm=['03','01','01','03','01','01','03','00']
    same()

    # 数字9 的坐标位置列表值
    nn=['06','02','01','02','04','02','06']
    mm=['03','01','01','03','01','03','00']
    same()

    # 数字0 的坐标位置列表值
    nn=['06','02','01','02','01','02','01','02','06']
    mm=['03','01','01','01','01','01','01','03','00']
    same()

    Nall=[] # [[],[],[]]的样式

    for aaa in range(0,int(len(N)/int(weight*height))):    # 把35*10个数字,分割成35一组,35一组,一共10组(0-9)
        aaaa=(N[aaa*int(weight*height):aaa*int(weight*height)+int(weight*height)])
        Nall.append(aaaa)        # 10组的35个数字
    print(Nall)
    nine=random.sample(Nall,Number)      # 从10个中间随机抽9组(排序打乱,数字会少一个)
    print(nine)

    doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\像素图\数字像素图横板8个横切.docx') 

    for numbg in range(0,len(nine)): # [[],[],[]]的样式的索引数字
    #     print(num1)
        NUMnum=nine[numbg]
        print(NUMnum)      

    #  确定8*4表格的表格单元格坐标(如第1行第1格是0,0 ,第2行第3格是(1,2)   
        bg=[]
        for x in range(0,height):
            for y in range(0,weight):
                ww='{}{}'.format(x,y)
                bg.append(ww)
        print(bg)      
    
    # ['00', '01', '02', '03', '04', '05', '06', '07', '10', '11', '12', '13', '14', '15', '16', '17', '20', '21', '22', '23', '24', '25', '26', '27', '30', '31', '32', '33', '34', '35', '36', '37']
    # 提取表格单元格坐标和图形的坐标
    
        table = doc.tables[numbg]          # 一共有9个表格        

        for t in range(0,len(NUMnum)):             # 图案的长度为8*4=32个    遍历0-32(32个)
            pp=int(bg[t][0])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字
            qq=int(bg[t][1])
            k=NUMnum[t]                  # 提取list图案列表里面每个图形  t=索引数字
            print(pp,qq,k)

            run=table.cell(pp,qq).paragraphs[0].add_run(k)    # 在单元格0,0(第1行第1列)输入第0个图图案
            run.font.name = '黑体'#输入时默认华文琥珀字体
            run.font.size = Pt(size)  #输入字体大小默认30号
            run.font.color.rgb = RGBColor(100,100,100) #设置颜色10%黑色=深灰
            
            r = run._element
            r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
            table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中     

    doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\像素图\零时Word\{}.docx'.format('%02d'%(z+1)))#保存为XX学号的电话号码word     

    from docx2pdf import convert
    # docx 文件另存为PDF文件
    inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/像素图/零时Word/{}.docx".format('%02d'%(z+1))# 要转换的文件:已存在
    outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/像素图/零时Word/{}.pdf".format('%02d'%(z+1))  # 要生成的文件:不存在
    # 先创建 不存在的 文件
    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/桌面/像素图/零时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/桌面/像素图/(打印合集) 大1班 像素图数字横版横切{}乘{}乘8个({}份).pdf".format(weight,height,num))
file_merger.close()
# doc.Close()

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

重点说明:

无(与数字图5*7*8横板竖切的代码一样)

效果再显示——0-9随机抽取9个数字,排序打乱

教学活动展示

时间:2022-11-18 15:00-15:30

班级:大1班

人数:22人

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

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

相关文章

Wireshark TS | 访问网页失败

前言 访问网页失败也是日常比较常见的问题之一,导致问题的原因可能有很多种,像是客户端、浏览器、服务器或者网络等等,自然具体问题得具体分析。本篇以一个实际案例来说明下 TCP 连接相关的问题,该数据包仍然来自于 Wireshark sh…

视频m4v怎么转换成mp4?

在平时我们所使用的视频格式中除了常见的mp4,还有几十种不同的格式种类,不同的视频格式适用不同的播放设备,同时在画质,体积,编码,兼容性等方面都各具特色有所区别。其中m4v格式的视频就是适用于苹果系统的…

这波服装设计作品对女性美的诠释,十分到位

女性是温柔的、美丽的,多样的,莱佛士学生Xu Xinyi作品《Femininity&Softness》便是围绕女性展开创作。而Xinyi的作品想要传达的是:女性不应该被物化,她们是美丽且具有多样性的。 莱佛士服装设计专业学生作品在设计中&#xff…

海外直播公会Tik Tok,蓝海项目官方火热招募中

时过境迁,国内营销越来越成熟,国内公会(MCN机构)开始出现严重内卷。2022年国内公会/MCN公司已有40000多家;国内公会发展成熟,头部主播形成市场垄断;主播招墓难;孵化主播成本高。找她(HS3873)快速拿官方后台 有多少国内…

最短路径条数

在一个m行n列的网格中&#xff0c;每个网格的各边的长度均相等&#xff0c;求由A(x1,y1)点到达B(x2,y2)点的最短路径条数&#xff0c;其中1<m,n<30。输入保证x2>x1,y2>y1 如有下图网格&#xff0c;起点和终点分别是A(1,1),B&#xff08;2&#xff0c;3&#xff09;…

MySQL8.0优化 - 事务的状态

文章目录学习资料事务的状态活动的&#xff08;active&#xff09;部分提交的&#xff08;partially committed&#xff09;失败的&#xff08;failed&#xff09;中止的&#xff08;aborted&#xff09;提交的&#xff08;committed&#xff09;学习资料 【MySQL数据库教程天…

Pandas知识点-读写Excel最全参数总结(收藏)

Pandas知识点-读写Excel最全参数总结&#xff08;收藏&#xff09; pandas文件读写工具汇总 pandas中的文件读写工具由一组read的函数&#xff08;执行Input&#xff09;和一组write的对象方法&#xff08;执行Output&#xff09;组成&#xff0c;具体见下表。 本文总结最常用…

指纹识别系统设计(VC++)

目 录 摘 要 I Abstract II 1绪论 1 1.1选题背景及意义 1 1.2研究现状 2 1.3研究主要内容 2 2技术介绍 3 2.1软件环境 3 2.1.1 C的产生和发展以及特点简介 3 2.1.2 Visual C6.0简介及其优点 5 2.2硬件环境 5 3指纹识别系统需求分析 6 3.1业务需求分析 6 3.2功能需求分析 6 3.3性…

四招教你样式化界面组件KendoReact,让应用程序主题更个性化

Kendo UI致力于新的开发&#xff0c;来满足不断变化的需求&#xff0c;通过React框架的Kendo UI JavaScript封装来支持React Javascript框架。Kendo UI for React能够为客户提供更好的用户体验&#xff0c;并且能够更快地构建更好的应用程序。 开发人员在应用程序主题色的选择…

省重点实验室成果转化:24h在线的专业数字朋友,不用欠人情的网上解答神器~

数据解决大师 一个适合所有人的 数据问题咨询小程序 海量数据如何安全储存&#xff1f; 电脑系统崩溃&#xff0c;关键文档丢失怎么办&#xff1f; 手机被格式化&#xff0c;视频文档等数据如何恢复&#xff1f; 毕业论文遭恶意破坏&#xff0c;如何操作能将损失降至最低&…

Java Final关键字使用

Final关键字 final可以修饰类, 属性, 方法和局部变量 在某些情况下程序员可能有以下需求&#xff0c;就会使用到final: 1)当不希望类被继承时&#xff0c;可以用final修饰. 2)当不希望父类的某个方法被子类覆盖/重写(override)时&#xff0c;可以用final关键字修饰。[访问修饰…

谷粒学院——Day06【整合阿里云OSS、EasyExcel技术实现Excel导入分类】

阿里云存储OSS 一、对象存储OSS 1. 开通“对象存储OSS”服务 阿里云&#xff1a;https://www.aliyun.com/申请阿里云账号实名认证开通“对象存储OSS”服务进入管理控制台 2. 创建Bucket 选择&#xff1a;标准存储、公共读、不开通。 3.上传默认头像 4. 创建RAM子用户 二、…

如何手写一个单向链表?看这里

一. 问题展现 通常我们在大多数的面试中&#xff0c;遇到关于集合的问题都是比较多的。一般情况下&#xff0c;许多面试官通常都会问我们关于Set集合和Map集合的相关知识点&#xff0c;并对此进行重重陷阱的布置&#xff0c;此时很多面试者往往就很容易被带到面试官挖好的陷阱…

netstat命令详解

netstat命令详情一、前言二、netstat查看端口命令三、显示每个协议的统计信息四、显示核心路由信息五、netstat的其他参数一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;小伙伴们&#xff0c;让我们一起来学习netstat命令使用&#xff0c;netstat命令是一个监控TC…

echarts疑难杂症

echarts疑难杂症1.调整柱状图、饼图的大小2.嵌套饼图且颜色保持一致3.并排展示饼图且中间展示文字4.折线图&#xff08;柱状图&#xff09;双y轴5.使用echarts56.图形不展示的问题1.调整柱状图、饼图的大小 //柱状图主要根据grid属性中的top/bottom/left/right属性调整大小 le…

【毕业设计】机器视觉行人口罩佩戴检测系统 - python 深度学习

文章目录0 前言1 简介2 效果展示3 实现方法3.1 模型介绍3.2 获取数据集3.3 数据集获取4 最后0 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任何疑问都可以问学长哦! 这两年开始&#xff0c;各个学…

164页5万字轨道交通BIM方案建议书

目录 1、 概况 1.1. BIM国内外现状 1.1.1. 国外BIM现状 1.1.2. 国内BIM现状 1.2. BIM在轨道交通工程领域的发展概况 1.3. 中铁二院BIM发展总体思路的建议 2、 解决方案总体架构 2.1. 解决方案应具备的要素 2.2. 解决方案整体架构 2.3匹配度分析 3、 设计阶段解决方案…

数据库的基本操作(5)

先回顾一下在上一篇中的内容&#xff1a; 聚合查询&#xff1a;行和行之间的数据的加工。 聚合函数&#xff1a;count&#xff0c;avg&#xff0c;sum...... group..by...进行分组&#xff0c;将指定列的值进行分组&#xff0c;将相同的记录合并到一个组中。每个组还可以进行…

Golang入门笔记(10)—— 包

使用包的原因&#xff1a; 1.不可能把所有的不同业务功能的函数都放在一个源文件中&#xff0c;这样不便于管理。通常的做法是&#xff1a;我们会把具有相同一些功能和业务的维度的函数&#xff0c;分门别类的放在不同的源文件中。 2.不同的包名&#xff0c;可以解决两个函数…

【SQL 中级语法 3】三值逻辑和NULL

普通语言里的布尔型只有true和false两个值&#xff0c;这种逻辑体系被称为二值逻辑。而SQL语言里&#xff0c;除此之外还有第三个值unknown&#xff0c;因此这种逻辑体系被称为三值逻辑&#xff08;three-valued logic&#xff09;。 为什么SQL语言采用了三值逻辑呢&#xff1…