2012-09-05 61 views
0

我有一些值要導出爲PDF,我如何在struts中執行此操作?在struts 1.x中導出爲pdf

我想做以下事情,當用戶點擊按鈕或鏈接時,有選項按鈕或鏈接,而不是用戶應該得到下載選項來下載導出的PDF文件。

我有一個需要導出爲PDF的結果集。

請幫助我如何去。

問候

+1

Struts不會導出爲PDF。如果你想實現它,你應該使用[iText](http://itextpdf.com/)或其他PDF庫。 –

回答

1

下面是一個例子,可以幫助你做你想要什麼:

import java.io.*; 
import java.sql.*; 
import com.lowagie.text.*; 
import com.lowagie.text.pdf.*; 

public class CreatePDF{ 
    public static void main(String arg[])throws Exception{ 
     Document document = new Document(); 
     PdfWriter.getInstance(document, new FileOutputStream("C:/data.pdf")); 

     document.open(); 

     PdfPTable table = new PdfPTable(2); 
     table.addCell("Name"); 
     table.addCell("Address"); 

     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection(
             "jdbc:mysql://localhost:3306/test", 
             "root", "root"); 

     Statement st = con.createStatement(); 
     ResultSet rs = st.executeQuery("Select * from data"); 

     while(rs.next()) { 
      table.addCell(rs.getString("name")); 
      table.addCell(rs.getString("address")); 
     } 

     document.add(table); 
     document.close(); 
    } 
} 

但是實現它之前,你必須把itext.jar到您的WEB-INF/lib文件夾。 你也發現了很多方法來操縱你的pdf文件。

+0

直到這我也做了同樣的事情,但需要與struts應用程序集成,而不是創建文件到特定的位置,我想給用戶下載的選項。我認爲我們必須在哪裏設置「content-dispostion」,我不知道在哪裏以及如何去做。 –

2

看看這個動作類的例子,它可以幫助你。

 import javax.servlet.http.HttpServletRequest; 
     import javax.servlet.http.HttpServletResponse; 
     import org.apache.struts.action.ActionForm; 
     import org.apache.struts.action.ActionForward; 
     import org.apache.struts.action.ActionMapping; 
     import com.lowagie.text.pdf.*; 
     import com.lowagie.text.*; 
     import java.io.*; 

     public class download extends org.apache.struts.action.Action { 

     /* forward name="success" path="" */ 
     private static final String SUCCESS = "success"; 


     @Override 
     public ActionForward execute(ActionMapping mapping, ActionForm form, 
     HttpServletRequest request, HttpServletResponse response) 
     throws Exception { 
     Document document=new Document(); 
     System.out.println(clientIp); 
     response.setContentType("application/octet-stream"); 
     response.setHeader("Content-Disposition","attachment;filename=temp.pdf"); 
     try 
    { 
    OutputStream out = response.getOutputStream(); 
    PdfWriter.getInstance(document,out); 
      document.open(); 
      document.add(new Paragraph("Hello Pdf")); 
      document.close(); 

    } 
     finally 
     { 
      return mapping.findForward(SUCCESS); 
     } 
    } 

還根據它更新您的struts-config.xml。