`
lichen0921
  • 浏览: 79228 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

网页生成PDF

    博客分类:
  • Java
阅读更多
由于是高手所写,难免简略一下,所以自己写一个简单好理解的.
 
需要的jar包: core-renderer.jar 和 iText-2.0.8.jar
一个html页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">     
<html xmlns="http://www.w3.org/1999/xhtml">     
<head>     
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />     
<title>test</title>     
<style type="text/css">         
body {     
        font-family: SimSun;        
        font-size:22px;     
        font-style:italic;     
        font-weight:bold;     
        color:#00F;     
}     
</style></head>     
     
<body>     
显示中文dsklahsdal;das哈哈哈哈<br /> 
上多哈考虑的哈     
</body>     
</html>  
   
 
生成PDF
package com.test; 

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; 

/**     
* TODO class description *     
*    
* @author pcwang    
*    
* @version 1.0, 上午11:03:26    create $Id$    
*/     
public class ITextRendererTest {     
        public static void main(String[] args) throws Exception {     
                String inputFile = "WebRoot/a.html";     
                String url = new File(inputFile).toURI().toURL().toString();     
                String outputFile = "WebRoot/a.pdf";     
                System.out.println(url); 
                OutputStream os = new FileOutputStream(outputFile);     
                ITextRenderer renderer = new ITextRenderer();     
                renderer.setDocument(url);     
     
                // 解决中文支持问题     
                ITextFontResolver fontResolver = renderer.getFontResolver();     
                fontResolver.addFont("C:/Windows/Fonts/SIMSUN.TTC", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);     
     
                // 解决图片的相对路径问题     
//                renderer.getSharedContext().setBaseURL("file:/D:/z/temp/");     
                     
                renderer.layout();     
                renderer.createPDF(os);     
                     
                os.close();     
        }     
}   
  
分享到:
评论
10 楼 wufei1310 2013-01-18  
hantaozu 写道
renderer.setDocument(url);
我的到这里报错
不知道什么原因~~~
很费解~~~~~~·
希望能给解释哈~~~

9 楼 钢镚cuicheng 2012-11-17  
生出的PDF不能打开
8 楼 钢镚cuicheng 2012-11-17  
希望你能看到
7 楼 钢镚cuicheng 2012-11-17  
我想问一下,大哥按照你的代码,生成的pdf,不能读呀

报错
错误:“Content is not allowed in prolog.”
Exception in thread "main" org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TRaX transformer). org.xml.sax.SAXParseException: Content is not allowed in prolog.
6 楼 feiyan35488 2012-03-28  
卡菲牛奶 写道
Linux下面中文支持吗?

当然支持了,
5 楼 卡菲牛奶 2012-03-27  
Linux下面中文支持吗?
4 楼 yindashan 2011-09-22  
谢了,正愁这方面呢!
3 楼 hantaozu 2011-06-24  
renderer.setDocument(url);
我的到这里报错
不知道什么原因~~~
很费解~~~~~~·
希望能给解释哈~~~
2 楼 feiyan35488 2011-04-19  
简单的html我也运行过了,就是复杂的html,总是显示中文。 莫非是字体的原因?
1 楼 antjava 2011-02-15  
在官网上,这个jar包迟迟没有找到。

相关推荐

Global site tag (gtag.js) - Google Analytics