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 相关文章推荐
springboot如何初始化执行sql语句
Jun 22 Java/Android
探讨Java中的深浅拷贝问题
Jun 26 Java/Android
Java中使用Filter过滤器的方法
Jun 28 Java/Android
Lombok的详细使用及优缺点总结
Jul 15 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
InterProcessMutex实现zookeeper分布式锁原理
Mar 21 Java/Android
Java 超详细讲解数据结构中的堆的应用
Apr 02 Java/Android
Java中API的使用方法详情
Apr 06 Java/Android
Java后端 Dubbo retries 超时重试机制的解决方案
Apr 14 Java/Android
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
Apr 19 Java/Android
mybatis 获取更新记录的id
May 20 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
一个php导出oracle库的php代码
2009/04/20 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
nodejs教程之入门
2014/11/21 NodeJs
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
Python的设计模式编程入门指南
2015/04/02 Python
Python中title()方法的使用简介
2015/05/20 Python
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
Python多图片合并PDF的方法
2019/01/03 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
python try 异常处理(史上最全)
2019/03/07 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
详解python itertools功能
2020/02/07 Python
python在地图上画比例的实例详解
2020/11/13 Python
校园网站的创业计划书范文
2013/12/30 职场文书
三年大学自我鉴定
2014/01/16 职场文书
2015年毕业实习工作总结
2014/12/12 职场文书
正规欠条模板
2015/07/03 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android
Python循环之while无限迭代
2022/04/30 Python