Java后臺生成圖片的完整步驟
前言
由于從事的是支付行業(yè),最近對接的一些第三方支付有時候需要我們這邊提供用戶的資料和交易信息,并且以圖片的形式發(fā)送給他們,由于這是后臺程序自動處理,然后直接發(fā)送給第三方支付公司,因此需要后臺查出用戶的相關信息,然后生成圖片,調用第三方提供的接口,將圖片鏈接以附件的形式發(fā)給他們,當用戶發(fā)起dispute操作的時候,觸發(fā)我方后臺的自動處理機制。
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. 生成的圖片

生成的圖片路徑默認在項目路徑下:

4. 實際應用的建議
可以通過 String.format() 函數(shù), 拼接實際的數(shù)據(jù),比如3中的%s就可以替換為實際的數(shù)據(jù),最后生成自己想要的數(shù)據(jù),如果你的前端技術足夠好,那么你可以在后臺畫出更優(yōu)美的圖片。
總結
到此這篇關于Java后臺生成圖片的文章就介紹到這了,更多相關Java后臺生成圖片內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Springboot動態(tài)切換數(shù)據(jù)源的具體實現(xiàn)與原理分析
目前有個需求,需要使用不同的數(shù)據(jù)源,例如某業(yè)務要用A數(shù)據(jù)源,另一個業(yè)務要用B數(shù)據(jù)源,所以下面這篇文章主要給大家介紹了關于Springboot動態(tài)切換數(shù)據(jù)源的具體實現(xiàn)與原理分析,需要的朋友可以參考下2021-12-12
Yml轉properties文件工具類YmlUtils的詳細過程(不用引任何插件和依賴)
這篇文章主要介紹了Yml轉properties文件工具類YmlUtils(不用引任何插件和依賴),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
WebUploader客戶端批量上傳圖片 后臺使用springMVC
這篇文章主要為大家詳細介紹了WebUploader客戶端批量上傳圖片,后臺使用springMVC接收實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09
Mybatis和orcale update語句中接收參數(shù)為對象的實例代碼
Mybatis的 mapper.xml 中 update 語句使用 if 標簽判斷對像屬性是否為空值。本文重點給大家介紹Mybatis和orcale update語句中接收參數(shù)為對象的實例代碼,需要的朋友參考下吧2017-09-09

