【教学类-44-06】20240318 0-9数字描字帖 A4横版整页(宋体、黑体、文鼎虚线体)

背景需求:

大四班老师要以前的姓名描字帖

【教学类-35-02】20231207大班姓名描字帖:A4单面3*10个姓名,双面共60个名字-CSDN博客文章浏览阅读402次,点赞5次,收藏8次。【教学类-35-02】20231207大班姓名描字帖:A4单面3*10个姓名,双面共60个名字https://blog.csdn.net/reasonsummer/article/details/134875640

还想要数字描字帖

我发了以前的两款近似手写体的阿拉伯数字描字帖

【教学类-44-04】20240130 print dashed(虚线字体)制作的数字描字帖-CSDN博客文章浏览阅读784次,点赞9次,收藏3次。【教学类-44-04】20240130 print dashed(虚线字体)制作的数字描字帖_print dashedhttps://blog.csdn.net/reasonsummer/article/details/135940963【教学类-44-05】20240201 德彪钢笔行书(实线字体)制作的数字描字帖-CSDN博客文章浏览阅读389次,点赞6次,收藏5次。【教学类-44-05】20240201 德彪钢笔行书(实线字体)制作的数字描字帖https://blog.csdn.net/reasonsummer/article/details/135970895

发完后,我想试试用AI对话大师写一个“数字描字帖”

设计过程

一、素材准备:

二、设计思路

1、用AI写了一个读取行列数的代码

2、生成三种字体,看看哪一种适合(文鼎虚线体比较细,所以用黑色0,0 ,0,才能看清楚,宋体和黑体都用灰色200,200,200)

三、代码展示:


'''
制作一个16行37列的数字描字帖(黑体、宋体、文鼎体)
作者:AI对话大师,阿夏
时间:2024年3月17日
'''


from docx import Document
from docx import Document
from docx.shared import Pt
# 导入所需的模块
from docx.shared import RGBColor
import os
from docx.oxml import OxmlElement
from docx.oxml.ns import qn
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

# 读取Word文档

path=r'C:\Users\jg2yXRZ\OneDrive\桌面\数字1-10'
fontname=['宋体','黑体','AR StdKaiGDLB5 Md']
fontcolor=['200','220','0']


doc = Document(path+r'\1-10数字描字帖.docx')

# 选择第一个表格进行演示
table = doc.tables[0]

# 获取表格的行数和列数
num_rows = len(table.rows)
num_cols = len(table.columns)

print("表格的行数为:", num_rows)
# 16行
print("表格的列数为:", num_cols)
# 37列

bg= []
for x in range(num_rows):
    for y in range(num_cols):
        bg.append('{}{}'.format('%02d'%x,'%02d'%y))
print(bg)

num=[]
for o in range(2):
    for i in range(0,10):
        for z in range(num_cols):
            num.append(i)

for ziti  in range(len(fontname)):

    folder_path = path+r"\零时文件夹"
        # 检查文件夹是否存在
    if not os.path.exists(folder_path):
        # 如果文件夹不存在,则新建文件夹
        os.makedirs(folder_path)

    for n in range(1):
        doc = Document(path+r'\1-10数字描字帖.docx')
        for b in range(1):
            table = doc.tables[b] 
            # print(p)
            for t in range(len(bg)):    # 0-15
                # print(list[t])
                            
                pp=int(bg[t][0:2])     # 提取表格bg里面每个元素的第0个数字==单元格X坐标  t=索引数字
                qq=int(bg[t][2:4]) 
                k=int(num[t])
                # f=font[t]   

                # print(pp,qq,k)

                run=table.cell(pp,qq).paragraphs[0].add_run(str(k))    # 在单元格0,0(第1行第1列)输入第0个名字
                run.font.name =fontname[ziti]  #输入时不同字体
                run.font.size = Pt(28)  #输入字体大小80或68号
                # run.bold=True
                run.font.color.rgb = RGBColor(int(fontcolor[ziti]),int(fontcolor[ziti]),int(fontcolor[ziti])) #设置颜色黑体

                r = run._element
                r.rPr.rFonts.set(qn('w:eastAsia'),fontname[ziti])#将输入语句中的中文部分字体变为华文行楷
                table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

        doc.save(folder_path+r'\{}.docx'.format('%02d'%n))#保存为XX学号的零时word  

        from docx2pdf import convert
        # docx 文件另存为PDF文件
        inputFile = folder_path+r'\{}.docx'.format('%02d'%n)# 要转换的文件:已存在
        outputFile = folder_path+r'\{}.pdf'.format('%02d'%n)  # 要生成的文件:不存在
        # 先创建 不存在的 文件
        f1 = open(outputFile,'w')
        f1.close()
        # 再转换往PDF中写入内容
        convert(inputFile, outputFile)

        from docx2pdf import convert


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

    import os
    from PyPDF2 import PdfMerger
    target_path =  folder_path
    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(path+r"\(打印合集){} 数字0-9({}份).pdf".format(fontname[ziti] ,n+1))
    file_merger.close()


    # # print('----------第5步:删除临时文件夹------------')    
    import shutil
    shutil.rmtree(folder_path) #递归删除文件夹,即:删除非空文件夹`




    # # AR StdKaiGDLB5 Md

还可以把德彪体和print dashed体也加上。5种做在一页里。便于打印

【教学类-44-07】20240318 0-9数字描字帖 A4横版整页(宋体、黑体、文鼎虚线体、print dashed 德彪行书行楷)-CSDN博客【教学类-44-07】20240318 0-9数字描字帖 A4横版整页(宋体、黑体、文鼎虚线体、print dashed 德彪行书行楷)https://blog.csdn.net/reasonsummer/article/details/136790189?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136790189%22%2C%22source%22%3A%22reasonsummer%22%7D

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/464312.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端工程化(二)(精品、面试必备基础)(春招、秋招)

