• 【教学类-07-03】20221106《破译电话号码-2款图形篇+自制(PDF打印)》(大班主题《我要上小学》)


    效果图

    1、PDF合并打印版本

    2、第1个号码用“黑色圆圈替代“

    3、第2个号码用各种”几何实心图案“

    4、第3个号码幼儿自己尝试编写、

     背景需求:

           2022年2月份,马先生帮我编写了一套《破译电话号码-图形固定列不重复》《破译电话号码-图形固定列重复》,把手机号码数字专为图案保存到EXCEL内,再用{{}}和Shpae代码在Word模板内添加图案,顺利 完成了比赛需求,幼儿操作中出现了一些对于图案的迷惑,于是把图案全部改成黑色实心、并且都是圆形、三角、正方等几何形(不用有乐府、云朵)

     

     最近我在思考,是否可以不用”{{}}“的方式,直接在终端生成图案,组成列表。然后直接写入Word。花费一天实验后,终于实现了目标。

     材料准备:

    路径:r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码、

     家长电话号码.xlsx

    破译电话号码模板.docx

    页边距 上下左右1CM,版式:横向

     py代码:放在任意位置,不影响运行

    代码设计——有学号和班级

    1. '''
    2. 作者:阿夏
    3. 时间:2022年11月5日 破译电话号码-图形版-学号和班级(不需要分列,直接导入word)
    4. '''
    5. import openpyxl
    6. from docx import Document
    7. from docx.shared import Pt
    8. from docx.shared import RGBColor
    9. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    10. from docx.oxml.ns import qn
    11. import os
    12. classroom=input('班级名称(如大1)\n')
    13. print('----------第2步:新建一个临时文件夹------------')
    14. # 新建一个”装N份word和PDF“的文件夹
    15. os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word')
    16. print('------------读取excle表单--------------')
    17. wb = openpyxl.load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\家长电话号码.xlsx')# wb=用openpyxl打开存有号码的ExcelEx
    18. phone = wb.active #phone=获取wb里面的数据
    19. print('------------读取 爸爸的手机号--------------')
    20. symbol_1=['●','●','●', '●', '●', '●','●', '●','●','●','●']
    21. father=[]
    22. for i in list(phone.columns)[4]:# 第3列是爸爸的手机号
    23. phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    24. print(phonestr)# 打印电话字符串
    25. # Phonenum1
    26. # 13512345678
    27. # 16556345690
    28. # 13724680156
    29. print('------------ 爸爸的手机号的数字全部写在一起--------------')
    30. col = 0 #
    31. for k in phonestr:# 在电话字符串里面循环遍历 取各种数字
    32. if i.value!= 'Phonenum1':# 如果电话号码的值不等于'dad' 不要第一行C1
    33. if int(k) != 0:# 如果取出的数字不等于0 等于1-9
    34. str_temp =int(k) * symbol_1[col]# 结果等于 取出的数字的整数 乘以 符号列表的相应列数的符号(批量几个符号)
    35. else:# 如果取出的数字=于0
    36. str_temp = '零'# 0=零
    37. # print( str_temp)
    38. father.append(str_temp)
    39. col +=1
    40. print(father)
    41. ['●', '●●●', '●●●●●', '●', '●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●', '●●●●●●●●', '●', '●●●●●●', '●●●●●', '●●●●●', '●●●●●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●●●', '零', '●', '●●●', '●●●●●●●', '●●', '●●●●', '●●●●●●', '●●●●●●●●', '零', '●', '●●●●●', '●●●●●●']
    42. print('------------读取 妈妈的手机号--------------')
    43. mother=[]
    44. symbol_2 = ['▲','▼','●','♦','■','▶','◀','◣','◥','◤','◢']#
    45. for j in list(phone.columns)[6]:
    46. phonestr = str(j.value)
    47. print(phonestr)
    48. # Phonenum2
    49. # 13214562358
    50. # 15615617891
    51. # 13123568210
    52. print('------------ 妈妈的手机号的数字全部写在一起--------------')
    53. col = 0# 第一个字符串的起始列 123数下去 mum电话的第一位数在第O列=15列
    54. for _ in phonestr[:]:
    55. if j.value != 'Phonenum2':
    56. if int(_) != 0:
    57. str_temp = int(_) * symbol_2 [col]
    58. else:
    59. str_temp = '零'
    60. mother.append(str_temp)
    61. col +=1
    62. print(mother)
    63. # ['▲', '▼▼▼', '●●', '♦', '■■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣', '◥◥◥', '◤◤◤◤◤', '◢◢◢◢◢◢◢◢', '▲', '▼▼▼▼▼', '●●●●●●', '♦', '■■■■■', '▶▶▶▶▶▶', '◀', '◣◣◣◣◣◣◣', '◥◥◥◥◥◥◥◥', '◤◤◤◤◤◤◤◤◤', '◢', '▲', '▼▼▼', '●', '♦♦', '■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣◣◣◣◣◣◣', '◥◥', '◤', '零']
    64. print('------------ 爸爸的手机号拆开成11个一组的列表--------------')
    65. father_all=[]
    66. for i in range(0,int(len(father)/11)):
    67. b=father[i*11:i*11+11]
    68. father_all.append(b)
    69. print(father_all)
    70. # [['●', '●●●', '●●●●●', '●', '●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●', '●●●●●●●●'], # ['●', '●●●●●●', '●●●●●', '●●●●●', '●●●●●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●●●', '零'],['●', '●●●', '●●●●●●●', '●●', '●●●●', '●●●●●●', '●●●●●●●●', '零', '●', '●●●●●', '●●●●●●']]
    71. print('------------ 妈妈的手机号拆开成11个一组的列表--------------')
    72. mother_all=[]
    73. for i in range(0,int(len(mother)/11)):
    74. b=mother[i*11:i*11+11]
    75. mother_all.append(b)
    76. print(mother_all)
    77. # [['▲', '▼▼▼', '●●', '♦', '■■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣', '◥◥◥', '◤◤◤◤◤', '◢◢◢◢◢◢◢◢'],
    78. # ['▲', '▼▼▼▼▼', '●●●●●●', '♦', '■■■■■', '▶▶▶▶▶▶', '◀', '◣◣◣◣◣◣◣', '◥◥◥◥◥◥◥◥', '◤◤◤◤◤◤◤◤◤', '◢'],
    79. # ['▲', '▼▼▼', '●', '♦♦', '■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣◣◣◣◣◣◣', '◥◥', '◤', '零']]
    80. print('------------读取 学号或者姓名--------------')
    81. N=[]
    82. for i in list(phone.columns)[0]:# 学号-0 姓名1
    83. phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    84. N.append(phonestr)
    85. print(N)# ['N', '1', '11', '24']
    86. print('------------读取 班级--------------')
    87. C=[]
    88. for i in list(phone.columns)[1]:# 第3列是爸爸的手机号
    89. phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    90. C.append(phonestr)
    91. print(C)#['CLASS', '大七班', '大七班', '大七班']
    92. print('------------ 数据导入word,字体设置--------------')
    93. from docxtpl import DocxTemplate
    94. import pandas as pd
    95. from docx2pdf import convert
    96. from docx.shared import RGBColor
    97. for y in range(0,int(len(father)/11)):
    98. doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\破译电话号码模板(图案).docx')
    99. wb = pd.read_excel(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\家长电话号码.xlsx')
    100. table = doc.tables[0]
    101. print('------------学号\班级写入,字体设置--------------')
    102. n=N[y+1]
    103. run=table.cell(0,6).paragraphs[0].add_run(n) # 这里的可以代表学号或者名字,把上面连接的数字改掉 姓名02 学号06 班级08
    104. run.font.name = '黑体'#输入时默认华文琥珀字体
    105. run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    106. run.font.size = Pt(50) #输入字体大小默认30号
    107. r = run._element
    108. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    109. table.cell(0,6).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    110. c=C[y+1]
    111. run=table.cell(0,8).paragraphs[0].add_run(c) # 班级08
    112. run.font.name = '黑体'#输入时默认华文琥珀字体
    113. run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    114. run.font.size = Pt(50) #输入字体大小默认30号
    115. r = run._element
    116. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    117. table.cell(0,8).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    118. for nn in range(0,11):
    119. print('------------ 爸爸的手机号写入不同的word,字体设置--------------')
    120. f=father_all[y][nn]
    121. print(f)
    122. run=table.cell(2,nn).paragraphs[0].add_run(f) # 在第该表格3行1列的单元格内输入“xxxx”
    123. run.font.name = '黑体'#输入时默认华文琥珀字体
    124. run.font.size = Pt(18) #输入字体大小默认30号
    125. r = run._element
    126. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    127. table.cell(2,nn).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    128. print('------------ 妈妈的手机号写入不g同的word,字体设置--------------')
    129. g=mother_all[y][nn]
    130. print(g)
    131. run=table.cell(5,nn).paragraphs[0].add_run(g) # 在第该表格3行1列的单元格内输入“xxxx”
    132. run.font.name = '黑体'#输入时默认华文琥珀字体
    133. run.font.size = Pt(18) #输入字体大小默认30号
    134. r = run._element
    135. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    136. table.cell(5,nn).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    137. doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.docx'.format('%02d'%(y+1)))#保存为XX学号的电话号码word
    138. # docx 文件另存为PDF文件
    139. inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.docx".format('%02d'%(y+1)) # 要转换的文件:已存在
    140. outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.pdf".format('%02d'%(y+1)) # 要生成的文件:不存在
    141. # 先创建 不存在的 文件
    142. f1 = open(outputFile, 'w')
    143. f1.close()
    144. # 再转换往PDF中写入内容
    145. convert(inputFile, outputFile)
    146. print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    147. # 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
    148. import os
    149. from PyPDF2 import PdfFileMerger
    150. target_path = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word"
    151. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    152. pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
    153. pdf_lst.sort()
    154. file_merger = PdfFileMerger()
    155. for pdf in pdf_lst:
    156. print(pdf)
    157. file_merger.append(pdf)
    158. file_merger.write(r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\(打印合集)破译电话号码-图案版-学号和班级({}班-{}份).pdf".format(classroom,int(len(father)/11)))
    159. file_merger.close()
    160. # doc.Close()
    161. print('----------第5步:删除临时文件夹------------')
    162. import shutil
    163. shutil.rmtree(r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word") #递归删除文件夹,即:删除非空文件夹

    终端运行:

     

     

     

    重点说明:

    感悟:

     1、代码段更长。

    原有代码段有149行,本代码有175行,并没有变得更精炼

    2、模板格式改变。

    由于是直接插入,并在代码里更改格式,所以导入的图案后,word表格框不再等宽。

     

     但是用原来的模板,可以实现表格导入图案后依旧等宽。

     

     3、学号和班级信息无法变灰色

    原来的模板预先设定好字体的大小、字体样式、字体颜色,

     

     本代码的模板中虽然设置的字体、大小、字号,但都不显示。导入字体的格式都是靠代码内设置

     

     本代码生成的学号和班级默认是黑色字体,

     需要在代码里加入灰色的字体的设置 ——幼儿描字帖

    4、打印更便利

    唯一的优势大概就是打印方便吧,原来的是打包RAR,现在做成了合并PDF。

     

    教学展示:

    实际教学的大1班。这并不是我自己的班级(代班),我不清楚幼儿的学号(没有学号),但知道幼儿的名字和家长手机号码(1-5个),因此微调代码,个人信息部分显示的是名字和班级(无学号)

     (按姓名首字母排序 B-Z,王姓最多)

    实际教学中,因为有灰色打印的姓名和班级,所以幼儿通过描字都写出了自己的名字(2位幼儿不会写名字)和班级(描画感知 大一班三个字的样式)

    教学用的代码:(有名字和班级,无学号)

    1. '''
    2. 作者:阿夏
    3. 时间:2022年11月5日 破译电话号码-图形版-名字和班级(不需要分列,直接导入word)
    4. '''
    5. import openpyxl
    6. from docx import Document
    7. from docx.shared import Pt
    8. from docx.shared import RGBColor
    9. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    10. from docx.oxml.ns import qn
    11. import os
    12. classroom=input('班级名称(如大1)\n')
    13. print('----------第2步:新建一个临时文件夹------------')
    14. # 新建一个”装N份word和PDF“的文件夹
    15. os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word')
    16. print('------------读取excle表单--------------')
    17. wb = openpyxl.load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\家长电话号码.xlsx')# wb=用openpyxl打开存有号码的ExcelEx
    18. phone = wb.active #phone=获取wb里面的数据
    19. print('------------读取 爸爸的手机号--------------')
    20. symbol_1=['●','●','●', '●', '●', '●','●', '●','●','●','●']
    21. father=[]
    22. for i in list(phone.columns)[4]:# 第3列是爸爸的手机号
    23. phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    24. print(phonestr)# 打印电话字符串
    25. # Phonenum1
    26. # 13512345678
    27. # 16556345690
    28. # 13724680156
    29. print('------------ 爸爸的手机号的数字全部写在一起--------------')
    30. # for i in phonestr:
    31. col = 0 #
    32. for _ in phonestr:# 在电话字符串里面循环遍历 取各种数字
    33. if i.value!= 'Phonenum1':# 如果电话号码的值不等于'dad' 不要第一行C1
    34. if int(_) != 0:# 如果取出的数字不等于0 等于1-9
    35. str_temp = int(_) * symbol_1[col] # 结果等于 取出的数字的整数 乘以 符号列表的相应列数的符号(批量几个符号)
    36. else:# 如果取出的数字=于0
    37. str_temp = '零'# 0=零
    38. # print( str_temp)
    39. father.append(str_temp)
    40. col +=1
    41. print(father)
    42. # ['●', '●●●', '●●●●●', '●', '●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●', '●●●●●●●●', '●', '●●●●●●', '●●●●●', '●●●●●', '●●●●●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●●●', '零', '●', '●●●', '●●●●●●●', '●●', '●●●●', '●●●●●●', '●●●●●●●●', '零', '●', '●●●●●', '●●●●●●']
    43. print('------------读取 妈妈的手机号--------------')
    44. mother=[]
    45. symbol_2 = ['▲','▼','●','♦','■','▶','◀','◣','◥','◤','◢']#
    46. for j in list(phone.columns)[6]:
    47. phonestr = str(j.value)
    48. print(phonestr)
    49. # Phonenum2
    50. # 13214562358
    51. # 15615617891
    52. # 13123568210
    53. print('------------ 妈妈的手机号的数字全部写在一起--------------')
    54. col = 0# 第一个字符串的起始列 123数下去 mum电话的第一位数在第O列=15列
    55. for _ in phonestr[:]:
    56. if j.value != 'Phonenum2':
    57. if int(_) != 0:
    58. str_temp = int(_) * symbol_2 [col]
    59. else:
    60. str_temp = '零'
    61. mother.append(str_temp)
    62. col +=1
    63. print(mother)
    64. # ['▲', '▼▼▼', '●●', '♦', '■■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣', '◥◥◥', '◤◤◤◤◤', '◢◢◢◢◢◢◢◢', '▲', '▼▼▼▼▼', '●●●●●●', '♦', '■■■■■', '▶▶▶▶▶▶', '◀', '◣◣◣◣◣◣◣', '◥◥◥◥◥◥◥◥', '◤◤◤◤◤◤◤◤◤', '◢', '▲', '▼▼▼', '●', '♦♦', '■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣◣◣◣◣◣◣', '◥◥', '◤', '零']
    65. print('------------ 爸爸的手机号拆开成11个一组的列表--------------')
    66. father_all=[]
    67. for i in range(0,int(len(father)/11)):
    68. b=father[i*11:i*11+11]
    69. father_all.append(b)
    70. print(father_all)
    71. # [['●', '●●●', '●●●●●', '●', '●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●', '●●●●●●●●'], # ['●', '●●●●●●', '●●●●●', '●●●●●', '●●●●●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●●●', '零'],['●', '●●●', '●●●●●●●', '●●', '●●●●', '●●●●●●', '●●●●●●●●', '零', '●', '●●●●●', '●●●●●●']]
    72. print('------------ 妈妈的手机号拆开成11个一组的列表--------------')
    73. mother_all=[]
    74. for i in range(0,int(len(mother)/11)):
    75. b=mother[i*11:i*11+11]
    76. mother_all.append(b)
    77. print(mother_all)
    78. # [['▲', '▼▼▼', '●●', '♦', '■■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣', '◥◥◥', '◤◤◤◤◤', '◢◢◢◢◢◢◢◢'],
    79. # ['▲', '▼▼▼▼▼', '●●●●●●', '♦', '■■■■■', '▶▶▶▶▶▶', '◀', '◣◣◣◣◣◣◣', '◥◥◥◥◥◥◥◥', '◤◤◤◤◤◤◤◤◤', '◢'],
    80. # ['▲', '▼▼▼', '●', '♦♦', '■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣◣◣◣◣◣◣', '◥◥', '◤', '零']]
    81. print('------------读取 学号或者姓名--------------')
    82. N=[]
    83. for i in list(phone.columns)[2]:# 学号-0 班级1 姓名2
    84. phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    85. N.append(phonestr)
    86. print(N)# ['N', '1', '11', '24']
    87. print('------------读取 班级--------------')
    88. C=[]
    89. for i in list(phone.columns)[1]:# 班级
    90. phonestr = str(i.value)#
    91. C.append(phonestr)
    92. print(C)#['CLASS', '大七班', '大七班', '大七班']
    93. print('------------ 数据导入word,字体设置--------------')
    94. from docxtpl import DocxTemplate
    95. import pandas as pd
    96. from docx2pdf import convert
    97. from docx.shared import RGBColor
    98. for y in range(0,int(len(father)/11)):
    99. doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\破译电话号码模板(图案).docx')
    100. wb = pd.read_excel(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\家长电话号码.xlsx')
    101. table = doc.tables[0]
    102. print('------------学号\班级写入,字体设置--------------')
    103. n=N[y+1]
    104. run=table.cell(0,2).paragraphs[0].add_run(n) # 这里的可以代表学号或者名字,把上面连接的数字改掉 姓名02 学号06 班级08
    105. run.font.name = '黑体'#输入时默认华文琥珀字体
    106. run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    107. run.font.size = Pt(45) #输入字体大小默认30号
    108. r = run._element
    109. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    110. table.cell(0,2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    111. c=C[y+1]
    112. run=table.cell(0,8).paragraphs[0].add_run(c) # 班级08
    113. run.font.name = '黑体'#输入时默认华文琥珀字体
    114. run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    115. run.font.size = Pt(45) #输入字体大小默认30号
    116. r = run._element
    117. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    118. table.cell(0,8).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    119. for nn in range(0,11):
    120. print('------------ 爸爸的手机号写入不同的word,字体设置--------------')
    121. f=father_all[y][nn]
    122. print(f)
    123. run=table.cell(2,nn).paragraphs[0].add_run(f) # 在第该表格3行1列的单元格内输入“xxxx”
    124. run.font.name = '黑体'#输入时默认华文琥珀字体
    125. run.font.size = Pt(18) #输入字体大小默认30号
    126. r = run._element
    127. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    128. table.cell(2,nn).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    129. print('------------ 妈妈的手机号写入不g同的word,字体设置--------------')
    130. g=mother_all[y][nn]
    131. print(g)
    132. run=table.cell(5,nn).paragraphs[0].add_run(g) # 在第该表格3行1列的单元格内输入“xxxx”
    133. run.font.name = '黑体'#输入时默认华文琥珀字体
    134. run.font.size = Pt(18) #输入字体大小默认30号
    135. r = run._element
    136. r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    137. table.cell(5,nn).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    138. doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.docx'.format('%02d'%(y+1)))#保存为XX学号的电话号码word
    139. # docx 文件另存为PDF文件
    140. inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.docx".format('%02d'%(y+1)) # 要转换的文件:已存在
    141. outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.pdf".format('%02d'%(y+1)) # 要生成的文件:不存在
    142. # 先创建 不存在的 文件
    143. f1 = open(outputFile, 'w')
    144. f1.close()
    145. # 再转换往PDF中写入内容
    146. convert(inputFile, outputFile)
    147. print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    148. # 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
    149. import os
    150. from PyPDF2 import PdfFileMerger
    151. target_path = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word"
    152. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    153. pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
    154. pdf_lst.sort()
    155. file_merger = PdfFileMerger()
    156. for pdf in pdf_lst:
    157. print(pdf)
    158. file_merger.append(pdf)
    159. file_merger.write(r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\(打印合集)破译电话号码-图案版-名字和班级({}班-{}份).pdf".format(classroom,int(len(father)/11)))
    160. file_merger.close()
    161. # doc.Close()
    162. # print('----------第5步:删除临时文件夹------------')
    163. import shutil
    164. shutil.rmtree(r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word") #递归删除文件夹,即:删除非空文件夹

    教学照片

     

      作品展示:

    1、幼儿能够完成点数写字

    大班幼儿能够根据图形数量点数号码,2位幼儿说“这是我爸爸的号码”“第2个号码是我妈妈的”

     2、幼儿愿意尝试自己编号码

    (1)图案→数字:随便画图案数量,然后写数字

     (2)数字→图案:先写数字,再根据数字画等量的图形

     3、图案样式:

    (1)单一样式:全部是三角形、实心圆

    (2)多图样式:  (几何形、爱心等)

     ​​​​​​​

      

      ​​​​​​​5、画不下怎么办?

    活动前讲解要求时,就有一位女孩目测判断,提到“这么小的地方不够画”

    同伴提出建议:“画小点”“画少一点”

    老师建议:画简单的图案,如空心圆、实心圆、纯三角等

    1)超过7个图案挤在一起(只有幼儿自己数的清楚) ​​​​​​​

    2)数字多的时候,就用“点”图案。画累了,后面都用1-2个图案填满

     3)幼儿求助老师:“8和9画不下怎么办?”

    教师用铅笔给最后两个格子画了九宫格框线,提示幼儿在框线里画简单的图形(圆形,尽量不要五角星)

    6、其他:镜像字

     后续思考

    1、限定位置:幼儿自己绘画的图案所在的框线内可以直接用虚线画九宫格,便于幼儿掌握自制图形的大小位置。(但图案必须画简单一点。对幼儿的多图设计有思维限制)

    2、列式题破译:其实大班教学参考书上的破译电话号码是“破解加减法数学题”,不是点数图案破译数字,因此我希望把图形替换成“10以内加法题、10以内减法题”。

     

     

     

     

     

     

     

     

  • 相关阅读:
    【win10 VS2019 opencv4.6 配置参考】
    代码随想录算法训练营第11天
    MySQL命令行中文乱码问题
    爬山日记1
    pip安装numpy显示没有pip模块怎么办
    C语言 每日一题 PTA 10.21-10.24日 day3
    Docker入门
    计算机毕业设计springboot+vue基本微信小程序的校园闲置二手跳蚤商城的设计与实现
    HazelEngine 学习记录 - Shader Asset Files
    集成电路技术——如何制造芯片(1)
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/127714821