Skip to content

Latest commit

 

History

History
122 lines (82 loc) · 2.78 KB

File metadata and controls

122 lines (82 loc) · 2.78 KB

WHUDAYS 25学年 社员卡工具

共两个脚本:

  • prepare_member_assets.ps1:给商家印刷用
  • generate_card.ps1:生成预览图用

仓库结构

card/
├── template.psd
├── generate_card.ps1
├── prepare_member_assets.ps1
├── 社员卡(收集结果)/
│   ├── 社员卡(收集结果).xlsx
│   └── 图片/
└── output/

数据目录约定

默认数据目录结构:

社员卡(收集结果)/
├── 社员卡(收集结果).xlsx
└── 图片/

主要使用列:

  • CN(圈名/网名)(必填)
  • 请选择部门~(必填)
  • 请上传头像(看下面小字!)(必填)

头像列可填写文件名或路径。脚本会做多种兼容匹配(包括特殊字符、不可见控制字符差异)。

环境要求

prepare_member_assets.ps1

  • Windows
  • PowerShell 5.1+
  • Microsoft Excel(COM 读取 xlsx)
  • Python 虚拟环境(推荐 .venv
  • Pillow(用于个别图片格式回退解码,例如扩展名为 .jpg 但实际是 WebP)

generate_card.ps1

  • Windows
  • PowerShell 5.1+
  • Microsoft Excel
  • Adobe Photoshop(COM 自动化)

脚本 1:素材预处理

脚本:prepare_member_assets.ps1

功能:

  • 从收集表导出新表(仅 姓名部门 两列)
  • 将头像中心裁剪并缩放为 683x683(和psd模板头像尺寸一致)

用法

# 自动查找数据目录
.\prepare_member_assets.ps1

# 指定数据目录
.\prepare_member_assets.ps1 -DataFolder ".\社员卡(收集结果)"

# 指定输出目录
.\prepare_member_assets.ps1 -DataFolder ".\社员卡(收集结果)" -OutputDir ".\output\member_assets"

输出

  • output/member_assets/导出_姓名部门.xlsx
  • output/member_assets/图片/{姓名}.jpg|png...

脚本 2:卡片预览导出

脚本:generate_card.ps1

功能:

  • 读取 Excel 中的 CN、部门、头像
  • 替换 PSD 模板图层:CN部门头像
  • 导出预览图

用法

# 自动查找数据目录
.\generate_card.ps1

# 指定数据目录
.\generate_card.ps1 -DataFolder ".\社员卡(收集结果)"

# 指定模板和输出目录
.\generate_card.ps1 -DataFolder ".\社员卡(收集结果)" -OutputDir ".\output" -TemplatePath ".\template.psd"

输出

每位成员两张图:

  • output/{CN}_画板1.png
  • output/{CN}_画板2.png

当前脚本按画板真实边界导出(artboardRect),用于保证尺寸正确。

PSD 模板约定

  • 必须存在名为 CN 的文字图层
  • 必须存在名为 部门 的文字图层
  • 必须存在名为 头像 的智能对象图层
  • 需要两个画板:画板 1画板 2

当前模板中每个画板尺寸为 2426x1530,因此导出的 画板1/画板2 也应为 2426x1530。