package cn.report.pdf.sign.base;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
//生成一个如下图的签章图片
public class CreateSignImage {

	/**
	 * @param doctorName
	 *            String 医生名字
	 * @param hospitalName
	 *            String 医生名称
	 * @param date
	 *            String 签名日期
	 *            图片高度
	 * @param jpgname
	 *            String jpg图片名
	 * @return
	 */
	public static boolean createSignTextImg(String doctorName, String hospitalName, String date,String jpgname) 
	{
		int width = 255;
		int height = 100;
		//原代码 FileOutputStream out = null;
		
		Color bgcolor = Color.WHITE;//背景色
		Color fontcolor = Color.RED;//字色
		Font doctorNameFont = new Font(null, Font.BOLD, 20);
		Font othorTextFont = new Font(null, Font.BOLD, 18);
		try { // 宽度 高度
			BufferedImage bimage = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
			Graphics2D g = bimage.createGraphics();
			g.setColor(bgcolor); // 背景色
			g.fillRect(0, 0, width, height); // 画一个矩形
			g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); // 去除锯齿(当设置的字体过大的时候,会出现锯齿)

			g.setColor(Color.RED);
			g.fillRect(0, 0, 8, height);
			g.fillRect(0, 0, width, 8);
			g.fillRect(0, height - 8, width, height);
			g.fillRect(width - 8, 0, width, height);

			g.setColor(fontcolor); // 字的颜色
			g.setFont(doctorNameFont); // 字体字形字号
			
			int y = 35;
			int x = 100;
			g.drawString(doctorName,x, y); // 在指定坐标除添加文字
			
			g.setFont(othorTextFont); // 字体字形字号
			g.drawString(hospitalName,x-25,y+25); // 在指定坐标除添加文字
			g.drawString(date,x-10, y+50); // 在指定坐标除添加文字
			g.dispose();
		    
			String formatName = jpgname.substring(jpgname.lastIndexOf(".") + 1);
		    ImageIO.write(bimage, formatName,new File(jpgname));
		    return true;
		} catch (Exception e) {
			return false;
		}
	}
	public static void main(String[] args) {
		createSignTextImg("BM.XU", "北京交通大学", "2020.01.01","d:/test/sign.jpg");
	}
}
