gpt4 book ai didi

node.js - 如何将nodejs服务器发送的pdf数据转换为angularjs中的pdf

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:26 27 4
gpt4 key购买 nike

我正在尝试下载在nodejs服务器上生成的pdf文件。当我发送 pdf 文件的数据时,它会到达 angularjs 前端,但我尝试使用 blob 对象转换为 pdf,但 pdf 没有显示任何数据。

已经尝试过其他答案中提到的{responseType: 'arraybuffer'},但我的 pdf 仍然没有显示任何数据。

这里是 Nodejs 服务器,它将提供 pdf 数据:

var pdff = require('html-pdf');
pdff.create(html, options).toFile('./report.pdf', function(err) {
if (err) return console.log(err);
res.contentType("application/pdf");
res.download("./report.pdf");

});

在上面的代码中 - report.pdf 是在服务器上生成的,这完全没问题。

这是 angularjs 代码:

   app.controller("ExampleCtrl",['FileSaver', 'Blob','$http', function(FileSaver, Blob,$http) {
var vm = this;
vm.consolidate=function(){
$http.post('/mngmnt/consolidate_grv',{responseType: 'arraybuffer'}).then(function(response){
//console.log(response.data);
console.log(response);
//var byteArray = new Uint8Array(response.data);
var blob = new Blob([response.data], { type: 'application/pdf'});
console.log(blob);
var fileURL = URL.createObjectURL(blob);
//FileSaver.saveAs(blob, 'report.pdf');
window.open(fileURL)

});
}
}]);

一切正常,但生成的 pdf 未显示与服务器端显示的相同数据。

我希望生成与服务器端生成的相同的 pdf

最佳答案

app.controller("ExampleCtrl", function(FileSaver, Blob,$http) {
var vm = this;
vm.consolidate=function(){
$http.post('/mngmnt/consolidate_grv', {}, {responseType: 'blob'})
.then(function(response){
//console.log(response.data);
console.log(response);
//var byteArray = new Uint8Array(response.data);
var blob = response.data;
console.log(blob);
var fileURL = URL.createObjectURL(blob);
//FileSaver.saveAs(blob, 'report.pdf');
window.open(fileURL)
});
};
});

如果您坚持使用 POST 请求,则 $http.post 方法的第二个参数必须是请求正文的数据。选项对象必须是第三个参数。

关于node.js - 如何将nodejs服务器发送的pdf数据转换为angularjs中的pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55667442/

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