Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lemonzone2010/doc-render

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

23 Commits

Repository files navigation

项目背景

项目主页:

公司需要生成PDF,会有一个固定样式格式,然后添加动态数据。于是就有了一个想法:编写模板->填充数据->生成pdf。

基于这个需求和想法调研了下,了解到FreeMarker、IText 和 flying saucer工具。

技术简介

IText

iText是一个生成PDF文档的开源java库,能够动态从XML或者数据库生成PDF,同时它具备PDF文档的绝大多数属性(比如加密......),支持java,C#等。官网:http://www.itextpdf.com/

Flying Saucer

Flying Saucer(或者叫xhtmlrender project on java.net)是一个基于iText的开源java库,能够轻松的将html(带css2.1)生成pdf。 网站:https://github.com/flyingsaucerproject/flyingsaucer

FreeMarker

FreeMarker是一个模版引擎,一个基于文本的模板输出工具(生成任意的HTML表单代码)。官网:http://freemarker.org/

主要功能

  1. 支持中文

    a.目录doc-render/src/test/resources/config/fonts中自带字体ARIALUNI.TTF

    b.window系统字体路径:C:/Windows/Fonts/ARIALUNI.TTF

    c.html模板文档css字体设置: font-family: Arial Unicode MS;

  2. 能够加载图片,设置的默认图片路径 classpath:config/images/

  3. 运行Junit测试类 TestPdfGenerator.testGenerate() 即可生成pdf,pdf生成路径见日志(doc-render/tmp/).

  4. 由于生成pdf需要加载中文字体文件(一般字体文件>10M),本例中增加了资源池(最大资源数15),相关详细见ITextRendererObjectFactory.getObjectPool();经过简单测试能够支持:150个用户迭代10次

  5. 模板html:点击查看

  6. pdf生成文件点击查看,预览如下图:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /