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 11 Java/Android
java解析XML详解
Jul 09 Java/Android
dubbo集成zipkin获取Traceid的实现
Jul 26 Java/Android
关于springboot配置druid数据源不生效问题(踩坑记)
Sep 25 Java/Android
解析mybatis-plus中的resultMap简单使用
Nov 23 Java/Android
正则表达式拆分url实例代码
Feb 24 Java/Android
解决persistence.xml配置文件修改存放路径的问题
Feb 24 Java/Android
Spring Boot项目传参校验的最佳实践指南
Apr 05 Java/Android
MyBatis配置文件解析与MyBatis实例演示
Apr 07 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
Java数据结构之堆(优先队列)
May 20 Java/Android
Springboot中如何自动转JSON输出
Jun 16 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中ADODB类详解
2008/03/25 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
PHP生成条形图的方法
2014/12/10 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
php之可变变量的实例详解
2017/09/12 PHP
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
个人生活学习自我评价范文
2013/11/26 职场文书
小学中秋节活动方案
2014/02/06 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
公司捐书倡议书
2015/04/27 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL