1 我想把一个动态填进去的数据生成的网页可以生成一个pdf格式以用来保存 
2 可是听说好像只有html才能用itext生成pdf 于是我将生成的jsp转换成html结果再转换成pdf的时候总是有些问题 
3 提供itext简单例子的就不必给我回帖了,希望哪位大虾能有更好的解决方案 最好能给出代码或者发到我邮箱里也好啊 
[email protected] 
4 最好还是能解决网页的中文问题,我的初步想法是先转成html再转成pdf 如果有更好的方案希望能分享一下 
5 希望哪位大侠有好的建议可以给我发邮件或者沟通一下 对于在java中能把网页原貌生成pdf的解决方法必将非常感谢

解决方案 »

  1.   

    使用这个 
    flying sauser,项目主页是:https://xhtmlrenderer.dev.java.net/ 
    对汉字,css有很好的支持 参考: 
    /* 
    * ITextRendererTest.java * 
    * Copyright 2009 Shanghai TuDou.  
    * All rights reserved. 
    */ package itext; 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 = "conf/template/test.html"; 
            String url = new File(inputFile).toURI().toURL().toString(); 
            String outputFile = "firstdoc.pdf"; 
            OutputStream os = new FileOutputStream(outputFile); 
            ITextRenderer renderer = new ITextRenderer(); 
            renderer.setDocument(url);         // 解决中文支持问题 
            ITextFontResolver fontResolver = renderer.getFontResolver(); 
            fontResolver.addFont("C:/Windows/Fonts/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);         // 解决图片的相对路径问题 
            renderer.getSharedContext().setBaseURL("file:/D:/Work/Demo2do/Yoda/branch/Yoda%20-%20All/conf/template/"); 
            
            renderer.layout(); 
            renderer.createPDF(os); 
            
            os.close(); 

      

  2.   

    这个我用过啊 可是出来的结果是把css源码都打了出来 还有就是中文在那里边不换行 css也不跟着变了 
    谁还有更完整的例子
      

  3.   

    你的test.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>  
    <table border="1">
    <tr><td>显示中文  </td><td>显示中文  </td></tr>
    <tr><td>显示中文  </td></tr>
    </table>test 
    </body>  
    </html>