尝试将PDF流显示到网页以进行打印

时间:2015-10-27 20:13:15

标签: jquery asp.net-mvc-3 stream

我正在尝试使用包含HTML或PDF(我选择)的内存流。

我遇到的问题是我无法将此内容呈现给我的页面。内容将显示在页面上,但它在屏幕上显示为乱码。如果我采用相同的流并将其保存到文件并打开它,它会正确显示。

从服务器返回时,我是否错误地设置错误了?

在我的网页上我有:

java -version

HTML看起来像这样:

function getData()
{
        $.ajax({
            type: 'GET',
            url: '/Main/MyController/GetPrintData',
            data: {
                reportID: 1,
                format: 'pct',
                cumeReach: 'abc',
                showAddl: 'true',
                precision: 'false'
            },
            contentType: 'application/pdf' //'text/html'
        }).success(function (result) {
            $('#reportData').append(result);
        }).error(function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
        });
};

2 个答案:

答案 0 :(得分:0)

注意.success(),jQuery中不推荐使用.error();可以将.done().fail()替换为.success().error()

尝试

HTML

<embed width="100%" height="100%" name="plugin" id="result" />

JS

$("#result")[0].src = URL.createObjectURL(new Blob([result], {"type":"application/pdf"}));

答案 1 :(得分:0)

看来我的原始解决方案是正确的。 在检查代码后,我发现了内存流创建方式的问题。

我正在使用Aspose来创建流。 我以前有过     return book.SaveToStream(); 我换了它     流finalStream = new MemoryStream();     book.Save(finalStream,saveOptions);     return finalStream;

一旦我做了这个改变,显示器就有效了!