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实现对Hadoop的操作
Jul 01 Java/Android
JavaWeb Servlet实现网页登录功能
Jul 04 Java/Android
新手初学Java List 接口
Jul 07 Java/Android
解决Jenkins集成SonarQube遇到的报错问题
Jul 15 Java/Android
maven依赖的version声明控制方式
Jan 18 Java/Android
关于ObjectUtils.isEmpty() 和 null 的区别
Feb 28 Java/Android
详解Spring Security中的HttpBasic登录验证模式
Mar 17 Java/Android
Java时间工具类Date的常用处理方法
May 25 Java/Android
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
Jun 01 Java/Android
ConditionalOnProperty配置swagger不生效问题及解决
Jun 14 Java/Android
spring 项目实现限流方法示例
Jul 15 Java/Android
HttpClient实现表单提交上传文件
Aug 14 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 xml文件操作实现代码(二)
2009/03/20 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
python实现整数的二进制循环移位
2019/03/08 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
基督教婚礼主持词
2014/03/14 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
文明演讲稿范文
2014/05/12 职场文书
复活读书笔记
2015/06/29 职场文书
导游词之张家界
2019/10/31 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL