【教学类-35-22】正式版 20240129名字字卡3.0(15CM正方形手工纸、先男后女,页眉是黑体包含全名,名字是红豆空心黑体)

作品展示

背景需求:

以下代码已经制作出页眉黑体、名字是空心黑体的样式:

【教学类-35-21】20240129名字字卡2.0(15CM正方形手工纸、页眉是黑体,名字是红豆空心黑体)-CSDN博客文章浏览阅读498次,点赞5次,收藏6次。【教学类-35-21】20240129名字字卡2.0(15CM正方形手工纸、页眉是黑体,名字是红豆空心黑体)https://blog.csdn.net/reasonsummer/article/details/135909194?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22135909194%22%2C%22source%22%3A%22reasonsummer%22%7D

存在问题

1、按学号的顺序生成,但我希望全部男孩信息在前面,女孩信息在后i面

需求:目前我希望男孩的名字用浅蓝色手工纸打印,女孩的名字用粉红色手工纸打印,所以要提取幼儿性别,将同性别孩子的名字放在一起。再做一个性别合并版但我希望全部男孩信息在前面,女孩信息在后面

2、页眉只有学号,但目前我不熟悉中4班幼儿的全名和学号,只有一个大字无法背出幼儿全名,

需求:页眉里面包含 学号 全名 ,第几个字

代码修改:

1、增加第4列信息(性别)

2、分别提取男女的信息,写入不同的列表

页眉里面加入全名

3、保存文件名修改——需要几张蓝色纸(男名)需要几张粉色纸(女名)

代码展示:


'''
20240129中4班描字帖正方形字卡3.0 页眉是黑体 名字用红豆空心黑体,先男后女
作者:阿夏
时间:2024年1月29日'''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“的临时文件夹
imagePath1=r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word'
if not os.path.exists(imagePath1):  # 判断存放图片的文件夹是否存在os.makedirs(imagePath1)  # 若图片文件夹不存在就创建gz=23wb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\20240117中4班学号描字帖\学生名单.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(1)# 名字
col3=sheet.col_values(2)# 班级
col4=sheet.col_values(3)# 性别
num=len(col1)-1  # 第一列去掉第一行numberall=[]
numberall_boy=[]
numberall_girl=[]
# 生成 基本组:“中4 1号 第1个名字“
for num in range(1,len(col1)):       for x in range(len(col2[num])): # 如果名字长度等于3,就写3个名字 如果名字长度2,就写2个名字if col4[num]=='男':name00=str(col3[num]) +' 学号:'+str(int(col1[num])) +'号'+' '+col2[num]+' 第'+str(x+1)+'名字'    #中4 学号1号 张三第1字     name01=str(col2[num][x]) numberall_boy.append(name00)numberall_boy.append(name01)if col4[num]=='女':name00=str(col3[num]) +' 学号:'+str(int(col1[num])) +'号'+' '+col2[num]+' 第'+str(x+1)+'名字'    #中4 学号1号 张三第1字     name01=str(col2[num][x]) numberall_girl.append(name00)numberall_girl.append(name01)
print(len(numberall_boy))
print(len(numberall_girl))numberall=numberall_boy+numberall_girl
print(numberall)
print(int(len(numberall)/2))
# 需要打印172/2=86张# 分成2组,第一组是字序。是黑体28,第二组是名字,是黑体288超大
gz=2
list1=[]
list2=[]
list=[]
for fk in range(int(len(numberall)/gz)):   list1.append(numberall[fk*gz])list2.append(numberall[fk*gz+1])
list.append(list1)
list.append(list2)
print(list)
print(len(list))
# 2# 每页只有2个坐标
bg=[]
bg1=[]
bg2=[]
bgall=['0000','0100']
for b in range(len(list1)):bg1.append(bgall[0])bg2.append(bgall[1])
bg.append(bg1)
bg.append(bg2)
print(bg)# 字号 
size=[]
size1=[]
size2=[]
sizeall=['28','377']
for si in range(len(list1)):size1.append(sizeall[0])size2.append(sizeall[1])
size.append(size1)
size.append(size2)
print(size)# 字体
typeface=[]
typeface1=[]
typeface2=[]
typefaceall=['黑体','红豆空心黑体']
for ty in range(len(list1)):typeface1.append(typefaceall[0])typeface2.append(typefaceall[1])
typeface.append(typeface1)
typeface.append(typeface2)
print(typeface)
# '华文彩云''华光彩云_CNKI'for t in range(len(list1)): # 86           #  2# for b in range(2):doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\20240117中4班学号描字帖\中4班描字帖正方形.docx")table = doc.tables[0]     # print(p)for n in range(len(list)):  pp=int(bg[n][t][0:2])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字qq=int(bg[n][t][2:4]) k=list[n][t]print(pp,qq,k)# 字体大小sss=int(size[n][t])run=table.cell(pp,qq).paragraphs[0].add_run(str(k))    # 在单元格0,0(第1行第1列)输入第0个名字run.font.name =typeface[n][t] #输入时不字体run.font.size = Pt(sss)  #输入字体大小80或68号run.bold=Truerun.font.color.rgb = RGBColor(150,150,150) #设置颜色10%黑色=深灰r = run._elementr.rPr.rFonts.set(qn('w:eastAsia'), typeface[n][t])#将输入语句中的中文部分字体变为华文行楷table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx'.format('%02d'%t))#保存为XX学号的零时word  time.sleep(1)from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx".format('%02d'%t)# 要转换的文件:已存在outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.pdf".format('%02d'%t)  # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile,'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)time.sleep(1)from docx2pdf import convertprint('----------第4步:把都有PDF合并为一个打印用PDF------------')import os
from PyPDF2 import PdfMerger
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 = PdfMerger()
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/桌面/描字帖/(打印合集)中4班描字卡片 男蓝色{}张女粉色{}张 {}({}份).pdf".format(int(len(numberall_boy)/2),int(len(numberall_girl)/2),typefaceall[1],num))file_merger.close()# doc.Close()# # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word') #递归删除文件夹,即:删除非空文件夹`

