【Java】电子凭证

您所在的位置:网站首页 电子书籍购买凭证图片怎么弄 【Java】电子凭证

【Java】电子凭证

2024-07-04 14:54:11| 来源: 网络整理| 查看: 265

文章目录 背景实现思路技术方案图 Template Engines(模板引擎)`Thymeleaf``Apache Freemarker``Groovy Templates``velocity` `HTML TO PDF` 技术各实现对比表WKhtmlTOpdfiTextPhantomJS

技术核心: HTML生成PDF

背景

在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等。方便用户查看,下载,打印。目前常用的解决方案是,把相关数据信息,生成对应的pdf文件返回给用户。

电子凭证

本文文档:https://my.oschina.net/lujianing/blog/894365 本文源码:http://git.oschina.net/lujianing/java_pdf_demo

实现思路

对于电子凭证的技术方案,总结如下:

html模板+model数据,通过freemarker进行渲染,便于维护和修改渲染后的html流,可通过Flying Saucer组件生成pdf文件流,或者将其转成jpg文件流在Web项目中,该文件流可以通过ContentType设置,在线查看/下载,不需通过附件服务 技术方案图

流程图

Template Engines(模板引擎)

有多种模板引擎技术可以对html模板进行动态渲染, 请自行选择

Thymeleaf Apache Freemarker Groovy Templates velocity HTML TO PDF 技术

html转换为pdf的关键技术是如何处理网页中复杂的css样式、以及中文乱码处理。

各实现对比表

在这里插入图片描述 在这里插入图片描述

其他对比请参考PDF技术(四)-Java实现Html转PDF文件其他文件转PDF请参考晋文子上的文章 WKhtmlTOpdf

HTML转化PDF步骤:

在官网下载 wkhtmltopdf.exe准备html文件路径或网址, eg: /opt/template.html, https://www.baidu.com/执行wkhtmltopdf https://www.baidu.com/ baidu.pdf代码实现参考该工具类

优质源码:

html2file

参考源码:

html2Pdfhtml2pdfhtmltopdf-testhtmltopdf-java iText

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText 官网:http://itextpdf.com/ iText 开发文档: http://developers.itextpdf.com/developers-home iText Knowledge Base: https://kb.itextpdf.com/home iText目前有两套版本iText5和iText7。iText5应该是网上用的比较多的一个版本。iText5因为是很多开发者参与贡献代码,因此在一些规范和设计上存在不合理的地方。iText7是后来官方针对iText5的重构,两个版本差别还是挺大的。不过在实际使用中,一般用到的都比较简单,所以不用特别拘泥于使用哪个版本。

功能简介:

最简单的例子 -> com.itextpdf:itextpdf:5.5.11 -> JavaToPdf

iText-中文支持 -> JavaToPdfCN

iText-Html渲染 -> com.itextpdf.tool:xmlworker:5.5.11 -> JavaToPdfHtml

iText-Html-Freemarker渲染 -> org.freemarker:freemarker:2.3.19 -> JavaToPdfHtmlFreeMarker

Flying Saucer-CSS高级特性支持 -> org.xhtmlrenderer:flying-saucer-pdf:9.1.5 org.xhtmlrenderer:flying-saucer-pdf-itext5:9.1.5 -> JavaToPdfHtmlFreeMarker

Flying Saucer is a pure-Java library for rendering arbitrary well-formed XML (or XHTML) using CSS 2.1 for layout and formatting, output to Swing panels, PDF, and images. Flying Saucer是基于iText的,支持对CSS高级特性的解析

PDF转图片 -> org.jpedal:jpedal-lgpl:4.74b27 -> JavaToPdfImgHtmlFreeMarker

在某些场景中,我们可能只需要返回图片格式的电子凭证,我们可以使用Jpedal组件,把pdf转成图片 Jpedal支持将指定页Pdf生成图片,pdfDecoder.scaling设置图片的分辨率(不同分辨率下文件大小不同) ,支持多种图片格式,具体更多可自行研究

优质源码:

java_pdf_demo PhantomJS

纯前端解决方案, git地址: https://github.com/ariya/phantomjs PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