当前位置: 首页 > news >正文

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

 图片展示:

背景需求:

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=Truerun.font.color.rgb = RGBColor(200,200,200) #设置颜色10%黑色=深灰r = run._elementr.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 convertprint('----------第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.lryc.cn/news/190940.html

相关文章:

  • 什么叫AI自动直播?
  • LLaMA Adapter和LLaMA Adapter V2
  • 高压放大器在软体机器人领域的应用
  • 《Linux C/C++服务器开发实践》之第4章 TCP服务器编程
  • HCIA---静态路由扩展配置
  • OCP Java17 SE Developers 复习题04
  • spark中使用flatmap报错:TypeError: ‘int‘ object is not subscriptable
  • node.js知识系列(5)-每天了解一点
  • Linux服务器(银河麒麟、CentOS 7+、CentOS 7+ 等)修改IP地址
  • Mall脚手架总结(四) —— SpringBoot整合RabbitMQ实现超时订单处理
  • python实现图像的直方图均衡化
  • 哪种烧录单片机的方法合适?
  • 安规电容总结
  • MyCat分片垂直拆分
  • MongoDB bin目录没有mongo.exe命令
  • Zookeeper分布式一致性协议ZAB源码剖析
  • 微软 AR 眼镜新专利:包含热拔插电池
  • 软件TFN 2K的分布式拒绝攻击(DDos)实战详解
  • 计算机网络第四章——网络层(末)
  • Newman基本使用
  • 左值引用右值引用
  • 学习开发一个RISC-V上的操作系统(汪辰老师) — 一次RV32I加法指令的反汇编
  • IDEA中点击New没有Java Class
  • 打造炫酷效果:用Java优雅地制作Excel迷你图
  • pycharm设置pyuic和pyrcc
  • OpenCV6-图形绘制
  • kafka消费者程序日志报错Offset commit failed问题研究
  • SpringBoot+原生HTML+MySQL开发的电子病历系统源码
  • 软件测试/测试开发/人工智能丨聊聊AutoGPT那些事儿
  • KdMapper扩展实现之SOKNO S.R.L(speedfan.sys)