作品展示
背景需求:
为了便于快速做出A4两份图片的效果,设计以下代码,进行图片的PDF合成打印
代码参考:
【教学类-50-06】20240410“数一数”4类星号图片制作PDF学具-CSDN博客文章浏览阅读531次,点赞8次,收藏3次。【教学类-50-06】20240410“数一数”4类星号图片制作PDF学具https://blog.csdn.net/reasonsummer/article/details/137599757
第一步:下载图片
第二步:切割修图
我用PS把每张图片都修好了(因为图片有白边,而且每张图片的位置并不是正好等分)
第三步:制作word模板,
第四步:导入PDF打印版
代码展示
'''
把动物皮毛图片插入模板,生成打印用pdf
作者:AI对话大师,阿夏
时间:2024年4月11日
'''
import os
import time
import glob
from docx import Document
from docx.shared import Cm
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\主题强\01墙面花纹'
input_folder = path + r'\new2'
output_folder = os.path.join(path, '零时文件')
# 创建输出文件夹
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 获取234文件夹内的所有png图片路径
image_files = glob.glob(os.path.join(input_folder, '*.jpg'))
# 创建新的docx文档
doc = Document(path + fr'\打印1.docx')
# 插入图片和文本到表格中的00格和10格
for i, img_path in enumerate(image_files):
table = doc.tables[i % 2]
# 插入图片到00格
cell_00 = table.cell(0, 0)
cell_00.paragraphs[0].clear() # 清空单元格中原有内容
cell_00.paragraphs[0].alignment = 1 # 设置居中对齐
run_00 = cell_00.paragraphs[0].add_run()
run_00.add_picture(img_path, width=Cm(21.38), height=Cm(14.68))
# # 在10格中插入文本
# cell_10 = table.cell(1, 0)
# cell_10.paragraphs[0].clear() # 清空单元格中原有内容
# cell_10.paragraphs[0].text = "这是10格的文本"
# 每插入两张图片保存一次文件
if (i+1) % 2 == 0:
doc.save(os.path.join(output_folder, f'{i//2:02d}.docx'))
time.sleep(1)
# 将10个docx转为PDF
import os
from docx2pdf import convert
from PyPDF2 import PdfFileMerger
# from PyPDF4 import PdfMerger
# output_folder = output_folder
pdf_output_path = path+fr'\动物皮毛.pdf'
# 将所有DOCX文件转换为PDF
for docx_file in os.listdir(output_folder):
if docx_file.endswith('.docx'):
docx_path = os.path.join(output_folder, docx_file)
convert(docx_path, docx_path.replace('.docx', '.pdf'))
# 合并零时文件里所有PDF文件
merger = PdfFileMerger()
for pdf_file in os.listdir(output_folder):
if pdf_file.endswith('.pdf'):
pdf_path = os.path.join(output_folder, pdf_file)
merger.append(pdf_path)
time.sleep(2)
# 保存合并后的PDF文件
merger.write(pdf_output_path)
merger.close()
import shutil
# 删除输出文件夹
shutil.rmtree(output_folder)