【问题标题】:how to download file save as Pdf in Jsp如何在Jsp中下载文件另存为Pdf
【发布时间】:2013-07-23 14:55:13
【问题描述】:
<a class="savetopdf" href="#" onclick='

<%
    try {
        String w = result;// "<html><body> This is my Project </body></html>";
        OutputStream file = new FileOutputStream(new File("E:\\newfile.pdf"));
        Document document = new Document();
        PdfWriter.getInstance(document, file);
        document.open();
        @SuppressWarnings("deprecation")
        HTMLWorker htmlWorker = new HTMLWorker(document);
        htmlWorker.parse(new StringReader(w));
        document.close();
        file.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
%>
>Save as PDF</a>

这是我保存为 Pdf 的代码,目前它保存到给定目录但我想要一旦我点击但另存为 PDf 然后它应该下载 pdf 格式的文件。

【问题讨论】:

标签: java jsp


【解决方案1】:

你不能在 onclick 中编写 scriptlet,你应该创建一个新的 servlet 来下载文件并在你的锚标签中给出它的链接。

public class ServletDownloadDemo extends HttpServlet{

  private static final int BYTES_DOWNLOAD = 1024;

  public void doGet(HttpServletRequest request, 
   HttpServletResponse response) throws IOException{
    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition",
                     "attachment;filename=downloadname.pdf");
    ServletContext ctx = getServletContext();
    InputStream is = ctx.getResourceAsStream("Pdf file to download");

    int read=0;
    byte[] bytes = new byte[BYTES_DOWNLOAD];
    OutputStream os = response.getOutputStream();

    while((read = is.read(bytes))!= -1){
        os.write(bytes, 0, read);
    }
    os.flush();
    os.close(); 
   }
}

【讨论】:

  • 请根据我的 Jsp 代码设置,因为请不要使用 servlet
  • @AmanKumar:您可以简单地在 scriplet 中编写一个带有下载文件代码的新 jsp,并在您的锚标记中提供此 jsp 的路径。
【解决方案2】:

onClick 属性是纯 Javascript,当用户点击它时在浏览器上执行。您想要第二个 JSP 或普通 servlet,它只是写入 HTTPServletResponse.getOutputStream()。然后将其位置放在a 元素的href 属性中。

【讨论】:

    猜你喜欢
    • 2016-12-28
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2021-04-15
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多