1、图片模板
2、实现代码
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.font.TextAttribute;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.AttributedString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.awt.Font;
import java.awt.font.FontRenderContext;
import java.awt.font.LineBreakMeasurer;
import java.awt.font.TextLayout;
public class InsertPic {
public static final String PATH = "D:\\OA_Temp";
public static void MakeCertificateOfAppreciation(String recognizor,String content){
try{
BufferedImage backgroundImage = ImageIO.read(new File(PATH + "\\templates\\Certificate.jpg"));
BufferedImage imageToInsert = ImageIO.read(new File(PATH + "\\templates\\CompanySeal.png"));
double scaleFactor = 0.5;
int scaledWidth = (int) (imageToInsert.getWidth() * scaleFactor);
int scaledHeight = (int) (imageToInsert.getHeight() * scaleFactor);
Graphics2D g2d = backgroundImage.createGraphics();
g2d.setColor(Color.black);
Font font = new Font("SimSun", Font.PLAIN, 20);
g2d.setFont(font);
FontMetrics fm = g2d.getFontMetrics();
g2d.drawString(recognizor, 80, 280);
FontRenderContext frc = g2d.getFontRenderContext();
AttributedString attributedText = new AttributedString(content);
attributedText.addAttribute(TextAttribute.FONT, font);
float drawX = 80;
float drawY = 310;
LineBreakMeasurer measurer = new LineBreakMeasurer(attributedText.getIterator(), frc);
while (measurer.getPosition() < content.length()) {
TextLayout layout = measurer.nextLayout(backgroundImage.getWidth() - drawX * 2);
float y1 = drawY + layout.getAscent();
layout.draw(g2d, drawX, y1);
drawY += layout.getAscent() + layout.getDescent() + layout.getLeading();
}
String text = "特此表彰,以资鼓励。";
g2d.drawString(text, 80, 580);;
text = "这是一个公司名(中国)有限公司";
g2d.drawString(text, 650, 600);;
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月 ");
String formattedDate = sdf.format(date);
text = "年 月:"+formattedDate;
g2d.drawString(text, 710, 620);
g2d.drawImage(imageToInsert.getScaledInstance(scaledWidth, scaledHeight, Image.SCALE_SMOOTH), 680, 580, null);
g2d.dispose();
sdf = new SimpleDateFormat("yyyyMMdd HHmm ");
formattedDate = sdf.format(date);
String fileName = formattedDate + "temp.png";
ImageIO.write(backgroundImage, "jpg", new File(PATH +"\\attachments\\"+fileName));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String recognizor = "你好,星期六";
String content =" 苍茫的天涯是我的爱 绵绵的青山脚下花正开 什么样的节奏是最呀最摇摆 什么样的歌声才是最开怀 弯弯的河水从天上来 流向那万紫千红一片海 哗啦啦的歌谣是我们的期待 " +
"一路边走边唱才是最自在 我们要唱就要唱得最痛快 你是我天边最美的云彩 让我用心把你留下来 留下来 悠悠的唱着最炫的民族风 让爱卷走所有的尘埃 我知道 " +
"你是我心中最美的云彩 斟满美酒让你留下来 留下来 永远都唱着最炫的民族风 是整片天空最美的姿态 留下来";
MakeCertificateOfAppreciation(recognizor,content);
}
}
3、生成模板