BaseBean

BaseBean实体类解析

package com.ryx.entity;

import java.io.Serializable;

import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle;

public class BaseBean implements Serializable{

private static final long serialVersionUID = -4939103928251687911L;

private T id;

public T getId() {
	return id;
}

public void setId(T id) {
	this.id = id;
}

@Override
public String toString() {
	return ToStringBuilder.reflectionToString(this,ToStringStyle.JSON_STYLE);
}

@SuppressWarnings("rawtypes")
@Override
public boolean equals(Object obj) {
	if (this == obj)
		return true;
	if (obj == null)
		return false;
	if (getClass() != obj.getClass())
		return false;
	BaseBean other = (BaseBean) obj;
	if (id == null) {
		if (other.id != null)
			return false;
	} else if (!id.equals(other.id))
		return false;
	return true;
}
复制代码

}

转载于:https://juejin.im/post/5c07be0cf265da6115109545

这段代码中能解决重复添加水印的问题吗?每次添加水印之前先清空水印 import com.engine.doc.util.WaterMarkUtil; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.awt.image.ImageObserver; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import java.util.UUID; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import weaver.file.util.FileDeleteUtil; import weaver.general.BaseBean; import weaver.general.GCONST; import weaver.general.Util; import weaver.hrm.User; public class ImageMarkTwoUtil { public ImageMarkTwoUtil() { } public static void createMark(String var0, String var1, String var2, Color var3, float var4, String var5, int var6, int var7, Color var8) { String var9 = var1.contains(".") ? var1.substring(var1.lastIndexOf(".")) : ".JPG"; createMarkForPic2(var0, var1, var2, var3, var4, var5, var6, var7, var8, var9); } public static void createMarkForPic1(String var0, String var1, String var2, Color var3, float var4, String var5, int var6, int var7, Color var8) { String var9 = var1.contains(".") ? var1.substring(var1.lastIndexOf(".")) : ".JPG"; createMarkForPic2(var0, var1, var2, var3, var4, var5, var6, var7, var8, var9); } public static void createMarkForPic2(String var0, String var1, String var2, Color var3, float var4, String var5, int var6, int var7, Color var8, String var9) { createMarkForPic2(var0, var1, var2, var3, var4, var5, var6, var7, var8, var9, (Map)null); } public static void createMarkForPic2(String var0, String var1, String var2, Color var3, float var4, String var5, int var6, int var7, Color var8, String var9, Map<String, Object> var10) { // 强制覆盖参数以满足需求 var6 = 12; // 固定为12pt(Word 5号字) int repeatTimes = 3; // 固定绘制3次 int startX = 30; // 左上角X起始位置 int startY = 30; // 左上角Y起始位置 int stepY = 40; // 每次绘制的垂直间距 // 修复点:在方法开始处声明并初始化为null FileOutputStream var11 = null; try { // 原代码读取图片逻辑 BufferedImage var22 = ImageIO.read(new File(var0)); int var23 = var22.getWidth(null); int var24 = var22.getHeight(null); BufferedImage var25 = new BufferedImage(var23, var24, BufferedImage.TYPE_INT_RGB); Graphics2D var26 = var25.createGraphics(); var26.drawImage(var22, 0, 0, var23, var24, null); // 设置字体(强制12pt加粗) var26.setFont(new Font(var5, Font.BOLD, var6)); FontMetrics var34 = var26.getFontMetrics(); // 设置抗锯齿 var26.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 设置透明度(保留原参数var4) var26.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, var4)); // 修改后的绘制逻辑(3次绘制+白字黑边) for (int i = 0; i < repeatTimes; i++) { int currentY = startY + (i * stepY); // 绘制黑色描边 var26.setColor(Color.BLACK); var26.drawString(var2, startX-1, currentY-1); var26.drawString(var2, startX+1, currentY-1); var26.drawString(var2, startX-1, currentY+1); var26.drawString(var2, startX+1, currentY+1); // 绘制白色文字 var26.setColor(Color.WHITE); var26.drawString(var2, startX, currentY); } var26.dispose(); // 输出文件 var11 = new FileOutputStream(var1); // 在此处初始化 String var50 = "JPG"; if (var9.indexOf(".") != -1) { var50 = var9.substring(var9.lastIndexOf(".") + 1); } ImageIO.write(var25, var50, var11); } catch (Exception var47) { var47.printStackTrace(); } finally { try { if (null != var11) { var11.close(); } } catch (Exception var46) { var46.printStackTrace(); } } } public static File startMark(InputStream var0, String var1, String var2) { try { BaseBean var3 = new BaseBean(); String var4 = Util.null2String(var3.getPropValue("PdfWaterMarkSet", "htmlwaterFont")); try { var4 = new String(var4.getBytes("ISO-8859-1"), "UTF-8"); } catch (Exception var15) { var4 = "Microsoft YaHei"; } String var5 = Util.null2String(var3.getPropValue("PdfWaterMarkSet", "htmlwaterColor")); try { var5 = new String(var5.getBytes("ISO-8859-1"), "UTF-8"); } catch (Exception var14) { var5 = "222,222,222"; } int var6 = 222; int var7 = 222; int var8 = 222; if (!"".equals(var5) && var5.indexOf(",") > 0) { String[] var9 = var5.split(","); if (var9 != null && var9.length >= 3) { var6 = Util.getIntValue(var9[0]); var7 = Util.getIntValue(var9[1]); var8 = Util.getIntValue(var9[2]); } } String var17 = getTargetFilePath(var2); File var10 = new File(var17); inputstreamtofile(var0, var10); String var11 = getTargetFilePath(var2); createMark(var17, var11, var1, (Color)null, 1.0F, var4, 25, 0, new Color(var6, var7, var8)); File var12 = new File(var17); (new FileDeleteUtil()).deleteFile(var12); (new FileDeleteUtil()).deleteFile(var10); File var13 = new File(var11); if (var13.exists()) { var0.close(); return var13; } } catch (Exception var16) { var16.printStackTrace(); } return null; } public static File addSystemImgwmForPic(InputStream var0, String var1, String var2, User var3) { BufferedImage var4 = null; try { HashMap var5 = new HashMap(); var5.put("isconvert", "1"); var5.put("document", "document"); Map var6 = WaterMarkUtil.getWmSetting(var5, var3); Map var7 = (Map)var6.get("wmSetting"); String var8 = Util.null2String(var7.get("opacity")); String var9 = Util.null2String(var7.get("rotate")); String var10 = Util.null2String(var7.get("wmwidth")); String var11 = Util.null2String(var7.get("wmheight")); int var12 = Util.getIntValue(var8); int var13 = Util.getIntValue(var9); int var14 = Util.getIntValue(var10); int var15 = Util.getIntValue(var11); String var16 = getTargetFilePath(var2); File var17 = new File(var16); inputstreamtofile(var0, var17); String var18 = getTargetFilePath(var2); var4 = ImageIO.read(var17); int var19 = var4.getWidth((ImageObserver)null); int var20 = var4.getHeight((ImageObserver)null); BufferedImage var21 = new BufferedImage(var19, var20, 1); Graphics2D var22 = var21.createGraphics(); var22.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); var22.drawImage(var4.getScaledInstance(var19, var20, 4), 0, 0, (ImageObserver)null); ImageIcon var23 = new ImageIcon(var1); Image var24 = var23.getImage(); var22.rotate(Math.toRadians((double)(-var13)), (double)var21.getWidth() / 2.0D, (double)var21.getHeight() / 2.0D); float var25 = (float)var12 / 100.0F; var22.setComposite(AlphaComposite.getInstance(10, var25)); int var26 = var20 / var15; int var27 = var19 / var14; for(int var28 = 0; var28 < var26 + 1; ++var28) { for(int var29 = 0; var29 < var27 + 1; ++var29) { var22.drawImage(var24, var14 * (var29 + 1) - var14 / 2, var15 * (var28 + 1) - var15 / 2, (ImageObserver)null); } } var22.setComposite(AlphaComposite.getInstance(3)); var22.dispose(); File var32 = new File(var18); ImageIO.write(var21, "jpg", var32); File var33 = new File(var16); (new FileDeleteUtil()).deleteFile(var33); (new FileDeleteUtil()).deleteFile(var17); File var30 = new File(var18); if (var30.exists()) { var0.close(); return var30; } } catch (IOException var31) { var31.printStackTrace(); } return null; } public static File addSystemWaterForPic(InputStream var0, String var1, String var2, User var3) { HashMap var4 = new HashMap(); var4.put("isconvert", "1"); var4.put("document", "document"); Map var5 = WaterMarkUtil.getWmSetting(var4, var3); Map var6 = (Map)var5.get("wmSetting"); String var7 = Util.null2String(var5.get("familyname")); String var8 = Util.null2String(var6.get("fontsize")); String var9 = Util.null2String(var6.get("color")); int var10 = Util.getIntValue(var8); try { new BaseBean(); String var12 = var7; try { new String(var12.getBytes("ISO-8859-1"), "UTF-8"); } catch (Exception var23) { var12 = "Microsoft YaHei"; } String var13 = WaterMarkUtil.stringtoRGB(var9); try { var13 = new String(var13.getBytes("ISO-8859-1"), "UTF-8"); } catch (Exception var22) { var13 = "222,222,222"; } int var14 = 128; int var15 = 128; int var16 = 128; if (!var13.isEmpty() && var13.indexOf(",") > 0) { String[] var17 = var13.split(","); if (var17 != null && var17.length >= 3) { var14 = Util.getIntValue(var17[0]); var15 = Util.getIntValue(var17[1]); var16 = Util.getIntValue(var17[2]); } } String var25 = getTargetFilePath(var2); File var18 = new File(var25); inputstreamtofile(var0, var18); String var19 = getTargetFilePath(var2); createMarkForPic2(var25, var19, var1, (Color)null, 1.0F, var7, var10, 10, new Color(var14, var15, var16), var2, var6); File var20 = new File(var25); (new FileDeleteUtil()).deleteFile(var20); (new FileDeleteUtil()).deleteFile(var18); File var21 = new File(var19); if (var21.exists()) { var0.close(); return var21; } } catch (Exception var24) { var24.printStackTrace(); } return null; } public static File startMarkForPic(InputStream var0, String var1, String var2) { try { BaseBean var3 = new BaseBean(); String var4 = Util.null2String(var3.getPropValue("PdfWaterMarkSet", "htmlwaterFont")); try { var4 = new String(var4.getBytes("ISO-8859-1"), "UTF-8"); } catch (Exception var15) { var4 = "Microsoft YaHei"; } String var5 = Util.null2String(var3.getPropValue("PdfWaterMarkSet", "htmlwaterColor")); try { var5 = new String(var5.getBytes("ISO-8859-1"), "UTF-8"); } catch (Exception var14) { var5 = "222,222,222"; } int var6 = 222; int var7 = 222; int var8 = 222; if (!"".equals(var5) && var5.indexOf(",") > 0) { String[] var9 = var5.split(","); if (var9 != null && var9.length >= 3) { var6 = Util.getIntValue(var9[0]); var7 = Util.getIntValue(var9[1]); var8 = Util.getIntValue(var9[2]); } } String var17 = getTargetFilePath(var2); File var10 = new File(var17); inputstreamtofile(var0, var10); String var11 = getTargetFilePath(var2); createMarkForPic2(var17, var11, var1, (Color)null, 1.0F, var4, 15, 10, new Color(var6, var7, var8), var2); File var12 = new File(var17); (new FileDeleteUtil()).deleteFile(var12); (new FileDeleteUtil()).deleteFile(var10); File var13 = new File(var11); if (var13.exists()) { var0.close(); return var13; } } catch (Exception var16) { var16.printStackTrace(); } return null; } private static String getTargetFilePath(String var0) { String var1 = GCONST.getRootPath() + "filesystem" + File.separatorChar + "docWaterMarkTemp"; File var2 = new File(var1); if (!var2.exists() && !var2.isDirectory()) { var2.mkdirs(); } UUID var3 = UUID.randomUUID(); var1 = var1 + File.separatorChar + var3.toString() + var0; return var1; } private static void inputstreamtofile(InputStream var0, File var1) { try { FileOutputStream var2 = new FileOutputStream(var1); boolean var3 = false; byte[] var4 = new byte[8192]; int var6; while((var6 = var0.read(var4, 0, 8192)) != -1) { var2.write(var4, 0, var6); } var2.close(); var0.close(); } catch (Exception var5) { var5.printStackTrace(); } } public static void drawString(Graphics2D var0, String var1, float var2, float var3, int var4, float var5, float var6, boolean var7, boolean var8) { if (var1 != null && var1.length() != 0) { if (var7) { var1 = var1.replaceAll("\\n+", "\n").trim(); } if (var8) { var1 = "  " + var1.replaceAll("\\n", "\n  "); } drawString(var0, var1, var2, var3, var4, var5, var6); } } public static void drawString(Graphics2D var0, String var1, float var2, float var3, int var4, float var5, float var6) { if (var1 != null && var1.length() != 0) { FontMetrics var7 = var0.getFontMetrics(); StringBuilder var8 = new StringBuilder(); for(int var9 = 0; var9 < var1.length(); ++var9) { char var10 = var1.charAt(var9); var8.append(var10); int var11 = var7.stringWidth(var8.toString()); if (var10 == '\n' || (float)var11 > var3) { if (var10 == '\n') { ++var9; } if (var4 > 1) { var0.drawString(var1.substring(0, var9), var5, var6); drawString(var0, var1.substring(var9), var2, var3, var4 - 1, var5, var6 + var2); } else { var0.drawString(var1.substring(0, var9 - 1) + "…", var5, var6); } return; } } var0.drawString(var1, var5, var6); } } public static ByteArrayOutputStream getOutputStream(InputStream var0) throws IOException { ByteArrayOutputStream var1 = new ByteArrayOutputStream(); try { byte[] var2 = new byte[1024]; int var3; while((var3 = var0.read(var2)) > -1) { var1.write(var2, 0, var3); } var1.flush(); } catch (Exception var4) { } return var1; } }
最新发布
07-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值