【教学类 您所在的位置:网站首页 空心方格符号 【教学类

【教学类

2023-06-04 13:08| 来源: 网络整理| 查看: 265

作品展示:

 背景需求:

最近在做小课题结题资料,看到之前做过的几个学具项目,其中的空心图案拼贴画很不错(中班上学期做过)想到中6班的孩子还没有玩过,就想再打印一套学具(中班下学期做)。再次做就把代码优化一下(段落写入文字图形 改成 单元格写入文字图形)

材料准备:

WORD表格

 代码展示 ''' 作者:阿夏 时间:2023年10月25日 名称:中班学具:8个随机空心图案拼贴-不重复图案)单元格,6个图形拼贴 ''' # print('----------第1步:制作docx里面的数字 把100个数字分成10*10矩阵导入xls S形迷宫 1、3、5、7是升序排列,2,4,6,8是降序排列------------') import xlwt import os from docx import Document list=['○','◇','□','△','▽','☆','☼','☺','☾','◎']# 搜狗拼音符号里面的空心的常用图形10个 num=int(input('生成多少份(28份)\n')) Number=int(input('每页制作多少个(6个)\n')) print('----------第2步:新建一个临时文件夹------------') # 新建一个”装N份word和PDF“的文件夹 os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\随机几何形模板\零时Word') print('----------第3步:随机抽取8个不重复的图案 ------------') 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 figure=[] figurea=[] for nn in range(0,int(num/2)): #28/2 0-14 figure.clear() doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\随机几何形模板\随机几何形模板(单元格).docx')# 打开带docx模板(这个模板有页脚的页码,阿夏认为页码是必须的) # 随机抽取8个不重复空心图案(#CSDN博主「孟意昶」 原文链接:https://blog.csdn.net/weixin_44999258/article/details/125163277) for aa in range(2): shuffle = random.sample(list, Number) # 随机抽取8个不重复空心图案 figure.append(shuffle) print(figure) # ['◇','□','△','▽','☆','☼','☺','☾','◎'] for z in range(2): # 5行组合循环2次 每页两张表 table = doc.tables[z] # 单元格位置3*3格 bg=[] # 前1+3+1行不要写入 从4动 for x in range(0,3): # 3行 索引1行2行3行 for y in range(0,2): # 3列 索引0列1列2列 ww='{}{}'.format(x,y) bg.append(ww) print(bg) for t in range(len(bg)): # 12 pp=int(bg[t][0:1]) qq=int(bg[t][1:2]) # print(p) 22 k=figure[z][t] print(pp,qq,k) run=table.cell(pp,qq).paragraphs[0].add_run(k) # 在单元格0,0(第1行第1列)输入第0个图图案 run.font.name = '黑体'#输入时默认华文彩云字体 # run.font.size = Pt(46) #输入字体大小默认30号 换行(一页一份大卡片 run.font.size = Pt(129) #输入字体大小默认30号 一行里(可以一页两份) # run.font.bold= False #是否加粗 run.font.bold= True #是否加粗 run.font.color.rgb = RGBColor(170,170,170) #数字小,颜色深0-255 # paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距 r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷 table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中 doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\随机几何形模板\零时Word\{}.docx'.format('%02d'%nn)) from docx2pdf import convert # docx 文件另存为PDF文件 inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/随机几何形模板/零时Word/{}.docx".format('%02d'%nn) # 要转换的文件:已存在 outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/随机几何形模板/零时Word/{}.pdf".format('%02d'%nn) # 要生成的文件:不存在 # 先创建 不存在的 文件 f1 = open(outputFile, 'w') f1.close() # 再转换往PDF中写入内容 convert(inputFile, outputFile) print('----------第4步:把都有PDF合并为一个打印用PDF------------') # 多个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/桌面/随机几何形模板/(打印合集)随机几何形模板 单元格无重复一页两份(3乘2)({}人共{}份).pdf".format(num,int(num/2))) file_merger.close() # doc.Close() # print('----------第5步:删除临时文件夹------------') import shutil shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/随机几何形模板/零时Word') #递归删除文件夹,即:删除非空文件夹 终端运行:

 结果展示:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有