html到pdf使用itext xmlworker

时间:2013-09-19 09:23:04

标签: pdf xml-parsing itext html-to-pdf

   Document document = new Document(PageSize.A4, ml, mr, mt, mb);
   PdfWriter writer=PdfWriter.getInstance(document, response.getOutputStream());
   String sc_na=request.getParameter("school_name");
   String name=sc_na;
   writer.setPageEvent(new HeaderAndFooter(name));
   document.open();
   XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
   //HTMLWorker htmlWorker = new HTMLWorker(document);
   Class.forName("com.mysql.jdbc.Driver");
   Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/elect", "root", "root");
   Statement st=con.createStatement();
   ResultSet rs=st.executeQuery("Select * from test3");
   List arrlist = new ArrayList();
   while(rs.next()){
   String xa =rs.getString("display");
   if(xa.equals("1")){
    arrlist.add(rs.getString("question_text"));
   }
 }
 Collections.shuffle(arrlist); 
for(int i=0;i<nb;i++){
    String str = (String) arrlist.get(i);
     worker.parseXHtml(writer, document, new StringReader("<br>"));
     worker.parseXHtml(writer, document, new StringReader(str));

}
document.close();

这是我的代码片段。使用我将所有数据都放在一个列中。我该怎么办才能进入多列。我猜是使用PDFptable但是如何在这里应用它。请帮忙。

1 个答案:

答案 0 :(得分:0)

对于Html到PDF,请使用Flying Saucer:http://code.google.com/p/flying-saucer/

它使用iText 2.0.8并且它尊重CSS。代码如下:

 org.w3c.dom.Document doc = . . .
 ITextRenderer renderer = new ITextRenderer();
 renderer.setDocument(doc, null);

 renderer.layout();
 renderer.createPDF(out);

确保您的XHTML链接到可访问的CSS,例如

 <link rel="stylesheet" type="text/css" href="file://. . ./pdf.css" media="print"/>