0
ボタンをクリックした後にpdfを作成してダウンロードする関数を作成しています。バックエンドとしてexpressを、フロントとしてreactux/readux/axiosを使用しています。APIからPDFファイルをダウンロード
私のバックエンドは私のフロントとは異なるポートで動作します。
私はAxiosでAPIを呼び出してから、pdfを作成してsendFileで応答します。
私の投稿要求を郵便番号でテストすると、すべてがうまくいきます。
私からそれを使用して、私はアプリが
が
router.post('/', function(req, res, next){
var data = req.body.data
options = {};
// init html string
var html = ejs.renderFile(__dirname + '/template/facture.ejs', {data: data}, options, function(err, str){
if(err){
return err;
}
return str;
});
// create pdf
conversion({ html: html}, (err, pdf) => {
var output = fs.createWriteStream(`documents/factures/${data.Référence}.pdf`);
pdf.stream.pipe(output);
});
var filepath = path.join(pathToDocument, '/factures/',`${data.Référence}.pdf`);
res.download(filepath);
});
Axiosコール
export function generatePdf(data){
return dispatch => {
axios.post(`${API_ENDPOINT}api/facture-pdf`,
{ data: data },
{ headers: {
'Content-Type': 'application/json',
'x-access-token': localStorage.getItem('token')
}
})
.then(function (response) {
return response.data;
})
.then(pdf => {
window.open(`${API_ENDPOINT}api/${type}-pdf/${data.Référence}`, '_blank')
})
}