本帖最后由 奔跑的蜗牛119 于 2020-12-1 22:53 编辑
导入主要依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-poi</artifactId>
<version>5.5.1</version>
</dependency>
上代码(对excel表格标题做了下处理,改成了英文 name、depart、job。)
package com.sun;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import java.awt.*;
import java.io.File;
import java.util.Arrays;
import java.util.List;
/**
* @ClassName: image
*/
public class Iimage {
private static void addText(File copyFile, String text, int y){
ImgUtil.pressText(
copyFile,
copyFile,
text, Color.black,
//字体
new Font("黑体", Font.BOLD, 50),
//x坐标修正值。 默认在中间,偏移量相对于中间偏移
50,
//y坐标修正值。 默认在中间,偏移量相对于中间偏移
y,
//透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
1f
);
}
private static void addPic(File copyFile, File file){
ImgUtil.pressImage(
copyFile,
copyFile,
//水印图片
ImgUtil.read(file),
//x坐标修正值。 默认在中间,偏移量相对于中间偏移
5,
//y坐标修正值。 默认在中间,偏移量相对于中间偏移
-220,
1f
);
}
public static void main(String[] args) {
//读取照片列表
List<File> files = Arrays.asList(FileUtil.ls("D:\\idm下载\\Compressed\\photos\\工作证照片"));
//读取人员信息
ExcelReader reader = ExcelUtil.getReader("D:\\idm下载\\Compressed\\photos\\工作证信息.xlsx");
List<ExcelEmp> excelEmp = reader.readAll(ExcelEmp.class);
//填充数据
for (int i = 0; i < excelEmp.size(); i++) {
ExcelEmp emp = excelEmp.get(i);
File copyFile = FileUtil.copy("D:\\idm下载\\Compressed\\photos\\工作证.png", "D:\\idm下载\\Compressed\\photos\\" + emp.getName() + ".png", false);
// 姓名
addText(copyFile,emp.getName(),30);
// 部门
addText(copyFile,emp.getDepart(),130);
// 工作
addText(copyFile,emp.getJob(),220);
// 照片
addPic(copyFile,files.get(i));
}
}
}
class ExcelEmp{
private String name;
private String depart;
private String job;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepart() {
return depart;
}
public void setDepart(String depart) {
this.depart = depart;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
}
后续优化:将照片文件存入map集合,通过get(姓名)方式获取图片
|