2011-04-15 86 views
4

我正在設計使用freemarker的報表,我遇到了一個問題,我需要PDF格式的處理輸出。將Freemarker轉換爲PDF

我想要做的是將HTML + CSS fremarker模板傳遞給freemarker引擎,並將處理後的HTML作爲PDF輸出。目前的問題我已經是如何在處理freemarker的轉換爲PDF

try { 
     Configuration cfg = new Configuration(); 
     Template tpl = cfg.getTemplate("example.ftl"); 
     OutputStreamWriter output = new OutputStreamWriter(System.out); 

     Map testHashMap = new HashMap(); 
     testHashMap.put("test", "testValue"); 

     tpl.process(testHashMap, output); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

雖然thje互聯網我無法找到關於這個主題的信息搜索,但我發現了關於iText的框架

try { 
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
    Document doc = builder.parse(new StringBufferInputStream(buf.toString())); 
    ITextRenderer renderer = new ITextRenderer(); 
    renderer.setDocument(doc, null); 
    renderer.layout(); 
    OutputStream os = response.getOutputStream(); 
    renderer.createPDF(os); 
    os.close(); 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 

現在的問題是如何將這兩個代碼段合併爲一個pdf?

所有幫助是非常讚賞

問候, MilindaD

回答

3

我認爲這將是更好地使用兩個不同的管道,把它們看作同一型號的兩種不同的意見。

數據 - > Freemarker的主變差動 - > HTML

數據 - > iText的變壓器 - > PDF

,或者你可以在HTML中使用XSLT和使用XSL-FO像Apache FOP,但矯枉過正,似乎我。