【Java】电子凭证 |
您所在的位置:网站首页 › 电子书籍购买凭证图片怎么弄 › 【Java】电子凭证 |
文章目录
背景实现思路技术方案图
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设置,在线查看/下载,不需通过附件服务 技术方案图有多种模板引擎技术可以对html模板进行动态渲染, 请自行选择 Thymeleaf Apache Freemarker Groovy Templates velocity HTML TO PDF 技术html转换为pdf的关键技术是如何处理网页中复杂的css样式、以及中文乱码处理。 各实现对比表
HTML转化PDF步骤: 在官网下载 wkhtmltopdf.exe准备html文件路径或网址, eg: /opt/template.html, https://www.baidu.com/执行wkhtmltopdf https://www.baidu.com/ baidu.pdf代码实现参考该工具类优质源码: html2file参考源码: html2Pdfhtml2pdfhtmltopdf-testhtmltopdf-java iTextiText是著名的开放源码的站点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 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |