成品样式:

背景需求:

感觉上大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. 怎么把ide改成ahci_如何将硬盘由IDE模式修改为AHCI模式,我的主板是华硕P8Z68-VLX,请高手帮帮忙。...
  2. 自动化测试框架搭建-参数化-3
  3. TOMCAT报错:HTTP Status 404 -
  4. python getchar功能_getchar函数
  5. 初中人教版电子课本app_电子课本|2020秋 部编人教版初中历史七年级上册教材电子课本(高清更新可打印)...
  6. 操作系统实验以及课程设计
  7. HYSBZ - 1050(旅行comf 并查集Java实现)
  8. C#连接Excel和Access(包括2003和2007版)方法总结
  9. linux系统配置免密登录
  10. Leetcode 278.第一个错误的版本
  11. bzoj 2957 楼房重建 分块
  12. ⭐❤️sqlite数据库使用大全❤️⭐
  13. 摄影构图学83年绝版_学手机摄影最好要知道的70条忠告!都是大实话
  14. 今天看continous delivery看到extreme programming
  15. 玩qq游戏提示计算机内存不足,Win8系统下玩lol提示关闭程序以防止信息丢失内存不足怎么办...
  16. IT男人:四十岁是一枝花吗?
  17. 2094 找出 3 位偶数
  18. 新型付费服务能否在IT领域异军突起?
  19. <2>重定向的用法说明和举例
  20. 基于BIM+GIS技术,如何构建智慧楼宇三维可视化管控平台?

热门文章

  1. 计算机教学在语文中应用,浅谈信息技术在中学语文教学中的运用
  2. 设置计算机id管理员默认密码是多少钱,路由器默认(初始)管理员登录密码是多少?...
  3. 四川大学和电子科技大学计算机哪个好,四川大学和电子科技大学哪个好?高校大比拼开始!...
  4. 用C语言做见缝插针游戏
  5. E470C触摸屏的关闭
  6. 5个城市,5个女人,5种生活
  7. [软件渲染器入门]五-平面着色和高氏着色
  8. 简单好玩的vue小游戏,网页小游戏
  9. 下载微信小程序中的视频
  10. SSL/TLS会话的流量分析