Java后台生成图片的完整步骤


Posted in Java/Android onAugust 04, 2021

前言

由于从事的是支付行业,最近对接的一些第三方支付有时候需要我们这边提供用户的资料和交易信息,并且以图片的形式发送给他们,由于这是后台程序自动处理,然后直接发送给第三方支付公司,因此需要后台查出用户的相关信息,然后生成图片,调用第三方提供的接口,将图片链接以附件的形式发给他们,当用户发起dispute操作的时候,触发我方后台的自动处理机制。

Java后台生成图片

1. 依赖的jar包(maven依赖)

<dependency>
   <groupId>com.github.xuwei-k</groupId>
   <artifactId>html2image</artifactId>
   <version>0.1.0</version>
</dependency>

2. 代码

package com.generatePic;

import gui.ava.html.image.generator.HtmlImageGenerator;

public class TestGeneratePic {

    public static void main(String[] args) {
        generatePic();
    }

    public static void generatePic() {
        HtmlImageGenerator htmlImageGenerator = new HtmlImageGenerator();

        //format 表示html里的元素,比如表格
        String format = "<table>\n" +
                "  <tbody>\n" +
                "  <tr>\n" +
                "\t<img src="https://static.msport.com/public/up/pocket/operator/msportlogo.png" />\n" +
                "  </tr>\n" +
                "  </tbody>\n" +
                "</table>\n" +
                "\n" +
                "\n" +
                "<table border =1>\n" +
                "  <tbody>\n" +
                "    <tr>\n" +
                "      <td>User Account(user account number)</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "   <tr>\n" +
                "      <td>user's email</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "\t   <tr>\n" +
                "      <td>user's name</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "  </tbody>\n" +
                "</table>\n" +
                "</br>\n" +
                "\n" +
                "<table>\n" +
                "  <tbody>\n" +
                "  <tr>\n" +
                "  <font size = "4">\n" +
                "  <b>PAYMENT INFOMATION</b> \n" +
                "  </font>\n" +
                "  </tr>\n" +
                "  </tbody>\n" +
                "</table>\n" +
                "\n" +
                "<table border =1>\n" +
                " <tbody>\n" +
                "  <tr>\n" +
                "      <td>Transaction Reference</td>\n" +
                "      <td>%s</td>\n" +
                "  </tr>\n" +
                "  <tr>\n" +
                "      <td>Transaction Amount</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "\t<tr>\n" +
                "      <td>Currency</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "\t<tr>\n" +
                "      <td>Transaction Status</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "\t<tr>\n" +
                "      <td>Transaction Date</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "\t<tr>\n" +
                "      <td>Payment Type</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "\t<tr>\n" +
                "      <td>Card Number</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "\t<tr>\n" +
                "      <td>Service Details</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "  </tbody> \n" +
                "</table>\n" +
                "<br/>\n" +
                "\n" +
                "<table>\n" +
                "  <tbody>\n" +
                "  <tr>\n" +
                "  <font size = "4">\n" +
                "  <b>SERVICE HISTORY</b> \n" +
                "  </font>\n" +
                "  </tr>\n" +
                "  </tbody>\n" +
                "</table>\n" +
                "\n" +
                "<table border =1>\n" +
                "<thead>\n" +
                "    <tr>\n" +
                "      <th>DATE</th>\n" +
                "      <th>DESCRIPTION</th>\n" +
                "      <th>AMOUNT</th>\n" +
                "      <th>BALANCE</th>\n" +
                "    </tr>\n" +
                "  </thead>\n" +
                "  \n" +
                "  <tbody>\n" +
                "    <tr>\n" +
                "      <td>%s</td>\n" +
                "      <td>%s</td>\n" +
                "      <td>%s</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "   <tr>\n" +
                "      <td>%s</td>\n" +
                "      <td>%s</td>\n" +
                "      <td>%s</td>\n" +
                "      <td>%s</td>\n" +
                "    </tr>\n" +
                "  </tbody>\n" +
                "</table>\n" +
                "\n" +
                "\n";
        String finalHtml = "<html></body>" + format + "</body></html>";
        htmlImageGenerator.loadHtml(finalHtml);

        //图片名
        String fileName = "1" + ".png";
        
        htmlImageGenerator.saveAsImage(fileName);

    }
}

3. 生成的图片

Java后台生成图片的完整步骤

生成的图片路径默认在项目路径下:

Java后台生成图片的完整步骤

4. 实际应用的建议

可以通过   String.format() 函数, 拼接实际的数据,比如3中的%s就可以替换为实际的数据,最后生成自己想要的数据,如果你的前端技术足够好,那么你可以在后台画出更优美的图片。

总结

到此这篇关于Java后台生成图片的文章就介绍到这了,更多相关Java后台生成图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
Java输出Hello World完美过程解析
Jun 13 Java/Android
详解Java实践之建造者模式
Jun 18 Java/Android
Java 数组内置函数toArray详解
Jun 28 Java/Android
mybatis中sql语句CDATA标签的用法说明
Jun 30 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
SpringCloud之@FeignClient()注解的使用方式
Sep 25 Java/Android
Jpa Specification如何实现and和or同时使用查询
Nov 23 Java/Android
Java 数据结构七大排序使用分析
Apr 02 Java/Android
JAVA长虹键法之建造者Builder模式实现
Apr 10 Java/Android
Android studio 简单计算器的编写
May 20 Java/Android
在Spring-Boot中如何使用@Value注解注入集合类
Aug 02 #Java/Android
SpringBoot整合RabbitMQ的5种模式实战
Log4j.properties配置及其使用
Aug 02 #Java/Android
一篇文章带你学习Mybatis-Plus(新手入门)
Spring Boot 排除某个类加载注入IOC的操作
Aug 02 #Java/Android
SpringBoot+VUE实现数据表格的实战
springboot 启动如何排除某些bean的注入
Aug 02 #Java/Android
You might like
IIS6的PHP最佳配置方法
2007/03/19 PHP
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
原生js二级联动效果
2017/06/20 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
10款最好的Web开发的 Python 框架
2015/03/18 Python
python遍历类中所有成员的方法
2015/03/18 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
django使用channels实现通信的示例
2020/10/19 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
会议开场欢迎词
2014/01/15 职场文书
培训自我鉴定
2014/01/31 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书