【教学类-35-04】学号+姓名+班级(中3班)学号字帖(A4竖版2份 竖版长条)

news2025/2/26 3:32:29

 图片展示:

背景需求:

2022年9-2023年1月我去过小3班带班,但是没有在这个班级投放过学具,本周五是我在本学期第一次带中3班,所以提供了一套学号描字帖。先让我把孩子的名字和脸混个眼熟。

之前试过一页两套名字的纸张切割方法有:

1、A4横版,横向两长条, 切割线在短边中线(左右切割)

2、A4竖版,横向两个长方块, 切割线在长边中线(左右切割)

本次再设计一款板式:

3、A4竖版,纵向两长条, 切割线在短边中线(上下切割)

材料准备:

描字写(学号、名字)非常实用,所以我已经写了很多很多个WORD模板了。

为了区分,这一次又建了一个文件夹 202301013中3班学号描字帖。

包含素材:

WORD模板样式

EXCEL名单样式

代码展示:

1.py位置

2.代码段

'''

作者:阿夏
时间:2023年10月13日
A4竖版两人竖2条,每人2列7行

'''

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 Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn

# hs=int(input('一行2个,需要几行(1行,还有6行是表格)\n'))

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


wb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\20231013中3班学号描字帖\学生名单.xlsx") #打开文件并返回一个工作蒲对象。open_workbook可以点进去看看函数里面的参数的含义之类的,很详细,英语不好的可以百度翻译,翻译出来的结果差不多。
sheet=wb.sheet_by_index(0)   #通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
col1=sheet.col_values(0)# 学号
col3=sheet.col_values(1)# 班级

col2=sheet.col_values(2)# 名字
num=len(col1)-1  # 第一列去掉第一行
# for z in range(0,num):   #多少份  
# list=[]
# nb=[]
# nb2=[]
numberall=[]
# 生成 基本组:“学号+名字“
for num in range(1,len(col1)):
   
    name00=col2[num]     #吧学号和名字拼在一起, 张三
    numberall.append(name00)
    
    for x1 in range(2):
        number=col3[num]
        numberall.append(number)
    # print(name00)
    for x2 in range(12):
        number=int(col1[num])     #吧学号和名字拼在一起, 张三
        numberall.append(number)
    for x3 in range(2):
        b=' '
        numberall.append(b)
print(numberall)
# 一个数组【】

# 切开25人 一人16个数字
list1=[]
for fk in range(int(len(numberall)/17)):    # 一共16格子
    list1.append(numberall[fk*17:fk*17+17])
# print(list1)
# print(len(list1))

list=[]
for r in range(int(len(list1)/2)):
    list.append(list1[r*2:r*2+2])
print(list)
print(len(list))


# 25个数组【】

bg=[]
a='00'
bg.append(a)
for x in range(1,8):
    for y in range(2):
        z2='{}{}'.format(x,y)
        bg.append(z2)
print(bg)
# ['00', '10', '11', '20', '21', '30', '31', '40', '41', '50', '51', '60', '61']

for n in range(int(num/2)):
    doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\20231013中3班学号描字帖\中3班描字帖.docx")
    for b in range(2):
        table = doc.tables[b] 
        # print(p)
        for t in range(len(bg)):    # 0-17
            # print(list[t])
                        
            pp=int(bg[t][0])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字
            qq=int(bg[t][1]) 
            k=list[n][b][t]
            # f=font[t]   

            print(pp,qq,k)

            run=table.cell(pp,qq).paragraphs[0].add_run(str(k))    # 在单元格0,0(第1行第1列)输入第0个名字
            run.font.name = '楷体'  #输入时不字体
            run.font.size = Pt(60)  #输入字体大小80或68号
            run.bold=True
            run.font.color.rgb = RGBColor(200,200,200) #设置颜色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'%n))#保存为XX学号的零时word  

    from docx2pdf import convert
    # docx 文件另存为PDF文件
    inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx".format('%02d'%n)# 要转换的文件:已存在
    outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.pdf".format('%02d'%n)  # 要生成的文件:不存在
    # 先创建 不存在的 文件
    f1 = open(outputFile,'w')
    f1.close()
    # 再转换往PDF中写入内容
    convert(inputFile, outputFile)

    from docx2pdf import convert


print('----------第4步:把都有PDF合并为一个打印用PDF------------')

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/桌面/描字帖/(打印合集)中3班描字帖练习册({}份).pdf".format(num))
file_merger.close()
# doc.Close()

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

终端运行

不用输入参数,直接运行

成果位置