目录 什么是模块化?CommonJS规范和Node关系模块化的核心exports 导出 & require 导入模块加载(持续更新) 什么是模块化? 事实上模块化开发最终的目的是将程序划分成一个个小的结构; 这个结构中编写属于自己的逻辑代码,有自己的作用域,…

Python爬虫 Day1

要注意看网页的请求方式是request还是get 一、小型爬虫 (爬百度首页) from urllib.request import urlopen url "https://www.baidu.com" resp urlopen(url) print(resp.read().decode(utf-8)) print("over!") //!&am…

软件杯 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

HarmonyOS鸿蒙开发常用4种布局详细说明

介绍一下鸿蒙开发常用4种布局 1、线性布局 2、层叠布局 3、网格布局 4、列表布局 ​1. 线性布局(Column/Row) 线性布局(LinearLayout)是开发中最常用的布局,通过线性容器Row(行)和Column&…

linux驱动开发面试题

1.linux中内核空间及用户空间的区别? 记住“22”,两级分段两级权限。 例如是32位的机器,从内存空间看:顶层1G是内核的,底3G是应用的;从权限看:内核是0级特权,应用是3级特权。 2.用…

关于Ubuntu虚拟机突然上不了网的问题

今天刚重新把Ubuntu虚拟机下回来准备大干一场,结果去吃饭回来虚拟机就上不去网了,具体体现为右上角没有网络的图标,下图是有网络的情况,废话不多说,直接给出解决方案:博客在此 我就是运行了这三行代码就成功…

记一些有关Element Plus的样式修改

先记一个放着,后续慢慢补充。。。 一个 Vue 3 UI 框架 | Element Plus Radio 单选框 1、去除radio的圆圈 .box-radio {/deep/ .el-radio__input {display: none;} }

jupyter notebook 突然莫名奇妙的白屏

jupyter notebook 突然莫名奇妙的白屏 事件背景: 最近在折腾openai,哎,一言难尽,使用的是conda管理python版本的切换,使用jupyter notebook来运行python程序,其实PyCharm也行,但是,…

python二级备考(2)-简单应用题

第1套 使用turtle库的turtle. right()函数和turtle.fd()函数绘制一个菱形,边长为200像素,4个内角度数为2个60度和2个120度 键盘输入一组人员的姓名、性别、年龄等信息,信息间采用空格分隔,每人一行,空行回车结束录入&a…

【基于HTML5的网页设计及应用】——改变文字和背景颜色

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

如何通过蓝牙获取手机时间同步时钟RTC万年历走ble或者edr经典蓝牙

一、功能简介 KT6368A支持连接手机获取手机的时间信息,可以同步时钟 无需安装任何app,直接使用系统蓝牙即可实现 走的就是edr的经典蓝牙 同时它不影响音频蓝牙,还能保持低功耗的运行 实现的方式就是手机连接好蓝牙芯片KT6368A&#xff0…

Jz32从上往下打印二叉树

//add()和remove()方法在失败的时候会抛出异常(不推荐) // 用offer 和poll 替代 import java.util.ArrayList; import java.util.*; /** public class TreeNode {int val 0;TreeNode left null;TreeNode right null;public TreeNode(int val) {this.val val;}} */ public …

NSSCTF 403,444,2145,3845,404,445

[SWPUCTF 2021 新生赛]简简单单的逻辑 py文件,使用pycharm打开进行分析 其中,hex()[2:]:将十进制转化为十六进制 zfill(2):位数不足2,前补0 这里即将flag的ASCII码与key进行异或,再将每位转化为十六进制…

大数据 - Spark系列《十四》- spark集群部署模式

Spark系列文章: 大数据 - Spark系列《一》- 从Hadoop到Spark:大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…

kubernetes学习总结

kubernetes学习大纲 kubernetes的发展历程 Kubernetes的组件和架构 Kubernetes API对象基本组成 Kubernetes中的yml详解1 Kubernetes中的yml详解2 Deployment与Service

【GIS系列】GeoTools简介及工具类分享

本文将对GeoTools相关概念进行介绍,同时会给大家分享我工作中用到的工具类及使用方法。 作者:后端小肥肠 目录 1.前言 2. GeoTools简介 3. Geotools使用示例 3.1. 开发环境搭建 3.1.1. 所需版本和工具 3.1.2. pom依赖 3.1.3. 示例代码 4. 工具类…

[VCTF2024纳新赛]-PWN:ezhp_code解析

查看保护 查看ida 简单来说就是创建堆块和删除堆块而已,创建堆块的函数附带有写入函数。 但这里要注意一个程序里面的特殊的地方 在我们创建堆块时,程序会先创建一个0xa0大小堆块,并且这个地方还有个特殊的check_handle函数,如果…

SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

文章目录 1.整合MyBatis1.需求分析2.数据库表设计3.数据库环境配置1.新建maven项目2.pom.xml 引入依赖3.application.yml 配置数据源4.Application.java 编写启动类5.测试6.配置类切换druid数据源7.测试数据源是否成功切换 4.Mybatis基础配置1.编写映射表的bean2.MonsterMapper…

✅技术社区—通过Canal框架实现MySQL与ElasticSearch的数据同步

Canal 是一个由阿里巴巴开源的,基于 Java 的数据库变更日志解析的中间件,其原理是基于Binlog订阅的方式实现,模拟一个MySQL Slave 订阅Binlog日志,从而实现CDC,主要用于实现 MySQL 数据库的增量数据同步。它主要的使用…