我正在尝试获取来自API的PDF流返回,并将其解析为base64以嵌入客户端,API请求的正文返回类似于以下内容:
%PDF-1.5
%����
4 0 obj
<<
/Type/XObjcect
/Subtype/Image
/Width 799
/Height 70
/ColorSpace/DeviceGray
/BitsPerComponent 8
/Filter/FlateDecode
/Length 5181
>>
stream
x���=H#�������A�&�)���B���4iba�&O8H
.
.
.
(The rest was omitted)
我正在尝试以这种方式解析成base64:
console.log(typeof body); // STRING
const encoded = new Buffer.from(body).toString('base64'); //PDF NOT WORKING
但是,当我将此Base64嵌入HTML时,它会显示文件无法打开,尝试将其保存为PDF文件也是同样的结果。
而当我尝试对同一个PDF进行Base64解析,但这次从下载的PDF开始时,在HTML中嵌入的Base64代码可以正常工作。
fs.readFile('/home/user/downloaded.pdf', function (err, data) {
if (err) throw err;
console.log(typeof data); //OBJECT
const pdf = data.toString('base64'); //PDF WORKS
});
我正在使用 const request = require('request');
发送请求。
body
的类型应该是Buffer
而不是字符串,请展示您发起请求的代码。字符串不能包含二进制数据。 - h0x91B