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 将PPT幻灯片转为HTML文件的实现思路
Jun 11 Java/Android
SpringBoot2 参数管理实践之入参出参与校验的方式
Jun 16 Java/Android
详解Java实践之抽象工厂模式
Jun 18 Java/Android
Netty结合Protobuf进行编解码的方法
Jun 26 Java/Android
Java常用函数式接口总结
Jun 29 Java/Android
一篇文章带你学习Mybatis-Plus(新手入门)
Aug 02 Java/Android
Java练习之潜艇小游戏的实现
Mar 16 Java/Android
Java Spring Boot 正确读取配置文件中的属性的值
Apr 20 Java/Android
IDEA 2022 Translation 未知错误 翻译文档失败
Apr 24 Java/Android
Java处理延时任务的常用几种解决方案
Jun 01 Java/Android
一文了解Java动态代理的原理及实现
Jul 07 Java/Android
SpringBoot深入分析讲解监听器模式下
Jul 15 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
PHP JWT初识及其简单示例
2018/10/10 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
js 通用订单代码
2013/12/23 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
2018/02/23 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
JS实现分页导航效果
2020/02/19 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
python爬虫常用的模块分析
2014/08/29 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
pandas去除重复列的实现方法
2019/01/29 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
python math模块的基本使用教程
2021/01/16 Python
消防安全责任书范本
2014/04/15 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
邀请函模板
2015/02/02 职场文书