成品样式:

背景需求:

感觉上大1班孩子都会写名字,但做《数字图密码》时,几位大班孩子说:“我不会写名字”“那你就写个学号吧!”

原来上次做《破译电话号码》时,学具上已经有了幼儿的灰色名字,所以他们只要描名字就能写出自己的名字。实际上并不是所有大班孩子都能默写自己的名字。

因此我还是要把曾经用python(txt)和uibot批量的学号名字贴用python(excle)写出来。

word表格设置

不用分栏

EXCLE设置:

代码发布:

'''作者:阿夏
时间:2022年11月19日
名称:大班学具描字帖A4全板面 2*7个字 字号49(4字)活60(2、3字)'''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个,需要几行(7行)\n'))print('----------第1步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word')wb= xlrd.open_workbook(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\学生名单.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)# 名字
num=len(col1)-1  # 第一列去掉第一行
# for z in range(0,num):   #多少份
list=[]
nb=[]
nb2=[]
# 生成 基本组:“学号+名字“
for num in range(1,len(col1)):doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\学生名单A4.docx")name='{}{}'.format ('%02d'%int(col1[num]),col2[num])     #吧学号和名字拼在一起, 01张三  names=name+' '+name    # '01张三  01张三'print(names)for nn in range(7):doc.add_paragraph(names)# '01张三  01张三'# '01张三  01张三'# '01张三  01张三'# '01张三  01张三'# '01张三  01张三'# '01张三  01张三'# '01张三  01张三'# 字体这一段一定要再写一次for paragraph in doc.paragraphs:for run in paragraph.runs:             run.font.size = Pt(49)                # 如果有4个字的名字,最大尺寸49,# run.font.size = Pt(60)                 # 如果所有姓名都是2-3个字,可以用60run.font.bold = False                    #数字题目字体是否加粗 不加粗,5*8再加粗比较满,压抑了run.font.name = 'Arial'           # 控制是英文时的字体run.element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')  # 控制数字是中文时的字体paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT # 设置数字页眉居中对齐# paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置数字页眉居中对齐run.font.color.rgb = RGBColor(200,200,200) #设置颜色浅灰# paragraph.paragraph_format.line_spacing=1.5 #数字中文字的段行距paragraph.paragraph_format.line_spacing = Pt(90) #数字段间距# 设置主要页边距 5from docx.shared import Cm # 导入cm模块doc.sections[0].top_margin = Cm(1)# sections[1]是第二节=第二页 上边距doc.sections[0].bottom_margin = Cm(1)# sections[1]是第二节=第二页 下边距doc.sections[0].left_margin = Cm(1) # sections[1]是第二节=第二页 左边距doc.sections[0].right_margin = Cm(1)# sections[1]是第二节=第二页 右边距# 设置其他页边距 doc.sections[0].gutter=Cm(0)# sections[1]是第二节=第二页 装订线 默认为0 左doc.sections[0].header_distance=Cm(0.8)# sections[1]是第二节=第二页 页眉边距doc.sections[0].footer_distance=Cm(1.3)# sections[1]是第二节=第二页 页脚边距# 装订线还有一个位置属性,暂时未发现如何设置,默认为左,如果需求设置成右,可以建个模板docx文档导入。# 设置纸张方向和大小  LANDSCAPE=横  PORTRAIT纵  默认信纸 纵from docx.shared import Cm # 导入CM # from docx.enum.section import WD_ORIENTATION  # 导入纸张方向doc.sections[0].page_height = Cm(29.7)  # 设置A4纸的高度doc.sections[0].page_width = Cm(21)  # 设置A4纸的宽doc.sections[0].orientation = WD_ORIENTATION.LANDSCAPE # 设置纸张方向为横向 L # 设置分栏 如果不要,就把数字该为为1from docx.oxml.ns import qndoc.sections[0]._sectPr.xpath('./w:cols')[0].set(qn('w:num'), '1') #把第二节页设置为2栏doc.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\描字帖\零时Word\{}.docx".format('%02d'%num))from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word/{}.docx".format('%02d'%num)# 要转换的文件:已存在outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word/{}.pdf".format('%02d'%num) # 要生成的文件:不存在# 先创建 不存在的 文件f1 = open(outputFile, 'w')f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)# 多个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/桌面/描字帖/(打印合集)大班A整页描字帖2乘7-有4个名字({}人).pdf".format(num))
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/(打印合集)大班A整页描字帖2乘7-只考虑2-3个名字({}人).pdf".format(num))
file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/描字帖/零时Word') #递归删除文件夹,即:删除非空文件夹

重点说明:

作品展示:

如果孩子有四个名字的,用49磅字号。

保存名称修改

最后效果

因为大部分孩子都是2-3个名字,所以可以再改参数,做一份60磅。

保存设置

作品效果

对比图:

为了让2-3个名字的孩子画更大的名字,建议做两份PDF 选择需要的页码打印(2-3名字的用60号的PDF,4个名字的用49号的PDF

感悟:

一通百通

【教学类-15-02】20221119《姓名描字帖-A4竖版(2*7)普通中号字》(大班适合中层次幼儿)相关推荐

  1. 【教学类-15-03】20221119《姓名描字帖-A4竖版(1*7笔画复杂大字)》(大班适合中层次幼儿)

    成品样式: 背景需求: 49号字体和60号字体可以批量出2*7个名字,但是一些孩子的名字笔画很多,如果用60号字体不容易画清里面的所有笔画.所以需要将名字的字号变大. 选了一些复杂的名字做样板,延时1 ...

  2. 【教学类-21-02】20221210《青花茶杯-A4纸插入式纸盒-不同花纹》(大班主题《我是中国人-青花瓷》)

    展示效果: 单张效果(印章信息只保留名字)  多张效果(每张都是不同的青花纹理)  打印效果: 背景需求: 茶杯上面的花纹都不一样,可以让孩子们欣赏更多的青花纹理,每张的印章名字也不同 设计难点 原始 ...

  3. 【教学类-21-01】20221205《青花茶杯-A4纸插入式纸盒-统一花纹》(大班主题《我是中国人-青花瓷》)

    展示效果: 单张效果 多张效果 隐藏的部分 信息: 1.右侧第1列:幼儿园名字: 2.右侧第3列,幼儿名字 (1)3个名字+印 (为了统一4字) (2)2个名字+印章/印信/印文)(为了统一4字) ( ...

  4. 【教学类-17-01】20221122《世界杯七巧板A4整页-随机参考图+七巧板+画框》(大班)

    效果展示: 单页效果 多页效果 预设样式: 背景需求: 2022年11月20日 2022年卡塔尔世界杯足球赛在卡塔尔首都多哈举行.借此契机,我设计一份七巧板让幼儿拼"踢足球"的造型 ...

  5. 【教学类-17-02】20221125《世界杯七巧板A4整页-随机参考图七巧板 3份一页》(大班)

    效果展示: 单页效果 多页效果 预设样式: 背景需求: 2022年11月24日,大1班随机抽取的9位幼儿制作了9张拼图,发现以下三个问题: 1.粉红色辅助纸选择量多--9份作业有4位幼儿的七巧板人物是 ...

  6. 【教学类-22-01】20221207《八款字体的描字帖-2*4格横条-用订书机》(中班描字)

    成品样式: 80号字(适应2-3个名字的大小) 68号字(适应4个名字大小(2-3个名字也可以用,字会很小)) 打印样式: 背景需求: 前期进行多次的Python学具教学活动,对中3班.大1班幼儿书写 ...

  7. 【教学类-12-10】20230316《连连看竖版6*6 (3套题目空心图案)(中班主题《玩具总动员》)

    2023年2月28日在中1班做<练练看竖版6*6>,打印时失误,选择28份打印28份了,所以多打印了很多带有中一班字样的<连连看竖版6*6>学具 2023年3月16日,我在中6 ...

  8. 【教学类-22-02】20221210《八款字体的描字帖-4*4格整张-不用订书机》(大班主题《我是中国人-中国字》)

    成品样式: 48号字(适应2-3个名字的大小) 44号字(适应4个名字大小(2-3个名字也可以用,字会稍微小)) 打印样式: 背景需求: 观摩中3班做"描花体字"的本子的情景后,我 ...

  9. 【教学类-13-02】20221115《数字色块图5*7*8-A4横板-竖切》(中班主题《》)

    效果展示 打印效果图.中间剪开成2分(浅蓝色纸) 背景需求:  前期中3班制作5*7 *9张数字图,发现三个问题: 1.数量太多,填不完--每人9张调整为每人4张(一张A4两份作业) 2.数字太浅,看 ...

最新文章

  1. 分布式锁之三:Redlock实现分布式锁
  2. VTK:冰激凌用法实战
  3. if函数如何嵌入多个android,Android中多个EditText输入效果的解决方式
  4. powercmd注册码
  5. linux 7 services设定,CENTOS/RHEL7系统中设置SYSTEMD SERVICE的ULIMIT资源限制
  6. mysql查逻辑表的分片规则_MySQL(19) Mycat分片(分库分表)配置
  7. 像进度条的网页加载Loading JS代码
  8. mysql 前10条 平均数_mysql – 每组最新N条记录的平均值
  9. Altium Designer——AD画PCB图步骤总结
  10. easydarwin php,Windows版本EasyDarwin
  11. 整数规划--指派问题
  12. MATLAB 轮式机器人轨迹跟踪仿真
  13. 重构之前的数据统计,用于数据归档,要考虑数据迁移
  14. 360浏览器自动填充表单
  15. oracle执行存储过程参数,Oracle定时任务执行存储过程带参数
  16. 图神经网络(CNN)四
  17. 虚拟机上网的三种方式
  18. android5.0源码开发之NVRam存储,恢复出厂设置数据不被擦除--上篇
  19. 适配器的作用计算机网络,网络适配器的作用
  20. [图文]历届奥斯卡影后(下)

热门文章

  1. 应试教育堵死了孩子们犯错的道路
  2. 使用layui做二级菜单,选父级必选子级
  3. 安装npm时报-4048错误的解决方案
  4. soi cmos技术及其应用_航空制造业的激光焊接技术及其应用
  5. vue-video-player动态更新视频地址
  6. Why Littlefinger says ‘an historic day‘ not ‘a historic day‘?
  7. 北京科技大学计算机专业毕设,北京科技大学毕业生近五年就业情况分析(2017)
  8. 逻辑运算符,与,或,非,以及优先级。
  9. 小i机器人今年利润或破亿 计划明年上市
  10. xib报错“nib must contain exactly one top level object which must be a UITableViewCell instance”