如何使用java实现合法的电子合同?

2020-04-16 11:20发布

[图]1,电子签名实现2,电子印章实现3,合法证书绑定4,电子证书加密实现

1,电子签名实现2,电子印章实现3,合法证书绑定4,电子证书加密实现


2条回答

参考如下代码:

package com.wonders.cop.billing.util;

import java.awt.AlphaComposite;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.RenderingHints;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import javax.imageio.ImageIO;

public class ImageMarkLogoUtil {

// 水印透明度

private static float alpha = 1f;

// 水印横向位置

private static int positionWidth = 82;

// 水印纵向位置

private static int positionHeight = 545;

// 水印文字字体

private static Font font = new Font("宋体", Font.PLAIN, 13);

// 水印文字颜色

private static Color color = Color.black;

public static void main(String[] args) {

String srcImgPath = "d:/888880002302900_web.jpg";

String targerTextPath = "d:/qie_text.jpg";

ImageMarkLogoUtil

.markImageByTexts(testValue(),

BillDetailImagePosition.getPosition("888880002302900"), srcImgPath,

targerTextPath);

}

public static Map testValue() {

Map value = new HashMap();

value.put("feedPrice", "15.1");

value.put("feedCount", "20");

value.put("nowNum", "124");

value.put("drainageCount", "55");

value.put("drainagePrice", "1.5");

value.put("feedCost", "66");

value.put("cost", "66");

value.put("drainageCost", "100");

value.put("barcode", "10101010101010101");

value.put("nextCopy", "2014-12-10");

value.put("waterType", "居民生活用水");

value.put("meterReader", "测试人员");

value.put("copyNumber", "741sg");

value.put("prevCarryOver", "0.25");

value.put("nowCarryOver", "2.12");

value.put("openDate", "20141002");

value.put("nextMonth", "201402 ");

value.put("remark", "您缴付的2013年03月30.80元水费,我公司已收到,谢谢!");

value.put("detailStatus", "00");

value.put("billStatus", "00");

value.put("prevMonth", "201406");

value.put("lastPayDate", "20140112");

value.put("companyName", "市北水");

value.put("type", "1");

value.put("amount", "58.1");

value.put("address", "浦秀路220弄10号101");

value.put("year","2014");

value.put("month", "04");

value.put("billId", "11111");

value.put("account", "38445450");

value.put("companyId", "888880002302900");

value.put("realName", "姚航");

return value;

}

/**

* 给图片添加水印文字、可设置水印文字的旋转角度

*

* @param logoText

* @param srcImgPath

* @param targerPath

* @param degree

*/

public static void markImageByTexts(Map value,

Map position, String srcImgPath, String targerPath) {

InputStream is = null;

OutputStream os = null;

try {

// 1、源图片

Image srcImg = ImageIO.read(new File(srcImgPath));

BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),

srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);

// 2、得到画笔对象

Iterator positionIter = position.keySet().iterator();

String key = "";

String logotext = "";

String[] xy;

while (positionIter.hasNext()) {

key = positionIter.next();

xy = position.get(key);

logotext = value.get(key);

System.out.println("key:"+key+",value:"+logotext);

if (xy != null && xy.length == 2)

printText(srcImg, buffImg, logotext,

Integer.valueOf(xy[0]), Integer.valueOf(xy[1]));

}

// 10、生成图片

os = new FileOutputStream(targerPath);

ImageIO.write(buffImg, "JPG", os);

System.out.println("图片完成添加水印文字");

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (null != is)

is.close();

} catch (Exception e) {

e.printStackTrace();

}

try {

if (null != os)

os.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

/**

* 在图片上打印文字

*

* @param srcImg

* @param buffImg

* @param logoText

* @return

*/

private static void printText(Image srcImg, BufferedImage buffImg,

String logoText, Integer positionX, Integer PositionY) {

Graphics2D g = buffImg.createGraphics();

// 3、设置对线段的锯齿状边缘处理

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,

RenderingHints.VALUE_INTERPOLATION_BILINEAR);

g.drawImage(

srcImg.getScaledInstance(srcImg.getWidth(null),

srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);

// 5、设置水印文字颜色

g.setColor(color);

// 6、设置水印文字Font

g.setFont(font);

// 7、设置水印文字透明度

g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,

alpha));

// 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y)

g.drawString(logoText, positionX, PositionY);

// 9、释放资源

g.dispose();

}

}


一周热门 更多>