首页 > 编程语言 >java 生成 PDF 总结(1)

java 生成 PDF 总结(1)

时间:2022-12-04 12:33:43浏览次数:40  
标签:java freemarker 生成 html pdf PDF 模板

如何用java生成 PDF  文档,运行环境在linux上。自己在网上找了好多资料,总结下来做个分享。后面也会建立几个demo供大家参考。主要分为以下几个部分:

1.  概述

2.  itext

3. itext+ freemarker

4.  总结

1. 概述

生成方式一般有三种方式,一种直接生成,一种通过模板生成,一种通过word转为pdf。第一种方式格式需要自己去写,比较麻烦;第二种方式通过html转为pdf,格式不能完全满足; 第三种方式目前尚未有免费的可靠的在linux上的解决方法。

序号

方式

方案

优势

缺点

备注

1

直接生成

itextPdf

iText有很强大的PDF处理能力,可基于制作的pdf模板生成,但是制作过程比较麻烦

样式和排版不好控制,直接写PDF文档,数据的动态渲染很麻烦

 
2

 

模板生成

Itext+ freemarker

解析html或ftl输出pdf

需要编写freemarker 模板,html

 

3

Itext+Flying sauser+ freemaker

解析html,输出pdf

需要编写freemarker 模板,html

 
4

Word转pdf

Poi (doc 转 pdf)

简单

格式有时会混乱

 
5

收费包(spire.doc、aspose-words)

效果不错

收费

 
6

jacob

完美保持原doc格式

Windows平台

 
7

openOffice

 

需要安装服务,有时也会有格式错误

 
8

docx4j/documents4j

 

Windows平台

 

接下来几个章节,我会针对itextPdf、Itext+ freemarker进行介绍,并提供demo。

标签:java,freemarker,生成,html,pdf,PDF,模板
From: https://www.cnblogs.com/hungryquiter/p/16949642.html

相关文章

  • 浅谈Java
    这里必须说明,我着实是厌恶Java这门语言的。只是很不凑巧,这世界的确需要一门虚拟机编程语言。我想,如果服务端程序用C/C++来写的话,我想,一旦服务器被恶意攻击,当操作系统崩溃的......
  • 【博学谷学习记录】超强总结,用心分享|Java基础分享-进程间通信方式
    目录1.管道2.消息队列3.共享内存4.信号量5.信号6.Socket 1.管道如果你学过Linux命令,那你肯定很熟悉「|」这个竖线。$ ps auxf | grep mysql上面命令行......
  • Java9-17新特性一览,了解少于3个你可能脱节了
    前言Java8出来这么多年后,已经成为企业最成熟稳定的版本,相信绝大部分公司用的还是这个版本,但是一眨眼今年Java19都出来了,相信很多Java工程师忙于学习工作对新特性没什么了......
  • java 生成word/docx 总结(1)
    最近有个任务,需要用java生成WORD文档,运行环境在linux上。于是,自己在网上找了好多资料,总结下来做个分享。后面也会对常用的几个建立几个demo供大家参考。主要分为以下几个......
  • 如何将java对象转换成json数据
    packagecn.hopetesting.com.test;importcn.hopetesting.com.domain.User;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.da......
  • Java运算符
    +-*/%publicclassTestDemo1{publicstaticvoidmain(String[]args){System.out.println(5/2);System.out.println((double)(5/2));System.out.println(5.......
  • 4:File-Java API 实战
    (目录)1.引言文件要区别绝对路径和相对路径,在Win系统中的文件路径和Linux/nuix系统中的路径是不一样的2.绝对路径和相对路径?先学送快递吧!分清文件、文件夹、文件路......
  • 配置java环境变量
    一、配置JAVA_HOME桌面找到此电脑,单击鼠标右键,选择属性,找到高级系统设置,上方选择高级,再点击环境变量,在系统变量中选择新建,变量名填JAVA_HOME,变量值填JDK安装路径(......
  • Java面向对象
    面向对象与面向过程面向过程思想步骤清晰简单,第一步做什么,第二步做什么...面向过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问......
  • Java:SpringBoot统一异常处理和404异常
    原理@ControllerAdvice+@ExceptionHandler统一处理应用级别的异常自定义ErrorController处理容器级别的异常,例如:404异常统一返回格式packagecom.github.mouday.c......