0

PDF を生成し、[名前を付けて保存] ダイアログを表示してファイルパスを選択するメソッドの実装に問題があります。私のコードの何が問題なのですか?

public void generatePDF(ActionEvent ev) throws Exception{

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    Document document = new Document();
    PdfWriter.getInstance(document, baos);

    document.open();
    ...
    document.close();

    // Prepare.
    byte[] pdfData = baos.toByteArray();
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ExternalContext externalContext = facesContext.getExternalContext();
    HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();

    // Initialize response.
    response.reset(); 
    response.setContentType("application/pdf"); 
    response.setHeader("Content-disposition","attachment;filename=\"ResumenEjecutivo.pdf\"");

    // Write file to response.
    OutputStream output = response.getOutputStream();
    output.write(pdfData);
    output.close();

    // Inform JSF to not take the response in hands.
    facesContext.responseComplete();
}
4

1 に答える 1