最近在自己的项目中需要动态生成融资单合同,这里需要把对应的html转换为对应的pdf融资合同。因此需要通过Java实现将HTML转PDF。自己之前没有接触过这一块的东西,所以上网查了一下,网上有很多的工具可以处理这个问题~但是,总是感觉有点杂乱无章。在处理的过程中,也遇到了很多坑~今天刚好有时间,简单总结一下~算是一个纪念吧~

先简单说一下我生成合同基本思路:

我们这里使用的是velocity引擎,进行数据的填充

1、业务方提供Word合同文档

2、将word文档转为html文件

此处需要注意,在转换的过程中,一定要注意标签格式要对应上。有开始标签,一定要结束标签。否者的话,在使用解析工具会解析失败的

如果本人不确定如何转换的话,可以登录这个网址在线转换,本人亲测没问题~

word抓换为html网址:http://www.docpe.com/word/word-to-html.aspx

3、将html文档转换为以.vm结尾的freemark模板

          此处操作其实相对来说比较简单,其实只修改一下文件的后缀即可~

如原来的文件名"合同.html" 你直接修改"合同.vm"即可

4、在vm文件中填充对应的占位符,用于后期动态生成合同数据

          在对应的合同的VM界面中,对于需要填充数据的地方,使用freemarker占位符处理一下

这样的话,在后期就可以动态填充数据了。

     5、上传vm形式的合同模板到云存储上面

           将对应的合同模板上传到京东云上面,这样每次需要生成对应的合同的时候,直接从云上面下载下来即可,考虑到性能的问题,你可以在首次下载

完成后,将对应的模板添加到缓存里面,用来提高性能。

6、获取到需要需要生成合同的数据,使用velocity(或freemarker)的填充占位符功能

生成合并后的html数据

7、使用转换工具,将html文件抓换为pdf合同

          将html文件数据转换为pdf合同

 8、上传合同数据到云上,并保存合同连接~    

上传合同pdf到京东云上面,并且保存对应的合同连接~

下面我们重点介绍HTML生成PDF的几种常见方法:

    

     方法一: 

Java实现HTML转换为PDF的常见方法的更多相关文章

  1. Java反射机制涉及的类常见方法使用总结

    import java.lang.reflect.Constructor; import java.lang.reflect.*; /*Class:代表一个字节码文件的对象,每当有类被加载进内存,JV ...

  2. 01.在Java中如何创建PDF文件

    1.简介 在这篇快速文章中,我们将重点介绍基于流行的iText和PdfBox库从头开始创建 PDF 文档. 2. Maven 依赖 <dependency> <groupId> ...

  3. Java用OpenOffice将word转换为PDF

    一.      软件安装以及jar包下载 官网的下载地址如下(英文): OpenOffice 下载地址http://www.openoffice.org/ JodConverter 下载地址http: ...

  4. java 调用OpenOffice将word格式文件转换为pdf格式

    一:环境搭建 OpenOffice 下载地址http://www.openoffice.org/ JodConverter 下载地址http://sourceforge.net/projects/jo ...

  5. Java实现Html转PDF的方法

    写在前面 以下路径问题根据项目结构自己修改,以下是我使用spring boot打成jar包的写法. 一.需求背景 在前端编辑器中输入任意的文本,包括css样式变化,保存为html文本.通过Java后台 ...

  6. Java使用Openoffice将word、ppt转换为PDF

    最近项目中要实现WORD的文件预览功能,我们可以通过将WORD转换成PDF或者HTML,然后通过浏览器预览. OpenOffice OpenOffice.org 是一套跨平台的办公室软件套件,能在 W ...

  7. C#实现office文档转换为PDF或xps的一些方法( 转)

    源博客http://blog.csdn.net/kable999/article/details/4786654 代码支持任意office格式 需要安装office 2007 还有一个office20 ...

  8. JAVA 长整型转换为IP地址的方法

    JAVA 长整型转换为IP地址的方法 代码例如以下: /** * 整型解析为IP地址 * @param num * @return */ public static String int2iP(Lon ...

  9. Java中字符串的一些常见方法

    1.Java中字符串的一些常见方法 /** * */ package com.you.model; /** * @author Administrator * @date 2014-02-24 */ ...

随机推荐

  1. Kafka 单节点单Kafka Broker集群

    下载与安装 从 http://www.apache.org/dist/kafka/ 下载最新版本的 kafka,这里使用的是 kafka_2.12-0.10.2.1.tgz $ tar zxvf ka ...

  2. Faster R-CNN改进篇(二): RFCN ● RON

    @改进1:RFCN 论文:R-FCN: Object Detection via Region-based Fully Convolutional Networks    [点击下载] MXNet代码 ...

  3. MFMailComposeViewController发送邮件

    1.iPhone API已经提供了系统写邮件界面的接口,使用MFMailComposeViewController,用来显示界面. 2.项目中需要添加MessageUi.framework.头文件加入 ...

  4. 为虚拟机配置vhost-net网卡,方便调试

    很多时候为了方便自己手动编译和调试虚拟平台,我们需要自己编译qemu等组件并给虚拟机配置网卡等.其中稍微麻烦点的就是配置网卡这块,目前最方便的就是给虚拟机配置一个vhost-net网卡了. vhost ...

  5. 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇)

    在 .NET Framework 4.7 以前,WPF 程序的触摸处理是基于操作系统组件但又自成一套的,这其实也为其各种各样的触摸失效问题埋下了伏笔.再加上它出现得比较早,触摸失效问题也变得更加难以解 ...

  6. CALayer1-简介

    一.什么是CALayer * 在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. * 其实UIView之所以 ...

  7. php 中的 Output Control 函数

    先看一个简单的例子 <?php ob_start(); echo 111; ob_clean(); echo 222; ob_start()开启ob缓存,然后111放进了ob缓存, 再调用ob_ ...

  8. 《DSP using MATLAB》示例Example 8.12

    %% ------------------------------------------------------------------------ %% Output Info about thi ...

  9. HTML5的28个常用特性

    1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<figure>和<figcapt ...

  10. spring事务的配置

    前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ...