【问题标题】:How to download pdf just after creating it in java如何在java中创建pdf后立即下载它
【发布时间】:2019-09-23 18:55:18
【问题描述】:

我正在使用 java 并从数据库创建一个 pdf 文件。 现在我想让它自动为用户下载。 当用户点击该 servlet 页面时。 这是我的一些代码...

            /* Define the SQL query */
            ResultSet rs=st.executeQuery("select Id,Name from student");
            Document my_pdf_report = new Document();
            my_pdf_report.open();            
            //we have four columns in our table
            PdfPTable my_report_table = new PdfPTable(2);
            //create a cell object
            PdfPCell table_cell;
            while (rs.next()) {                
                            String id = rs.getString("Id");
                            table_cell=new PdfPCell(new Phrase(id));
                            my_report_table.addCell(table_cell);
                            String name=rs.getString("Name");
                            table_cell=new PdfPCell(new Phrase(name));
                            }
            /* Attach report table to PDF */
            my_pdf_report.add(my_report_table);  
            Document pdf =new Document();
            pdf=my_pdf_report;
            my_pdf_report.close();
            /* Close all DB related objects */
            rs.close();
            st.close(); 
            connected.close();

【问题讨论】:

    标签: java file servlets document


    【解决方案1】:

    这是您需要放入 servlet 方法以使文件可下载的示例代码。

       resp.setContentType("text/plain");
                resp.setHeader("Content-disposition", "attachment; filename=sample.txt"); //use your file name to be displayed when downloaded
    
                try(InputStream in = req.getServletContext().getResourceAsStream("/WEB-INF/sample.txt"); // location of file 
                  OutputStream out = resp.getOutputStream()) {
    
                    byte[] buffer = new byte[ARBITARY_SIZE];
    
                    int numBytesRead;
                    while ((numBytesRead = in.read(buffer)) > 0) {
                        out.write(buffer, 0, numBytesRead);
                    }
                }
    

    【讨论】:

    • 如果这对你有用..你可以接受这个作为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 2015-07-08
    • 2017-05-09
    • 2019-01-07
    • 2018-10-02
    • 1970-01-01
    相关资源
    最近更新 更多