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中Collection的一些常用方法总结
Jun 13 Java/Android
浅谈Python魔法方法
Jun 28 Java/Android
Maven学习----Maven安装与环境变量配置教程
Jun 29 Java/Android
Java基础之详解HashSet的使用方法
Jun 30 Java/Android
详细了解java监听器和过滤器
Jul 09 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
Spring this调用当前类方法无法拦截的示例代码
Mar 20 Java/Android
spring注解 @PropertySource配置数据源全流程
Mar 25 Java/Android
详解Flutter和Dart取消Future的三种方法
Apr 07 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
Apr 19 Java/Android
Spring Boot 实现 WebSocket
Apr 30 Java/Android
详解Spring Bean的配置方式与实例化
Jun 10 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中使用hidef扩展代替define提高性能
2015/04/09 PHP
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
如何在python中使用selenium的示例
2017/12/26 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
世界上最大的二手相机店:KEN
2017/05/17 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
大学生简历中个人的自我评价
2013/10/06 职场文书
初任培训自我鉴定
2013/10/07 职场文书
语文教育专业推荐信范文
2013/11/25 职场文书
自主招生自荐信格式
2013/12/03 职场文书
幼儿教师国培感言
2014/02/19 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
经理任命书模板
2014/06/06 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
天下第一关导游词
2015/02/06 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
工厂无线对讲系统解决方案
2022/02/18 无线电
解决 redis 无法远程连接
2022/05/15 Redis