【教学类-36】八等分格子-A4竖版-4条(制作皇冠、戒指)

news2024/11/25 16:46:11

背景需求:

最近在大四班孩子中间普及铅画纸制作“方盒”的活动,目前进展到使用三条8等分的长条纸,制作一个“坚硬的、不漏底”的方盒。

实验后,我想试试如果缩小纸条长宽,是不是可以做“迷你”纸盒。

'''
目的:
1、8格竖版小号一页4份每人三条  戒指、三条连接的王冠
2、作者:阿夏
时间:2023年11月16日)

'''

import os
# num=int(input('生成多少份(28人)\n'))


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

# 
# path=['▲','●','◆','■','★','✿','❀']
    #   '♠','♥','♦','♣',]
    # 一页4个需要4的倍数,36个可以分成9张
patho=['☆','□','○','◇','△','⊕','☼','☺','☏','◎','⊿','√', '×','☑','☹','☺','☼','♫','❀','❤','✉','✄','✈','♘','♕','♔','☀','☉','☋','☁','☂','☽','♤','♡','♢','♧',]
# 
 
# 把每个符号做21次
pathall=[]
for t in range(len(patho)):
    for v in range(27):
        pathall.append(patho[t])
print(pathall)   
print(len(pathall))

# 21分割 ['21个图形','21个图形']
path=[]
for t in range(int(len(pathall)/27)):
    path.append(pathall[t*27:t*27+27])
print(path)

paththree=[]
for t2 in range(int(len(path)/4)):
    paththree.append(path[t2*4:t2*4+4])
print(paththree)
print(len(paththree))


# # # print('----------第2步:新建一个临时文件夹------------')
# # # # # 新建一个”装N份word和PDF“的文件夹
# os.mkdir
imagePath1=r'C:\Users\jg2yXRZ\OneDrive\桌面\八方格数学题\零时Word'
if not os.path.exists(imagePath1):  # 判断存放图片的文件夹是否存在
    os.makedirs(imagePath1)  # 若图片文件夹不存在就创建

print('----------第3步:遍历输入每一种图案 ------------')

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

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


# 坐标
s=[1,2,3,4,5,6,2,4]
# #     # 需要复制的倍数 第一个格子2个点,第2个格子1个点,第3个格子3个点
bg=[]
for x in range(0,4):
    for y  in range(0,8,2):
        # 只有第1-2行需要插入图案
    
        zz='{}{}'.format('%02d'%x,'%02d'%y)
        bg.append(zz)
print(bg)
# ['0000', '0002', '0004', '0006', '0100', '0102', '0104', '0106', '0200',

bg1=[]
for tt in range(len(s)):    
    hh=int(s[tt])        # 第一个数字1
    print(hh)
    for kk in range(hh):        # 数字出现几次1次、2次、6次
        jj=bg[tt]        # bg的第一个坐标‘01’
        bg1.append(jj)
print(bg1)
# ['01', '02', '02', '03', '03', '03', '03', '03', '03', '04', '04', '04', '04', '04', '12', '12', '12', '12', '12', '12', '14', '14', '14', '14']


for nn in range(0,len(paththree)):  # 4

    doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\八方格数学题\8方格(竖版小).docx')

    for b in range(0,4):    # 共有2个表格         
        table = doc.tables[b]          # 一共有2个表格 

        # 插入图形
        for tt in range(len(bg1)):   # 21个
            pp=int(bg1[tt][0:2])    
            qq=int(bg1[tt][2:4])  
            # print(p)               
            k=paththree[nn][b][tt]              # 每个坐标里面插入一个☉      
            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(46)  #输入字体大小默认30号 换行(一页一份大卡片
            run.font.size = Pt(21) #是否加粗
            run.font.color.rgb = RGBColor(0,0,0) #数字小,颜色深0-255
            run.bold=True
            # paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距
        
            r = run._element
            r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
            table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中   

        # # 记录表里面插入一个图形符号
        # table1 = doc.tables[b+4]          # 表4、5、6   
                  
        # k3=paththree[nn][b][0]           # 每个坐标里面插入一个☉ 
        # k2='({})'.format(k3)    
        # print(k2)  
    

        # # 图案符号的字体、大小参数
        # run1=table1.cell(0,3).paragraphs[0].add_run(k2)    # 在单元格0,0(第1行第1列)输入第0个图图案
        # run1.font.name = '黑体'#输入时默认华文彩云字体
        # # run.font.size = Pt(46)  #输入字体大小默认30号 换行(一页一份大卡片
        # run1.font.size = Pt(22) #是否加粗
        # run1.bold=True
        # run1.font.color.rgb = RGBColor(0,0,0) #数字小,颜色深0-255
        # # paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距
    
        # r1 = run1._element
        # r1.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
        # table1.cell(0,4).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中      
  
      



                
    doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\八方格数学题\零时Word\{}.docx'.format('%02d'%nn)) 

    doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\八方格数学题\零时Word\{}.docx'.format('%02d'%nn))   
    from docx2pdf import convert

    # docx 文件另存为PDF文件
    inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/八方格数学题/零时Word/{}.docx".format('%02d'%nn)  # 要转换的文件:已存在
    outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/八方格数学题/零时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/桌面/八方格数学题/零时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/桌面/八方格数学题/(打印合集)八方格竖版({}人共{}张).pdf".format(len(patho),int(len(path)/4)))
file_merger.close()
# doc.Close()



# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/八方格数学题/零时Word') #递归删除文件夹,即:删除非空文件夹o

重点说明

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

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

相关文章

为什么别人年薪30W+?同样为测试人,“我“的测试之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、软件测试员&am…

可变形卷积 DeformConv2d

可变性卷积 前言为什么要用DConv普通卷积和与可变形卷积计算过程普通卷积计算过程Pytorch官方API可变形卷积计算过程 参考资源 前言 可变形卷积即DCN(缩写取自Deformable ConvNets)提出于ICCV 2017的paper: Deformable Convolutional Networks 论文pape…

【LLM之基座】qwen 14b-4int 部署踩坑

由于卡只有24G,qwen14b 原生需要 30GB,按照官方团队的说法,他们用的量化方案是基于AutoGPTQ的,而且根据评测,量化之后的模型效果在几乎没有损失的情况下,显存降低到13GB,妥妥穷狗福音&#xff0…

vue使用navigator.mediaDevices.getUserMedia调用相机功能

目录 前言: API: API简单示例: 拍照功能 实现效果: 前言: 本文将介绍Vue中如何使用navigator.mediaDevices.getUserMedia调用相机功能,实现拍照使用实例,需要的朋友可以参考一下。 注意…

02_SHELL编程之流程控制和循环语句

课程目标 熟悉流程控制语句基本语法,如if…else… 掌握for循环语句的基本语法结构 掌握while和until循环语句的基本语法结构 ###一、流程控制语句 ####1. 基本语法结构 F: false 假 T: true 真 if [ condition ];thencommandcommand fi ​ [ 条件 ] &&a…

NSSCTF第12页(3)

