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中的深浅拷贝问题
Jun 26 Java/Android
分析JVM源码之Thread.interrupt系统级别线程打断
Jun 29 Java/Android
JavaWeb Servlet实现网页登录功能
Jul 04 Java/Android
Spring Security中用JWT退出登录时遇到的坑
Oct 16 Java/Android
解析探秘fescar分布式事务实现原理
Feb 28 Java/Android
springboot+zookeeper实现分布式锁
Mar 21 Java/Android
Java存储没有重复元素的数组
Apr 29 Java/Android
Java 轮询锁使用时遇到问题
May 11 Java/Android
springboot 全局异常处理和统一响应对象的处理方式
Jun 28 Java/Android
SpringBoot深入分析讲解监听器模式下
Jul 15 Java/Android
阿里面试Nacos配置中心交互模型是push还是pull原理解析
Jul 23 Java/Android
Java中的Kafka为什么性能这么快及4大核心详析
Sep 23 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操作文件方法问答
2007/03/16 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
onpropertypchange
2006/07/01 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
python使用Matplotlib画饼图
2018/09/25 Python
简单了解python数组的基本操作
2019/11/26 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
六一节目主持词
2014/04/01 职场文书
交通安全寄语大全
2014/04/08 职场文书
感谢信格式范文
2015/01/22 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle