简体   繁体   中英

JSP Servlet response pdf to Jquery

I have a jsp page with a button, that link on a servlet and this create a pdf file an stream that as respons.

protected void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    path = request.getServletContext().getRealPath("/");
    String pdfFileName = "foo.pdf";
    String contextPath = getServletContext().getRealPath(File.separator);
    File pdfFile = new File(path + pdfFileName);

    response.setContentType("application/pdf");
    response.addHeader("Content-Disposition", "attachment; filename=" + pdfFileName);
    response.setContentLength((int) pdfFile.length());

    FileInputStream fileInputStream = new FileInputStream(pdfFile);
    OutputStream responseOutputStream = response.getOutputStream();
    int bytes;
    while ((bytes = fileInputStream.read()) != -1) {
        responseOutputStream.write(bytes);
    }


}

the jquery is

$(document).ready(function() {
    $(".getpdfbutton").click(function(){
        var currentRow=$(this).closest("tr");
        var col1=currentRow.find("td:eq(0)").html();
        var data3=col1;  
        alert(data3);   
        $.get("PDFerzeugen",{Spass:data3}, function(data) {
            /* window.location = data; */
            alert(data);
        }); 
    });

I get the data respons as base64 , how can i download it as pdf file ?

i solved it over this script

    function SaveToDisk(fileURL, fileName) {
    // for non-IE
    if (!window.ActiveXObject) {
        var save = document.createElement('a');
        save.href = fileURL;
        save.target = '_blank';
        save.download = fileName || 'unknown';

        var evt = new MouseEvent('click', {
            'view': window,
            'bubbles': true,
            'cancelable': false
        });
        save.dispatchEvent(evt);

        (window.URL || window.webkitURL).revokeObjectURL(save.href);
    }

    // for IE < 11
    else if ( !! window.ActiveXObject && document.execCommand)     {
        var _window = window.open(fileURL, '_blank');
        _window.document.close();
        _window.document.execCommand('SaveAs', true, fileName || fileURL)
        _window.close();
    }
};

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM