【教学类-16-02】20240214《数字卡片1-9(正方形9格)华光彩云_CNKI》

本文介绍了一个使用Python编写的脚本,通过Excel数据和Word模板,自动生成1-9的彩色正方形数字卡片,可用于教学活动,包括空心数字涂色、数字排序、交换卡片和比大小等玩法。脚本还展示了如何将Word文档转换为PDF并合并为一个打印用PDF文件。
摘要由CSDN通过智能技术生成

f9602f22af0a4b4f888e9a2de166af88.png

背景需求:

前期坐过长方形A4纸的数字卡片

【教学类-16-01】20221121《数字卡片9*2》(中班)_数字卡片pdf-CSDN博客文章浏览阅读897次。【教学类-16-01】20221121《数字卡片9*2》(中班)_数字卡片pdfhttps://blog.csdn.net/reasonsummer/article/details/127962717

利用不同颜色的正方形手工纸,打印1-9的数字卡片。

1、空心数字涂色

2、练习数字排序

3、交换卡片

4、比大小玩法

素材准备:

页面横版、长宽15*15 ,上下左右页边距0CM。

72572ff4817f4b44b49432bd548349f8.png

6692ea38925c42d2a1ebffc1656d46a7.png

b03d564339884677b55c40bd4610efa6.png

代码展示

'''

作者:阿夏
时间:2024年2月14日
名称:正方形数字卡片1-9 _ 华光彩云_CNKI
'''


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

num=int(input('多少份 任意数字\n'))

ziti='华光彩云_CNKI'
size=150



# 新建一个”装N份word和PDF“的临时文件夹
imagePath1=r'C:\Users\jg2yXRZ\OneDrive\桌面\正方形数字卡片\零时Word'
if not os.path.exists(imagePath1):  # 判断存放图片的文件夹是否存在
    os.makedirs(imagePath1)  # 若图片文件夹不存在就创建

print('-----第1步 制作数字-------')

number=[]
for i in range(1,10):
    number.append(i)
print(number)

print('-----第2步 制作表格-------')

# #单元格坐标
bg=[]
for x in range(3):
    for y in range(3):
        z2='{}{}'.format('%02d'%x,'%02d'%y)
        bg.append(z2)
print(bg)

# # ['00', '01', '02', '03', '04', '10', '11', '12', '13', '15', '20', '21', '22', '23', '24']

for n in range(num):
    doc = docx.Document(r"C:\Users\jg2yXRZ\OneDrive\桌面\正方形数字卡片\1.0正方形数字卡片1-9.docx")
    # for b in range(2):
    table = doc.tables[0] 
    N=random.sample(number,len(number))    # 1-9随机抽取9个不重复
    for t in range(len(bg)):    # 0-15
       
        pp=int(bg[t][0:2])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字
        qq=int(bg[t][2:4]) 
        k=int(N[t])
        print(pp,qq,k)

        run=table.cell(pp,qq).paragraphs[0].add_run(str(k))    # 在单元格0,0(第1行第1列)输入第0个名字
        run.font.name =ziti  #输入时不同字体
        run.font.size = Pt(size)  #输入字体大小80或68号
        run.bold=False            # 不加粗
        run.font.color.rgb = RGBColor(0,0,0) #设置颜色灰色
        r = run._element
        r.rPr.rFonts.set(qn('w:eastAsia'),ziti )#将输入语句中的中文部分字体变为华文行楷
        table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

    doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\正方形数字卡片\零时Word\{}.docx'.format('%02d'%n))#保存为XX学号的零时word  

    time.sleep(1)

    from docx2pdf import convert
    # docx 文件另存为PDF文件
    inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\正方形数字卡片\零时Word\{}.docx".format('%02d'%n)# 要转换的文件:已存在
    outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\正方形数字卡片\零时Word\{}.pdf".format('%02d'%n)  # 要生成的文件:不存在
    # 先创建 不存在的 文件
    f1 = open(outputFile,'w')
    f1.close()
    # 再转换往PDF中写入内容
    convert(inputFile, outputFile)
    time.sleep(1)

    from docx2pdf import convert


print('----------第4步:把都有PDF合并为一个打印用PDF------------')

import os
from PyPDF2 import PdfMerger
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 = PdfMerger()
for pdf in pdf_lst:
    print(pdf)
    file_merger.append(pdf)
# file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/正方形数字卡片/(打印合集)大班A整页描字帖2乘5加表格-4名字-({}人).pdf".format(num))
file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/正方形数字卡片/(打印合集)1.0正方形数字卡片1-9({}份).pdf".format(num))
file_merger.close()
# doc.Close()

# # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/正方形数字卡片/零时Word') #递归删除文件夹,即:删除非空文件夹`


终端输入:

bc65fcfdc5cd49aeb403d70f04c7cecd.png

fd7bc014f2e44b8581c7c8d20621504d.pngfba4cf93429243eba919d7d11814288f.png255860410a544bc1a98ce8eb4384193a.png

利用不同颜色的正方形手工纸,打印1-9的数字卡片。

1、空心数字涂色

2、练习数字排序

3、交换卡片

4、比大小玩法

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值