终端展示

作品展示:

1、页眉是黑体,包含学号、全名和第第几个字,便于提示卡片归属(属于哪位孩子)

2、大字是红豆空心黑体,便于幼儿描边涂色。

先男:男3人 共7个字

后女:女3人,共8个字

用此方法正式制作中4班29人(先男后女)的正方形字卡。

中4班29人一共83个字,其中男孩14人共字,女孩15人共字

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java多线程--同步机制解决线程安全问题方式一:同步代码块

文章目录 一、介绍二、原理三、同步锁机制(1)synchronized的锁是什么(2)同步操作的思考顺序(3)代码演示 四、同步代码块(1)同步代码块--案例11、案例12、分析同步原理3、案例1之this…

【Sql Server】新手一分钟看懂在已有表基础上增加字段和说明

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

单片机14-17

目录 LCD1602 LCD1602液晶显示屏 直流电机驱动(PWM) LED呼吸灯 直流电机调速 AD/DA(SPI通信) AD模数转换 DA数模转换 红外遥控(外部中断) 红外遥控 红外遥控电机调速 LCD1602 LCD1602液晶显示屏 …

使用dockers-compose搭建开源监控和可视化工具

简介 Prometheus 和 Grafana 是两个常用的开源监控和可视化工具。 Prometheus 是一个用于存储和查询时间序列数据的系统。它提供了用于监控和报警的数据收集、存储、查询和图形化展示能力。Prometheus 使用拉模型(pull model),通过 HTTP 协议…

10s 内得到一个干净、开箱即用的 Linux 系统

