展示型商城订单网站建设,赤峰建设银行网站,wordpress网站不稳定,WordPress与前端背景需求#xff1a; 工会老师求助#xff1a;如何在word里面插入4*8的框#xff0c;我怎么也拉不到4*8大小#xff08;她用的是我WORD 文本框#xff09; 我一听#xff0c;这又是要手动反复黏贴“文本框”“照片”“文字”的节奏哦
我问#xff1a;你要做几个人…背景需求 工会老师求助如何在word里面插入4*8的框我怎么也拉不到4*8大小她用的是我WORD 文本框 我一听这又是要手动反复黏贴“文本框”“照片”“文字”的节奏哦
我问你要做几个人超过20个我写个程序批量插图写代码测试要费时间如果数量少不如手动做
工会老师大约十几个人吧你能直接插图我一个个弄太麻烦了。
我说OK你把照片和文字发给我吧 材料准备
全部材料路径红框两个必备 第一步word框架 重要的事情!!! 第二步图片下载用“序号名言JPG” 方式命名照片 图片文件名结构——“序号”“名言”.jpg
每位老师的序号和名言都不同 WORD里面表格的文字就是提取“图片名称里面的索引”2“到导引”倒数-4“中间的内容留头不留尾巴尾部索引1 代码展示 工会小照片插入同一个WORD里
阿夏
时间2023年9月7日
import os
from PIL import Image
import randomimport os,time
import docx
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorprint(----------第1步把打照片变成小照片------------)# 减小图片质量像素
prrC:\Users\jg2yXRZ\OneDrive\桌面\工会教师小照片\教师照片座右铭# 新建小图文件夹
smallpathpr[:-7]\\教师照片座右铭(小图)
os.mkdir(smallpath)imgs1os.listdir(pr)
print(imgs1)
for img1 in imgs1:# print(img1)if img1.endswith(.jpg):apr\\img1 # 减小图片质量像素img Image.open(a)w,h img.sizew,h round(w * 0.2),round(h * 0.2) # // 去掉浮点防报错img img.resize((w,h), Image.ANTIALIAS)img.save(smallpath\\img1, optimizeTrue, quality85) # 9.99MB照片变成127KB # 质量为85效果最好print(----------第2步读取写入小照片和文字------------)path[]
name[]
imgs2os.listdir(smallpath)
for img2 in imgs2:if img1.endswith(.jpg):path.append(smallpath\\img2)name.append(img2[2:-4])
print(path)
print(name)# 制作零时文件夹
lspathpr[:-7]\\零时Word
os.mkdir(lspath)# 制作12个docx
for z in range(0,len(path)): doc Document(rC:\Users\jg2yXRZ\OneDrive\桌面\工会教师小照片\模板.docx)
# # 制作列表# 单元格位置3*4格table doc.tables[0] # 45678 kpath[z] k2name[z] # 写入图片rundoc.tables[0].cell(0,0).paragraphs[0].add_run() # 在第1个表格中第2个单元格内插入国旗run.add_picture({}.format(k),widthCm(3.5),heightCm(6))table.cell(0,0).paragraphs[0].alignment WD_PARAGRAPH_ALIGNMENT.LEFT #居中 # 写入序号和生肖名称runtable.cell(1,0).paragraphs[0].add_run(k2) # 在单元格0,0(第1行第1列)输入第0个图图案run.font.name 楷体#输入时默认华文彩云字体# run.font.size Pt(46) #输入字体大小默认30号 换行一页一份大卡片run.font.size Pt(10) #输入字体大小默认30号 一行里可以一页两份run.font.bold True #是否加粗run.font.color.rgb RGBColor(0,0,0) #数字小颜色深0-255# paragraph.paragraph_format.line_spacing Pt(180) #数字段间距r run._elementr.rPr.rFonts.set(qn(w:eastAsia), 楷体)#将输入语句中的中文部分字体变为华文行楷table.cell(1,0).paragraphs[0].alignment WD_PARAGRAPH_ALIGNMENT.CENTER #居中 endlisthlspath\\{}.docx.format(z)doc.save(endlisth) print(----------第3步doc 文档合并------------) # 合并所有Word
import win32com.client as win32
import os
word win32.gencache.EnsureDispatch(Word.Application)
#启动word对象应用
word.Visible False
path lspath
files []
for filename in os.listdir(path):filename os.path.join(path,filename)files.append(filename)#新建合并后的文档使用模板进行12个文件夹的合并把12个文件夹的内容贴到已有的模板包含0.7边、四分栏
output word.Documents.Add(rC:\Users\jg2yXRZ\OneDrive\桌面\工会教师小照片\模板.docx)
for file in files:output.Application.Selection.InsertFile(file)#拼接文档#获取合并后文档的内容doc output.Range(output.Content.Start, output.Content.End)# 合并word
lspathallpr[:-7]\\小照片合并打印(需手动整理).docxoutput.SaveAs(lspathall) #保存
output.Close()print(----------第4步删除临时文件夹------------)
import shutil
shutil.rmtree(lspath) #递归删除文件夹即删除非空文件夹
shutil.rmtree(smallpath) # 合并word打开
lspathallpr[:-7]\\小照片合并打印(需手动整理).docx
终端运行直接运行 运行中先出现“小图”文件夹最后会删掉
这些黄衣服的照片是请摄影师拍摄的每张图片10MB如果插到word里整个word太大了所以先压缩成小图 做小图的代码质量改成85
运行中其次会出现“零时WORD”文件夹这是存放13个文档每个文档只有一个单元格不同的照片和其喜欢的名言 word合并版 运行结束 必须调整图片质量制作小图的意义 调整
发给领导后领导提示修改意见 这一刻觉得写个代码太值得了只要微调一个格子就能批量做13份照片绝对比人工调13次表格和照片方便
调整方法:单元格宽度修改 现在就是3.5*8的单元格包含小照片和名言 其他提示关于表格与表格之间的空行 如果不空第一行会出现什么结果呢 结果虽然第一张照片顶格了但是图片与图片之间被表格黏连了一个空行回车也在表格 需求工会老师要用花边剪刀裁剪就需要每张小照片周边都是白色边框所以我还是让“模板边框前面的一行回车空行确保每个小照片周边都是白色。”
就是需要打开后手动删除第一行的回车。确保每张照片都是矩阵排列。 感悟
前几天我总是问老师数量多不多多的话超过10个我写个代码批量做一下写代码、测试代码都要时间。少的话10个以内手动做吧速度更快
今天我觉得既然同事们来求助一定是潜意识希望有一个提高制作效率的方法手动复制黏贴有点累、烦。
现在哪怕只有5个重复黏贴电脑操作我也希望用代码word模板、EXCEL。因为手动做一次没问题但一旦需要调整大小样式就出现大量的重复操作让人感觉低效、琐碎、不值得 小结python批量解决这个问题大大减少人工重复劳动。
1、在遇到输入错误手动操作有遗漏、错误时可以快速批量修正提高正确率
2、在遇到模板调整字体、大小、颜色时更能以一当百自动复制黏贴快速生成统一新样式极大提高工作效率。 进步
上一次制作WORD文本框爱心、五角星标签字帖只能插入EXCEL文字{{name}}
本次运用word表格单元格正方形、长方形制作照片帖可以写入文字和照片进一步丰富了批量办公制作的范畴。读取列表写入单元格 继续探究更多python与办公的可能性提高工作效率。优化版式结构。