gpt4 book ai didi

javascript - 在新窗口中显示 pdf 流

转载 作者:IT老高 更新时间:2023-10-28 13:57:48 25 4
gpt4 key购买 nike

我正在服务器中生成一个 PDF 文档,然后我想在客户端中显示该文档。服务器端如下所示:

ByteArrayOutputStream baos = generatePDF();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=file.pdf");
response.setContentLength(baos.size());
baos.writeTo(response.getOutputStream());

在客户端,我有以下代码来检索 PDF:

$.ajax({
type: "POST",
url: url,
data: {"data": JSON.stringify(myData)},
success: function(data, textStatus, jqXHR) {
window.open("data:application/pdf," + escape(data));
},
error: function(jqXHR) {
showError("...");
}
});

看起来不错,打开了新窗口,但没有显示 PDF。它总是显示为一个空文档。

不过,如果客户端如下所示,它可以正常工作:

var form = $("<form target='_blank'>").attr({
action : myURL,
method : "POST"
});
var input1 = $("<input type='hidden'>").attr({
"name": "data",
value: JSON.stringify(myData)
});

form.append(input1);
$("body").append(form);
form.submit();
form.remove();

但是我不能使用第二种方式,因为我需要管理错误,而且我不能使用 form.submit() 来做到这一点。

您知道 PDF 发生了什么吗?

最佳答案

您可以获取 pdf 流的 base64 字符串并将其传递给响应。

你的方法改变了

$.ajax({
type: "POST",
url: url,
data: {"data": JSON.stringify(myData)},
success: function(data, textStatus, jqXHR) {
var pdfWin= window.open("data:application/pdf;base64, " + data, '', 'height=650,width=840');
// some actions with this win, example print...
},
error: function(jqXHR) {
showError("...");
}
});

关于javascript - 在新窗口中显示 pdf 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20401006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com