java实现html转pdf,支持中文,css以及中文换行
2015-12-30 14:40
1616 查看
项目需使用到html转pdf功能,在网上搜了很多,综合了不少大神的方法,现在这里做一个标记,以免自己以后忘记了。
java代码
html代码需要严格规范,所有标签都要有对应的/>进行关闭
记得用html包围,
开始的时候没有用这个,导致了一个麻烦的问题,还查了好久才发现。
为了支持中文,不仅要在java代码中引入字体文件,还需要在html中引用
body {
font-family: SimSun;
}
原先的core-renderer.jar不支持中文换行功能,有人修改了源码
中文换行包
所用的其他几个jar包分别为:
iText-2.0.8.jar
iTextAsian.jar
iTextAsianCmaps.jar
java代码
import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import org.xhtmlrenderer.pdf.ITextFontResolver; import org.xhtmlrenderer.pdf.ITextRenderer; import com.lowagie.text.pdf.BaseFont; public class IText { public static void main(String[] args)throws Exception { String inputFile = "E:/workspace/PDF/WebContent/WEB-INF/signfileInfo.html"; String outputFile = "E:/workspace/PDF/WebContent/WEB-INF/signfileInfo.pdf"; OutputStream os = new FileOutputStream(outputFile); ITextRenderer renderer = new ITextRenderer(); String url = new File(inputFile).toURI().toURL().toString(); renderer.setDocument(url); // 解决中文支持问题 ITextFontResolver fontResolver = renderer.getFontResolver(); fontResolver.addFont("C:/Windows/Fonts/SIMSUN.TTC", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //解决图片的相对路径问题 renderer.getSharedContext().setBaseURL("file:///E:/workspace/PDF/WebContent/WEB-INF/"); renderer.layout(); renderer.createPDF(os); os.flush(); os.close(); System.out.println("转换完成!"); } }
html代码需要严格规范,所有标签都要有对应的/>进行关闭
记得用html包围,
开始的时候没有用这个,导致了一个麻烦的问题,还查了好久才发现。
为了支持中文,不仅要在java代码中引入字体文件,还需要在html中引用
body {
font-family: SimSun;
}
原先的core-renderer.jar不支持中文换行功能,有人修改了源码
中文换行包
所用的其他几个jar包分别为:
iText-2.0.8.jar
iTextAsian.jar
iTextAsianCmaps.jar
相关文章推荐
- [CSS3 Practice] Slides Effect With Pure CSS3
- CSS 笔记五(Combinators/Pseudo-classes/Pseudo-elements)
- CSS让DIV按照背景图片的比例缩放,并让背景图片填充整个DIV
- CSS id区分class
- CSS2.1SPEC:视觉格式化模型之width属性详解(下)
- css3的calc()实现自适应布局
- 纯CSS3多列的瀑布流布局演示
- CSS 引入的4种方式
- HTML+CSS
- [CSS3] Animation
- 相关css 细节处理 neat.css
- CSS基础——添加样式
- 为 TextView 的部分文字设置超链接样式并监听点击事件
- CSS盒子,line-height,padding,margin,background,border
- CSS强制性换行
- Java压缩JS、CSS并合并,网上收集汇总
- css中各种居中总结
- 链接太长自动换行
- CSS如何设置div半透明效果
- CSS3那些不为人知的高级属性