批量生成奖状的简单程序

import os
import shutil
from openpyxl import load_workbook,Workbook
from PIL import ImageDraw
from PIL import Image
# 更换工作路径
os.chdir("E://jpgex")
# 通过 名单获取人名
wb = load_workbook("训练集中营名单.xlsx") # 将含有人名的文件导入内存
ws = wb["Sheet1"] # 指出要操作工作表

for cell in ws["B2:B29"]: # 遍历工作表对应列的一部分呢,获得人名
    name=cell[0].value+".jfif"
    shutil.copy('miao.jfif',name) # 复制并命名
    image = Image.open(name)
    draw=ImageDraw.Draw(image)
    draw.text((200,100),'wyl')
    draw.text((300,100),'old')
    image.save(name)

通过获取表格文件对应的名单,给给奖状复制并且命名,同时添加对应文字

### 实现奖状打印功能 为了实现在 Vue.js 项目中的奖状打印功能,可以采用如下方式构建组件并集成打印逻辑。此过程涉及创建一个可动态填充内容的模板以及触发浏览器原生打印对话框。 #### 创建奖状模板 首先,在Vue单文件组件内定义HTML结构作为奖状样式的基础布局: ```html <template> <div id="certificate"> <h1>荣誉证书</h1> <p v-html="content"></p> <!-- 添加更多自定义字段 --> </div> <button @click="printCertificate">打印奖状</button> </template> <script> export default { data() { return { content: &#39;兹证明:<br><strong>{{ name }}</strong><br>在本次活动中表现出色...&#39; } }, methods: { printCertificate() { let popupWinindow; const printContents = document.getElementById(&#39;certificate&#39;).innerHTML; popupWindow = window.open(&#39;&#39;, &#39;_blank&#39;, `width=${screen.width},height=${screen.height}`); popupWindow.document.open(); popupWindow.document.write(` <!DOCTYPE html> <html> <head> <title>Print Certificate</title> <style type="text/css"> /* 插入CSS以确保打印效果良好 */ body { font-family: Arial; margin:0 auto;text-align:center;} h1,p{margin-bottom:2rem} </style> </head> <body onload="window.print();window.close()"> ${printContents} </body> </html>` ); popupWindow.document.close(); } } }; </script> ``` 上述代码片段展示了如何利用`v-html`指令渲染带有占位符的内容,并通过按钮事件调用`printCertificate()`函数来打开新窗口执行打印操作[^2]。 #### 动态设置奖状信息 对于需要个性化的部分,比如获奖者姓名或其他细节,可以通过props传递给子组件或者直接修改data对象内的相应属性值。这样就能轻松调整每份奖状的具体内容而不必更改整体设计。 #### 调整样式适应打印需求 考虑到实际打印的效果可能与屏幕预览有所差异,建议单独编写针对媒体查询@media print的CSS规则,优化纸张方向、页边距等参数,从而获得更理想的输出质量。 ```css /* 打印专用样式 */ @media print { body * { visibility:hidden; } #certificate, #certificate *{ visibility:visible; } #certificate { position:absolute; top:0; left:0; } /* 更多定制化样式 */ } ``` 这种做法能够有效隐藏不必要的界面元素,只保留用于打印的关键区域,提高最终文档的专业性和美观度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值