[NSSCTF 2nd]php签到 首先,代码定义了一个名为 waf 的函数,用于执行一个简单的文件扩展名检查来防止上传恶意文件。 $black_list 是一个存储不允许的文件扩展名的数组,如 “ph”、“htaccess” 和 “ini”。 pathinfo($filename, PATHINF…

拥抱开源生态,算能携手软件所 PLCT 实验室联合举办 RISC-V 软件移植优化锦标赛

(引言)为推动RISC-V软件生态加速发展,算能作为RISC-V生态的领先企业,与RISC-V 中国社区、中科院软件所PLCT实验室联合发起“RISC-V软件移植及优化锦标赛”活动,以桌面和服务器软件生态为重点,在编译器、运行…

2023-11-17 LeetCode每日一题(最大和查询)

2023-11-17每日一题 一、题目编号 2736. 最大和查询二、题目链接 点击跳转到题目位置 三、题目描述 给你两个长度为 n 、下标从 0 开始的整数数组 nums1 和 nums2 ,另给你一个下标从 1 开始的二维数组 queries ,其中 queries[i] [xi, yi] 。 对于…

SOLIDWORKS参数化设计之主参数设置

SOLIDWORKS参数化设计是通过主参数来驱动整个模型的变化,因此确定主参数是很重要的部分。主参数可以是数值,也可以是条件,可以手动输入,也可以做成下拉列表。今天我们就来看看主参数的下拉列表是如何做到的。 SolidKits.AutoWork…

近期局势较多变化 适合黄金代理入场吗?

进入本年的四季度后,中东局势出现了比较大的变化。首先,巴以冲突不断的加剧,而且马来西亚的林吉特出现大幅贬值,甚至有市场论调认为,亚洲金融危机可能会重新点燃。从这个角度来说,整体的市场环境是很动荡的…

波卡三季度报告:已实现白皮书目标,异步支持与应用链技术推进

作者:Nicholas Garcia,Messari 研究分析师 编译:OneBlock 来源:https://messari.io/report/state-of-polkadot-q3-2023 知名分析平台 Messari 发布了 Polkadot 2023 年第三季度报告,分析了波卡的关键数据指标以及网…

【蓝桥杯选拔赛真题23】C++计算24 第十二届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

C/C++计算24 第十二届蓝桥杯青少年创意编程大赛C++选拔赛真题 一、题目要求 1、编程实现 “计算 24”是一个流传已久的数字游戏,小蓝最近对此痴迷不已 游戏规则是:从 1~10 之间的自然数任意拿出 4 个数(4 个数各不相同,顺序随机),进行加、减、乘三种运算(使用某种运算…

0基础如何学习软件测试?10分钟给你安排明白

先上一张学习路线: 在测试行业已经呆了5年多了,也算得上行业经验资深了吧,基本上也是摸清了这个行业的发展。 所以今天也想对有转行想法的朋友分享一下经验,能够让你对这个行业有个大致的了解和对以后的发展有所规划,…

9.3 【MySQL】系统表空间

了解完了独立表空间的基本结构,系统表空间的结构也就好理解多了,系统表空间的结构和独立表空间基本类似,只不过由于整个MySQL进程只有一个系统表空间,在系统表空间中会额外记录一些有关整个系统信息的页面,所以会比独立…

Android Proguard混淆

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、语法规则3.1 输入/输出选项3.2 保留选项3.3 缩…

车载终端功能盘点(车载终端工业行业解决方案案例)

​ 随着车联网的蓬勃发展,车载终端在物流运输、公共交通等领域得到广泛应用。车载终端以其强大的功能,为不同行业提供定制化的解决方案。本文将盘点车载终端的核心功能,并给出工业场景的应用案例。 一、车载终端SV900的核心功能 1. 车辆定位 车载终端集成高灵敏度的GPS模块,…

鉴源论坛 · 观模丨软件单元测试真的有必要吗?(下)

作者 | 包丹珠 上海控安产品总监 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” “软件单元测试真的有必要吗?(上)”一文中,着重探讨了单元测试的重要性及其正面临的困境&#xff0c…

StoneDB顺利通过中科院软件所 2023 开源之夏 结项审核

近日,中科院软件所-开源软件供应链点亮计划-开源之夏2023的结项名单正式出炉,经过三个月的项目开发和一个多月的严格审核,共产生 418个成功结项项目!其中,StoneDB 作为本次参与开源社区,社区入选的两个项目…

<shell>《Shell脚本-极简实用手册(高级)》 (自用、持续更新)

1 变量 1.1 2>&1 解释:将“标准错误”输出到“标准输出文件中”。 示例:cat /etc/hosts >> $LOG 2>&1 说明: 1、使用 > 或 >> 时,默认为标准输出 1 重定向, 所以 > file 就是 1> file 的省…

EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(二):EtherCAT总线初始化

XPCIE1032H功能简介 XPCIE1032H是一款基于PCI Express的EtherCAT总线运动控制卡,可选6-64轴运动控制,支持多路高速数字输入输出,可轻松实现多轴同步控制和高速数据传输。 XPCIE1032H集成了强大的运动控制功能,结合MotionRT7运动…