安装 使用官方脚本安装我的服务器不行 官方脚本 mkdir instantbox && cd $_ bash <(curl -sSL https://raw.githubusercontent.com/instantbox/instantbox/master/init.sh) 下面是我的完整安装过程 mkdir /opt/instantbox cd /opt/instantbox 1.脚本文件 (这个没…

13.前端--CSS-盒子模型

1.盒子模型的组成 CSS 盒子模型本质上是一个盒子&#xff0c;封装周围的 HTML 元素&#xff0c;它包括&#xff1a;边框、外边距、内边距、和 实际内容 2.边框&#xff08;border&#xff09; 2.1 边框的使用 1、border设置元素的边框。边框有三部分组成:边框宽度(粗细) 边框…

【Git】项目管理笔记

文章目录 本地电脑初始化docker报错.gitignoregit loggit resetgit statusgit ls-filesgit rm -r -f --cached拉取仓库文件更新本地的项目报错处理! [rejected] master -> master (fetch first)gitgitee.com: Permission denied (publickey).error: remote origin already e…

在linux、window环境搭建kafka环境

一、搭建环境前置准备 下载kafka的官网 http://kafka.apache.org/downloads根据自己的需求选择版本,安装包不区分linux和windows环境,这一个安装包均可部署。 源代码包含kafka的代码文件,使用scala编写的。 二、linux环境 1. 上传安装包 我下载的版本是kafka_2.12-3.6.1…

盒子模型的内容总结

知识引入 1.认识盒子模型 在浏览网站时我们会发现内容都是按照区域划分的。这使得网页很工整、美观。在页面中&#xff0c;每一块区域分别承载不同的内容&#xff0c;使得网页的内容虽然零散&#xff0c;但是在版式排列上依然清晰有条理。如图1 图1 *承载内容的区域称为盒子…

幻兽帕鲁越玩越卡,内存溢出问题如何解决?

近期幻兽帕鲁游戏大火&#xff0c;在联机组队快乐游玩的同时&#xff0c;玩家们也发现了一些小问题。由于游戏有随机掉落材料的设定&#xff0c;服务器在加载掉落物的过程中很容易会出现掉帧、卡顿的情况。某些玩家甚至在游戏1&#xff5e;2时后就出现服务器崩溃的情况&#xf…

MarkDown快速入门-以Obsidian编辑器为例

直接上图&#xff0c;左右对应。 首先是基础语法。 # 标题&#xff0c;几个就代表几级标题&#xff1b;* 单个是序号&#xff0c;两个在一起就是斜体&#xff1b;- [ ] 代表任务&#xff0c;注意其中的空格&#xff1b; 然后是表格按钮代码 | 使用中竖线代表表格&#xff0c…

操作系统-调度的概念,层次(低中高级调度和挂起状态与七模型)和进程调度的过程,时机,切换,方式(临界区,进程调度的时机,方式,切换与过程)

文章目录 调度的概念&#xff0c;层次总览调度的基本概念调度的三个层次-高级调度调度的三个层次-低级调度调度的三个层次-中级调度补充&#xff1a;挂起状态与七状态模型三层调度的联系&#xff0c;对比小结 进程调度的过程&#xff0c;时机&#xff0c;切换&#xff0c;方式总…

源聚达科技:开一家抖音店铺怎么做最好

在数字化浪潮的推动下&#xff0c;抖音不仅是年轻人展示才华的舞台&#xff0c;也成为商家争夺流量的新阵地。开一家抖音店铺&#xff0c;看似简单&#xff0c;实则需要精心策划和周到运营。 首要任务是确立店铺定位。正如古人云“磨刀不误砍柴工”&#xff0c;明确目标受众和主…

k8s 进阶实战笔记 | Scheduler 调度策略总结

文章目录 Scheduler 调度策略总结调度原理和过程调度策略nodeSelect亲和性和反亲和性NodeAffinify亲和验证PodAffinity 亲和验证PodAntiAffinity 反亲和验证污点与容忍跳过 Scheduler 调度策略 调度策略场景总结 Scheduler 调度策略总结 调度原理和过程 Scheduler 一直监听着…

【C++】C++入门基础讲解(二)

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 导读 接着上一篇的内容继续学习&#xff0c;今天我们需要重点学习引用。 1. 引用 在C中&#xff0c;引用是一种特殊的变量&#xff…

免费电视TV盒子软件,好用的免费电视盒子软件大全,免费电视盒子APP大全,2024最新整理

1、TVbox下载地址、影视接口、配置教程 下载地址 TVbox TVbox可用接口地址合集 注&#xff1a;接口均来源于互联网收集分享&#xff01;所有接口都是经过测试的&#xff0c;如果出现加载失败等情况&#xff0c;可能是因为接口针对的盒子有兼容问题&#xff0c;可以多试试几…

Linux多线程服务端编程:使用muduo C++网络库 学习笔记 第十一章 反思C++面向对象与虚函数(上)

C的面向对象语言设施相比其他现代语言可算得上“简陋”&#xff0c;而且与语言的其他部分&#xff08;better C、数据抽象、泛型&#xff09;融合度较差&#xff08;见电子工业出版社出版的《C Primer&#xff08;第4版&#xff09;&#xff08;评注版&#xff09;》第15章&…

语义分割 | 基于 VGG16 预训练网络和 Segnet 架构实现迁移学习

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要使用数据标注工具 Labelme 对猫&#xff08;cat&#xff09;和狗&#xff08;dog&#xff09;这两种训练样本进行标注&#xff0c;使用预训练模型 VGG16 作为卷积基&#xff0c;并在其之上添加了全连接层。基于标注样本…

uni-app 接口封装,token过期,自动获取最新的token

一、文件路径截图 2、新建一个文件app.js let hosthttp://172.16.192.40:8083/jeecg-boot/ //本地接口 let myApi {login: ${host}wx/wxUser/login, //登录 } module.exports myApi 3、新建一个文件request.js import myApi from /utils/app.js; export const r…

MySQL知识点总结(二)——explain执行计划、SQL优化

MySQL知识点总结&#xff08;二&#xff09;——explain执行计划、SQL优化 explain执行计划typepossible_keyskeysextra SQL优化SQL优化的流程SQL优化技巧范围查询优化排序优化分组查询优化distinct优化分页查询优化join关联查询优化排序分页 关联查询分组 关联查询 排序in与…