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

news2025/1/12 21:05:43

背景需求:

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

【教学类-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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端学习之css样式 背景样式、字体样式、列表样式、边框样式、内外边距元素属性的转换

背景样式 html文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>背景样式</title><link rel"stylesheet" href"../css/3.1背景样式.css"> </head> <bo…

MyBatis3源码深度解析(十三)MyBatis的核心组件(二)

文章目录 前言4.3 Configuration组件4.3.9 mappedStatements4.3.10 Configuration组件的其它属性 4.4 Executor4.5 MappedStatement4.6 StatementHandler4.7 TypeHandler4.8 ParameterHandler4.9 ResultSetHandler4.10 小结 前言 MyBatis框架的配置信息有两种&#xff0c;一种…

Flutter开发进阶之使用工具效率开发

Flutter开发进阶之使用工具效率开发 软件开发团队使用Flutter开发的原因通常是因为Flutter开发性能高、效率高、兼容性好、可拓展性高&#xff0c;作为软件PM来说主要考虑的是范围管理、进度管理、成本管理、资源管理、质量管理、风险管理和沟通管理等&#xff0c;可以看到Flu…

OpenCV图像相似性及相似度比对算法

背景 在做图像处理或者计算机视觉相关的项目的时候&#xff0c;很多时候需要我们对当前获得的图像和上一次的图像做相似性比对&#xff0c;从而找出当前图像针对上一次的图像的差异性和变化点&#xff0c;这需要用到OpenCV中的一些图像相似性和差异性的比对算法&#xff0c;在O…

Java零基础入门-如何代码模拟斗地主洗牌发牌动作(上)?

一、本期教学目标 掌握map集合常用方法。掌握map集合使用场景。通过map集合实现斗地主洗牌发牌动作。 二、前言 对于双列集合之map集合&#xff0c;它的相关知识点及拓展咱们都已经差不多学完了。接下来&#xff0c;就是带着大家如何灵活运用map进行一个实战教学&#xff0c;…

【方法封装】时间格式化输出,获取请求设备和IP

目录 时间类 1.1 获取当前时间&#xff0c;以特定格式化形式输出 1.2 自定义时间&#xff0c;以特定格式化输出 1.3 获取当前时间&#xff0c;自定义格式化 1.4 自定义时间&#xff0c;自定义格式化 设备类 根据请求头信息&#xff0c;获取用户发起请求的设备 请求IP类 …

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:TabContent)

仅在Tabs中使用&#xff0c;对应一个切换页签的内容视图。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明&#xff1a; 可内置系统组件和自定义组件&#xff0c;支…

【SpringCloud微服务实战08】RabbitMQ 消息队列

MQ异步通信优缺点: 优点: 吞吐量提升:无需等待订阅者处理完成,响应更快速 故障隔离:服务没有直接调用,不存在级联失败问题 调用间没有阻塞,不会造成无效的资源占用 耦合度极低,每个服务都可以灵活插拔,可替换 流量削峰:不管发布事件的流量波动多大,都由Broker接收,…

终止代码: DRIVER IRQL NOT LESS OR EQUAL 失败的操作:Netwtw12.sys

蓝屏警告&#xff1a; 今天电脑浏览器用着用着就蓝屏重启&#xff0c;蓝屏上报这个错误&#xff1a; 上网找了一堆&#xff0c;发现关键是这句话&#xff1a;“失败的操作:Netwtw12.sys” 最终在一顿操作下&#xff0c;发现了是23年更新的网卡&#xff08;Intel(R) Wi-Fi6E A…

搜维尔科技:工作室选择 OptiTrack 进行新的虚拟制作舞台

35North Studios 成立于 2020 年&#xff0c;是一家最先进的制作工作室。他们的全方位服务方法可帮助电影制片人和企业在一个设备齐全且先进的地点规划、拍摄、编辑、评分和完成项目。该工作室位于爱荷华州克利尔湖&#xff0c;为创作者提供了一个安静的空间&#xff0c;让他们…

算法思想总结:滑动窗口算法

创作不易&#xff0c;感谢三连 一.长度最小的数组 . - 力扣&#xff08;LeetCode&#xff09;长度最小的数组 class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int lenINT_MAX,nnums.size(),sum0;//len必须要给一个很大的数&#xf…

【Linux】信号保存{sigset_t/sigpending/sigprocmask/bash脚本/代码演示}

文章目录 1.信号相关常见概念2.管理信号的数据结构3.初识sigset_t4.信号集操作函数4.1sigpending4.2sigprocmask4.2代码测试1.测试12.测试23.测试3 4.3bash 脚本文件 1.信号相关常见概念 信号相关动作&#xff1a;产生 发送 接收 阻塞 递达(处理) 实际执行信号的处理动作称为信…

vue2+vant2+Laravel7 实现多图上传到七牛云

后端接口 1、路由&#xff0c;在 routes/api.php 中 Route::resource(photos, PhotoController)->only(store);2、创建对应控制器 <?php namespace App\Http\Controllers; use Illuminate\Http\Request;class PhotoController extends Controller {/**** 上传图片* p…

面部表情参考图

创造表情形变 | Character Creator | Reallusion 皮笑肉不笑&#xff1f;读取情绪的AI说&#xff1a;我太难了_面部

HAProxy高性能负载均衡器

一、HAProxy基础知识 &#xff08;一&#xff09;HAProxy概述 HAProxy是一款基于事件驱动、单进程模型设计的四层与七层负载均衡器&#xff0c;它能够在TCP/UDP层面以及HTTP(S)等应用层协议上实现高效的流量分发。HAProxy不仅适用于Web服务器负载均衡&#xff0c;还能应用于数据…

RabbitMQ学习总结-基础篇

1..RabbitMQ 本身是一个消息中间件&#xff0c;在服务应用中&#xff0c;可解决高性能&#xff0c;高并发&#xff0c;高应用的问题&#xff0c;极大程度上解决了应用的性能问题。 2.MQ的使用分为生产者和消费者&#xff0c;生产者生产消息&#xff0c;消费者去消费消息。 3.…

cesium.js加载模型后,重新设置旋转角度属性值

// 加载模型var position Cesium.Cartesian3.fromDegrees(longitude, latitude, height);// 计算矩阵var rollAngleDegrees 15; // 设置翻滚角度var rollAngleRadians Cesium.Math.toRadians(rollAngleDegrees); // 将角度转换为弧度var orientation Cesium.Transforms.eas…

android 怎么自定义view

首先了解view的绘制流程&#xff1a; 所以onmeasure ---测量view onlayout---确定view大小----》所以继承ViewGroup必须要重写onlayout&#xff0c;确定子view 而onDraw----是继承view时候需要操作的。 所以&#xff1a;自定义ViewGroup一般是利用现有的组件根据特定的布局…

Python电梯楼层数字识别

程序示例精选 Python电梯楼层数字识别 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《Python电梯楼层数字识别》编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应…

操作系统内功篇:硬件结构之如何写出让CPU执行更快的代码?

一 前言 因为CPU要操作的数据都在CPU Cache中的话&#xff0c;就不用再从内存中读取数据了&#xff0c;这样就提高了效率&#xff0c;访问的数据在CPU Cache中越多&#xff0c;有个专业名词称为缓存命中率高&#xff0c;所以说&#xff0c;缓存命中率越高&#xff0c;自然执行…