大家好我正在使用QuickBooks在线试用版。 我在生成发票PDF时遇到问题。
我正在尝试将其API的响应转换为Base64并将其存储在Buffer中。
并从他们的网站下载发票的pdf并获得响应并将其存储到缓冲区中,但两个缓冲区值都不同。
这是我的代码: -
router.get('/pdf',async function (req, res) {
var pdf = await qbfun.getPdf();
res.contentType("application/pdf");
var base64data = new Buffer(pdf, 'binary').toString('base64');
var apidata = new Buffer(base64data, 'base64');
var filePath = "/invoice212.pdf";
console.log('__dirname', __dirname)
fs.readFile(__dirname + filePath , function (err,data){
console.log("==============================")
console.log("From api",apidata)
console.log("==============================")
console.log("==============================")
console.log("From File",data)
console.log("==============================")
res.send(apidata);
});
})
exports.getPdf = async function() {
var id = '212'
var url = config.api_uri + "123145873158439" + "/invoice/" + id +
"/pdf"
console.log('Making API call to: ' + url)
var requestObj = {
url: url,
headers: {
'Authorization': 'Bearer ' + token,
'Content-Type' : 'application/pdf'
}
}
// Make API call
var result = await make_api_call (requestObj)
var data = result.body
return data;
}
结果将如下: - Here you can see buffer values