在我的 React 项目中使用 Rest API(send to file) 导出为 PDF 得到空白 PDF
Export to PDF by using Rest API(send to file) in my react project is getting blank PDF
API 返回的 PDF 数据样本看起来像 -
下面是我用来下载 PDF 的 JavaScript 代码,我尝试了很多解决方案,但其中 none 个有效。
const reportPdfDoc = await axiosBIInstance.get(
`https://api.powerbi.com/v1.0/myorg/reports/${config.reportId}/exports/${exportID?.data?.id}/file`,
{
headers: {
Authorization: 'Bearer ' + accessToken,
responseType: 'arraybuffer',// I've used blob as well, but same result
},
},
);
if (reportPdfDoc?.status === 200) {
const blob = new Blob([reportPdfDoc.data], {
type: 'application/pdf',
});
const computedFileName = `${exportStatus?.data?.reportName}.pdf`;
const a = document.createElement('a');
a.href = window.URL.createObjectURL(blob);
a.download = computedFileName;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
我尝试了上面发布的解决方案并且它有效 me.I 我在下面重新发布它。
我得到了问题,responseType 属性 应该在 axios 调用中的 header 之外。喜欢 -
const reportPdfDoc = await axiosBIInstance.get( https://api.powerbi.com/v1.0/myorg/reports/${config.reportId}/exports/${exportID?.data?.id}/file, { headers: { Authorization: 'Bearer ' + accessToken, }, responseType: 'blob', }, );
API 返回的 PDF 数据样本看起来像 -
下面是我用来下载 PDF 的 JavaScript 代码,我尝试了很多解决方案,但其中 none 个有效。
const reportPdfDoc = await axiosBIInstance.get( `https://api.powerbi.com/v1.0/myorg/reports/${config.reportId}/exports/${exportID?.data?.id}/file`, { headers: { Authorization: 'Bearer ' + accessToken, responseType: 'arraybuffer',// I've used blob as well, but same result }, }, ); if (reportPdfDoc?.status === 200) { const blob = new Blob([reportPdfDoc.data], { type: 'application/pdf', }); const computedFileName = `${exportStatus?.data?.reportName}.pdf`; const a = document.createElement('a'); a.href = window.URL.createObjectURL(blob); a.download = computedFileName; document.body.appendChild(a); a.click(); document.body.removeChild(a);
我尝试了上面发布的解决方案并且它有效 me.I 我在下面重新发布它。
我得到了问题,responseType 属性 应该在 axios 调用中的 header 之外。喜欢 -
const reportPdfDoc = await axiosBIInstance.get( https://api.powerbi.com/v1.0/myorg/reports/${config.reportId}/exports/${exportID?.data?.id}/file, { headers: { Authorization: 'Bearer ' + accessToken, }, responseType: 'blob', }, );