使用iReport和JSP强制下载PDF

时间:2018-07-10 06:32:04

标签: java jsp jasper-reports

请帮助,我想强制从JSP下载pdf文件(从ireport生成),但是pdf文件为空白文档。

这是我的出处:

OSStatus recordingCallback(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimestamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData) {
AudioProcessor *audioProcessor = (__bridge AudioProcessor *)inRefCon;
AudioBufferList bufferList;
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0].mData = NULL;
OSStatus status = AudioUnitRender(audioProcessor.audioUnit, ioActionFlags, inTimestamp, inBusNumber, inNumberFrames, &bufferList);
if (status != noErr) {
    return status;
}
SpeexEchoState *echo_state = speex_echo_state_init(bufferList.mBuffers[0].mDataByteSize, 882);
SpeexPreprocessState *den = speex_preprocess_state_init(bufferList.mBuffers[0].mDataByteSize, 44100);
short *ref_buf = (short*)bufferList.mBuffers[0].mData;
short *echo_buf = (short*)malloc(bufferList.mBuffers[0].mDataByteSize);
short *endbuf = (short*)malloc(bufferList.mBuffers[0].mDataByteSize);
speex_echo_cancellation(echo_state,
                        (spx_int16_t*)ref_buf,
                        (spx_int16_t*)echo_buf,
                        (spx_int16_t*)endbuf);
speex_preprocess_run(den, (spx_int16_t*)endbuf);
[audioProcessor.delegate processAudioData:endbuf dataSize:bufferList.mBuffers[0].mDataByteSize];
free(ref_buf);
free(echo_buf);
free(endbuf);

return noErr;

当我编写这样的代码时,

<%@page import="java.io.FileOutputStream"%>
<%@page import="net.sf.jasperreports.engine.JRExporterParameter"%>
<%@page import="net.sf.jasperreports.engine.JRExporter"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="com.sun.xml.internal.ws.message.ByteArrayAttachment"%>
<%@page import="net.sf.jasperreports.engine.export.JRPdfExporter"%>
<%@page import="net.sf.jasperreports.engine.JasperExportManager"%>
<%@page import="java.util.HashMap"%>
<%@page import="net.sf.jasperreports.engine.JasperFillManager"%>
<%@page import="net.sf.jasperreports.engine.JasperReport"%>
<%@page import="net.sf.jasperreports.engine.JasperPrint"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Pagess</title>
    </head>
    <body>
        <%response.setHeader("Content-Transfer-Encoding", "binary");
         response.setHeader("Content-Disposition", "attachment; filename='Report.pdf'"); %>
        <% Class.forName("com.mysql.jdbc.Driver"); %>
        <% Connection con = DriverManager.getConnection("jdbc:mysql://localhost/db_penjualan", "root", ""); %>
        <% HashMap map = new HashMap();
            map.put("KodeKonsumen", "k001");
        JasperPrint print = JasperFillManager.fillReport(application.getRealPath("LaporanDataKonsumen.jasper"), map, con);
JasperExportManager.exportReportToPdf(print);          %>
    </body>
</html>

PDF文件仅显示在浏览器中,未下载 enter image description here 我想强制下载pdf文件,请帮忙。预先感谢

0 个答案:

没有答案