如何在网上下载pdf

2024-09-30 04:26:40 发布

您现在位置:Python中文网/ 问答频道 /正文

重要提示:我使用python。你知道吗

我使用reportlab在服务器(flask)上创建一个pdf,然后通过method str = canvas.getpdfdata()得到一个字符串。我可以使用f = open('result.pdf', 'wb')f.write(str)将其保存为pdf。你知道吗

现在我想在web上下载这个pdf,但我不想在服务器上创建pdf文件,所以我将字符串发送到web,并希望使用js来创建文件并下载它。你知道吗

我试着像这样使用js代码:(saveAs函数在FileSaver.js中,可以在github上找到)

var blob = new Blob([{{ str }}], {type: "application/pdf"});
saveAs(blob, "result.pdf");

它抛出错误Uncaught SyntaxError: Unexpected identifier,我尝试将字符串编码更改为十六进制和base64,但没有帮助。你知道吗

你能帮我吗?或者你能告诉我一种不在服务器上创建文件的方式来创建和下载这个pdf吗?你知道吗


Tags: 文件字符串服务器webflaskpdfjsresult
1条回答
网友
1楼 · 发布于 2024-09-30 04:26:40

正如在thisSO问题的答案中所读到的,您需要首先将二进制数据转换为ByteArray:

var byteArray = new Uint8Array(hexdata.length/2);
for (var x = 0; x < byteArray.length; x++){
    byteArray[x] = parseInt(hexdata.substr(x*2,2), 16);
}
var blob = new Blob([byteArray], {type: "application/octet-stream"});

例如:http://jsfiddle.net/mowglisanu/15h9o3d5/

this问题是问的和你完全一样的问题。你知道吗

相关问题 更多 >

    热门问题