• 【教学类-19-02】20221127《ABCABC式-规律排序-A4竖版2份》(中班)


    展示效果:

    单人使用样式:

      单页打印样式

     背景需求:

    中班幼儿需要掌握ABCABC的排序规律

    前文制作了ABAB单元格色块,微调word表格的列数,调整python的参数,随机生成ABC排序样式,引导幼儿进行ABCABC固定颜色涂色。

     Word模板设置 

    1、插入表格1*9、

    2、左侧的空心黏贴表和右侧的灰色黏贴边都是”插入-形状-矩形“

    3、表格的框线:粗的6磅,细的1.5磅

    代码设计:

    1. # https://www.codenong.com/cs106022019/
    2. '''
    3. 作者:阿夏
    4. 时间:2022年11月27日ABCABC规律填色 竖版2份4条)
    5. '''
    6. from docx import Document
    7. from docx.oxml.ns import nsdecls
    8. from docx.oxml import parse_xml
    9. import random,os
    10. # 新建表行数
    11. rowsNum = int(input('行数(1行)\n'))
    12. # 新建表列数
    13. colsNum = int(input('列数(只要3个=ABC)\n'))
    14. Num = int(input('每套题目随机抽取几个不重复颜色(只有9个颜色,必须抽9个)\n'))
    15. rowrow= int(input('几条?(4)\n'))
    16. num= int(input('生成多少份?\n'))
    17. # 表格首行背景色设置
    18. # 背景色,根据需要调整,可参考站长之家选色 http://tool.chinaz.com/Tools/PageColor.aspx
    19. # (米罗12色蜡笔(去掉白色'FFFFFF'和黑色'000000',黑色涂色很容易显脏)
    20. # # 白色\#黑色\# 灰色\# 红色\# 橘黄\# 黄色\# 森林绿\# 黄绿色\# 蓝色\# 青色(天蓝)\# 靛青色(紫色)\# 粉红
    21. colorall=['FFFFFF','000000','CCCCCC','FF0000','FF8000','FFFF00','228B22','7FFF00','0000FF','00FFFF','4B0082','FFC0CB']
    22. colorsmall=colorall[3:]# 排除白色和黑色
    23. print(colorsmall)
    24. print('----------第2步:新建一个临时文件夹------------')
    25. # 新建一个”装N份word和PDF“的文件夹
    26. os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\规律填色\零时Word')
    27. for nn in range(1,num+1):
    28. # for e in range(0,2): # 一页两份
    29. doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\规律填色\规律填色模板(竖版9列ABCABC).docx')
    30. # # 方案一:一页中,第一套8个颜色和第2套8个颜色中间,只有1-2个不一样(大部分是2个不一样,少量1个不一样)
    31. # color=[]
    32. # colors1=random.sample(colorsmall,Num)
    33. # colors2=random.sample(colorsmall,Num)
    34. # for h in colors1:
    35. # color.append(h)
    36. # for g in colors2:
    37. # color.append(g)
    38. # print(color) # 随机抽取8个色块
    39. # ['00FFFF', 'CCCCCC', '228B22', 'FFC0CB', 'FF9912', 'FFFF00', '0000FF', '4B0082', 'FF0000', 'FFFF00', '00FFFF', '0000FF', '7FFF00', '4B0082', 'CCCCCC', '228B22']
    40. # 方案二:一页中,第一套8个颜色和第2套8个颜色是一样的。
    41. color=[]
    42. for e in range(0,3): # 至少需要24个颜色(有重复)抽9个乘以3次=27个
    43. colors=random.sample(colorsmall,Num) # 共9个颜色,如果抽8个,会出现ABB ABA AAB等样式,所以改成抽取9个,就不会有重复,因此就需要抽3次
    44. for k in colors:
    45. color.append(k)
    46. print(color)
    47. # ['FF0000', 'FFFF00', '00FFFF', '7FFF00', 'FF9912', 'FFC0CB', 'CCCCCC', '0000FF', '7FFF00', 'FFC0CB', 'CCCCCC', '228B22', 'FFFF00', 'FF0000', '00FFFF', '4B0082']
    48. # 表格位置
    49. bg=[]
    50. for b in range(0,rowrow*2): # 四个表
    51. for x in range(0,rowsNum): # 1行*8列
    52. for y in range(0,colsNum): # 只要填充2个格子ABAB
    53. ww='{}{}'.format(x,y)
    54. bg.append(ww)
    55. print(bg)
    56. ['00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01']
    57. for b in range(0,rowrow*2): # 几条 0123 4行8个不重复色块
    58. if b==3:
    59. pass
    60. elif b==7:
    61. pass
    62. else:
    63. table = doc.tables[b] # 4567(8)行
    64. for t in range(b*colsNum,b*colsNum+colsNum): # 02
    65. pp=int(bg[t][0])
    66. qq=int(bg[t][1])
    67. k=color[t]
    68. print(k) #
    69. shading_list = locals()
    70. shading_list['shading_elm_'+str(qq)] = parse_xml(r''.format(nsdecls('w'),bgColor = k))
    71. table.rows[pp].cells[qq]._tc.get_or_add_tcPr().append(shading_list['shading_elm_'+str(qq)])
    72. doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\规律填色\零时Word\{}.docx'.format('%02d'%nn))
    73. from docx2pdf import convert
    74. # docx 文件另存为PDF文件
    75. inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/零时Word/{}.docx".format('%02d'%nn) # 要转换的文件:已存在
    76. outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/零时Word/{}.pdf".format('%02d'%nn) # 要生成的文件:不存在
    77. # 先创建 不存在的 文件
    78. f1 = open(outputFile, 'w')
    79. f1.close()
    80. # 再转换往PDF中写入内容
    81. convert(inputFile, outputFile)
    82. print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    83. # 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
    84. import os
    85. from PyPDF2 import PdfFileMerger
    86. target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/零时Word'
    87. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    88. pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
    89. pdf_lst.sort()
    90. file_merger = PdfFileMerger()
    91. for pdf in pdf_lst:
    92. print(pdf)
    93. file_merger.append(pdf)
    94. file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/(打印合集)规律填色A4竖版2份ABCABC({}份).pdf".format(num))
    95. file_merger.close()
    96. # doc.Close()
    97. # print('----------第5步:删除临时文件夹------------')
    98. import shutil
    99. shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/规律填色/零时Word') #递归删除文件夹,即:删除非空文件夹

    重点说明:

    输入数据

      运行过程

     随后删除过渡信息

     单元格背景色的确定——米罗可儿12色蜡笔的12种颜色(使用RGB颜色

     

     随机抽取3次,每次抽9个颜色,合起来一共27个颜色。实际需要12*2=24个颜色。前12个在1-12表格内,后12个在12-24表格内

     坐标XY

    重点:如何单元格填充背景色

    效果展示:

    4张A4纸=8份作业 

     预设玩法:

    1、ABCABC添色——单元格框线的粗细提示幼儿三个颜色是一组的。

    2、有黏贴边——纸条剪下来,黏贴成手镯、长条纸等

    3、自由涂色——女孩更喜欢涂各种颜色(彩虹系列)

  • 相关阅读:
    图解系列--防火墙
    【微信小程序 | 实战开发】配置微信小程序APPID并快速接入
    Java编码规范--命名风格
    【Matplotlib绘制图像大全】(十六):Matplotlib绘制虚线折线图
    从入门到精通|Yalmip+Cplex在电力系统中的应用(超棒,看不懂算我输,没有收获也算我输)
    javaSwing销售管理
    jenkins 从机连接主机显示 404 Not Found
    “银行家算法”大揭秘!在前端表格中利用自定义公式实现“四舍六入五成双”
    入侵检测系统
    LM小型可编程控制器软件(基于CoDeSys)笔记三十一:软件安装流程
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/128065860