字号变小(65改60

学具裁切

幼儿操作:

时间:2023年10月13日 下午14:20-14:35

班级:中3

人数:23人

                        

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

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

相关文章

2023年中国缝纫机针行业分类、市场规模及存在问题分析[图]

缝纫机针是指用于缝纫机上的零件,用于穿透和连接不同种类的织物,从而完成缝纫工作。这些针通常由金属制成,具有不同的形状、尺寸和用途,以适应各种缝纫需求,如直线缝、锁边、装饰等。 缝纫机针行业分类 资料来源&…

新风机缺点有哪些?

虽然新风机在提供新鲜空气和改善室内空气质量方面有很多优点,但它也存在一些缺点。下面列举几个常见的新风机缺点: 安装成本较高:新风机需要通过管道连接室内和室外,需要对房屋进行改造和安装。这可能会增加一些额外的安装成本&am…

Dhgate敦煌手机端下单支付测试

1. 打开敦煌首页,点击左上角的图标打开菜单 2. 点击Join Free注册账号。 3. 点击SIGN UP注册账号,填写账号的信息。 4. 填写收货地址后注册完成。 5. 找到自己需要购买的商品,点击进去。 6. 点击Buy it now 7. 选择完颜色 类型后进入下一步。…

缓存设计的创新之旅:架构的灵魂之一

缓存在架构设计中占有重要地位。缓存在提升性能中也扮演重要的角色。常见的有对资源的缓存,比如数据库连接池、http连接池,还有对数据的缓存等。缓存的设计可复杂也可简单,但是需要考虑的点却很多。 缓存对象 设计缓存的时候一定要考虑的是&…

将vue项目打包成安卓app

目标:将vue项目打包成安卓app 工具:HbuilderX 1.在HbuilderX中创建一个 5App 项目 创建好的app项目目录 2.将vue项目打包 2.1 在 vue.config.js 中添加公共路径(解决打包后的app图片不显示问题) module.exports defineConfig(…

Java进阶 之 再论面向对象(1)——面向对象的编程思想 Java中的类和对象 深入认识对象,内存图解+变量作用域+参数传递

前言 我们都知道Java是一门面向对象object-oriented(OOP)的编程语言,但究竟什么是面向对象,为什么要用面向对象,往往会语焉不详。 本篇博客从面向过程和面向对象的编程思想谈起,阐述了类和对象在Java中的…

044:mapboxGL利用fill-extrusion自定义挤出状建筑体

第044个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中利用fill-extrusion自定义挤出状建筑体。填充挤压样式图层在地图上渲染一个或多个填充(以及可选的描边)挤压(3D)多边形。 您可以使用填充拉伸图层来配置多边形或多多边形要素的拉伸和视觉外观。 直接复…

JMeter定时器

一. 同步定时器(Synchronizing Timer) (在Loadrunner中叫做集合点) 思考: 如何模拟多个用户同时抢一个红包?如何测试电商网站中抢购活动、秒杀活动? 1.1 介绍 Sync Timer的目的是阻塞线程,直…

【算法-动态规划】完全背包问题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

计算机毕业设计选什么题目好?springboot 儿童福利院管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【Java 定时任务】crontab定时任务配置(139)

背景 在日常的开发工作中我们经常会遇到定时任务的相关问题,比如: 信用卡定时每月给用户推送账单数据; 轮训更新某个任务的状态是否完成; 设置一个定时提醒; 邮件或消息设置定时发送; 定时统计某个时间段的…

高压放大器在软体机器人领域的应用

软体机器人是一种新型机器人技术,与传统的硬体机器人有着很大的不同。软体机器人通常由柔软的材料制成,具有高度的柔韧性和灵活性,并且可以实现多种形状和动作。但是,软体机器人的发展面临很多技术挑战,其中之一就是控…

信息与网络安全基础知识汇总

需要面试真题和考证资料的 面试真题考证资料点我领取 面试真题考证资料点我领取 面试真题考证资料点我领取 一、概述 1.网络信息安全基本概念 信息安全:是指信息网络中的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破…

2023年中国潜望式镜头市场发展趋势分析:潜望式镜头渗透将进一步提升[图]

随着摄像技术的渐渐成熟,专业摄影师对镜头的要求越来越高,所以产生了潜望式镜头,“潜望镜式变焦”镜头俗称“内变焦”镜头,由于光学变焦是在机身内部完成,所以可以很容易安装滤镜,无需额外安装镜头筒。其次…

推荐16款最好的3dMax插件

3DMAX本身就是一个非常复杂的3d软件,有许多功能。所有的建模、动画和模拟工具都在其中.然而,也有由外部作者创建的插件或脚本。 这些插件可以显著改善和促进3DMAX的工作的。在许多情况下,它们超出了这个应用程序的基本工具,并引入了原始创造者未提供的功能。下面就给大家介绍…

C语言之文件操作篇(1)

目录 为什么要使用文件 什么是文件 文件名 文件名的访问路径 相对路径 绝对路径 文件类型 文件缓冲区 文件指针 文件的打开与关闭 fopen fclose 打开方式如下 w r 今天我们来介绍C语言的文件操作。之前我们实现的通讯录有两个问题 信息太多,空间小了…

什么是无人直播呢?

无人直播是指通过技术手段实现直播间不停播,从而无需主播真人出镜参与直播。这种直播方式通常需要使用一些特定的软件或工具,例如虚拟背景软件等。 无人直播通常用于一些商业目的,如广告宣传、产品销售等。 通过无人直播,商家可…

2023年中国在线问诊行业发展历程及趋势分析:线上医疗将朝服务多样化、智慧化发展[图]

在线问诊是指通过开设线上义诊等通道进行诊疗的活动,主要作用是可防止线下就诊造成交叉感染。在线问诊平衡医疗资源供给,但问诊顺利开展的前提是可以提供专业的诊断或医疗建议。线上问诊病人很难甄别医生的资质,所以只能作基础性诊断参考。 …

ssm+vue的培训学校教学管理平台(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的培训学校教学管理平台(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结…

keepalived+nginx实现高可用

1.安装keepalived、nginx yum install keepalived –y//centos默认无nginx源 rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmyum install -y nginx2.修改keepalived配置文件(/etc/keepalived/keepalived.c…