作品展示
背景需求:
之前有三款阿拉伯数字字体,但是与《幼儿用数字描字簿》字体有差异
【教学类-44-05】20240201 德彪钢笔行书(实线字体)制作的数字描字帖-CSDN博客文章浏览阅读396次,点赞6次,收藏5次。【教学类-44-05】20240201 德彪钢笔行书(实线字体)制作的数字描字帖https://blog.csdn.net/reasonsummer/article/details/135970895【教学类-44-04】20240130 print dashed(虚线字体)制作的数字描字帖-CSDN博客文章浏览阅读796次,点赞9次,收藏3次。【教学类-44-04】20240130 print dashed(虚线字体)制作的数字描字帖_print dashed
https://blog.csdn.net/reasonsummer/article/details/135940963
【教学类-44-10】20240323 Gill Sans MT(实线字体)制作的数字描字帖(AI对话大师缩略版)-CSDN博客文章浏览阅读423次,点赞12次,收藏13次。【教学类-44-10】20240323 Gill Sans MT(实线字体)制作的数字描字帖(AI对话大师缩略版)https://blog.csdn.net/reasonsummer/article/details/136965977?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136965977%22%2C%22source%22%3A%22reasonsummer%22%7D
通过网络搜索,“数字手写体”看到了我曾经用过的“杨任东竹石体 Regular”,
于是搜索看看字体样式
于是又找到一款近似于《幼儿用数字描字簿》的字体——杨任东竹石体 Regular
素材准备
段落固定值41磅,写入的数字是最大55磅
废话不多,直接上代码
'''
作者:阿夏
时间:2024年3月24日
名称:阿拉伯数字字帖 01数字字帖_杨任东竹石体-Regular AI缩略版代码
'''
import os
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
from docx2pdf import convert
from PyPDF2 import PdfMerger
# 多少份(必须双数)
num = 2
lie = 16
hang = 10
ziti = '杨任东竹石体-Regular'
size = 43
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\数字描字帖'
imagePath = path+r'\零时Word'
if not os.path.exists(imagePath):
os.makedirs(imagePath)
number = [i for i in range(10) for _ in range(lie)]
bg = ['{:02d}{:02d}'.format(x, y) for x in range(hang) for y in range(lie)]
for n in range(int(num/2)):
doc = Document(path+fr"\01数字描字本_模板字帖.docx")
for b in range(2):
table = doc.tables[b]
for t in range(len(bg)):
pp, qq, k = int(bg[t][0:2]), int(bg[t][2:4]), number[t]
run = table.cell(pp, qq).paragraphs[0].add_run(str(k))
run.font.name = ziti
run.font.size = Pt(size)
run.bold = False
run.font.color.rgb = RGBColor(220, 220, 220)
r = run._element
r.rPr.rFonts.set(qn('w:eastAsia'), ziti)
table.cell(pp, qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
doc.save(imagePath+fr'\{n:02d}.docx')
convert(imagePath+fr'\{n:02d}.docx', imagePath+fr'\{n:02d}.pdf')
pdf_lst = [os.path.join(imagePath, filename) for filename in os.listdir(imagePath) if filename.endswith('.pdf')]
pdf_lst.sort()
file_merger = PdfMerger()
for pdf in pdf_lst:
file_merger.append(pdf)
file_merger.write(path+fr'\(打印合集){ziti}字帖 阿拉伯数字0-9({num}份).pdf')
file_merger.close()
# 删除临时文件夹
import shutil
shutil.rmtree(imagePath)