Привет, ребята, спасибо за ваше время, у меня есть эти проблемы, когда я генерирую файл pdf с помощью pdfkit и отправляю их с помощью sendgrid в node js, электронная почта была успешно отправлена, но файл, кажется, поврежден, когда я пытался открыть файл в электронной почте, однако, если я открою файл, который сохраняю локально, работаю нормально (pdf отформатирован так, как и предполагалось),
здесь позвольте мне показать мой код:
await dbTransaction
.create(result)
.then(async (data) => {
const doc = new PDFdocument({
size: 'A4',
margin: {
right: 25,
left: 25,
},
});
const table = new PDFtable(doc, {
bottomMargin: 5,
});
if (result.is_round_trip === false) {
const dateNow = moment().format('DD MMMM YYYY');
table
.addPlugin(new (VoilabTable)({
column: 'Item',
}))
.addColumns([
{
id: 'Item',
// header: 'Name',
Align: 'left',
width: 250,
},
{
id: 'Separator',
// header: 'Name',
Align: 'center',
width: 10,
},
{
id: 'Description',
// header: 'Description',
align: 'left',
width: 250,
},
]);
doc.pipe(fs.createWriteStream(`${__dirname}/../../../polis_generate_temp/${result.customer_name.pdf`));
doc.moveUp(5);
doc.image('sompo_hd.png', {
fit: [150, 100],
align: 'left',
})
.moveDown(2.5);
doc.end();
transData = data;
}
выше, я создаю свой pdf файл
и вот код для отправки моей электронной почты
sgMail.setApiKey(example_key);
const pdfFolder = fs.readdirSync(`${__dirname}/../../../polis`);
const msg = {
to: 'example@gmail.com',
from: 'example@mail.id',
subject: 'example subject',
text: 'dev',
attachments: [],
};
const attachMail = {
content: `${__dirname}/../../../polis/file.pdf`,
filename: `file.pdf`,
type: 'application/pdf',
disposition: 'attachment',
};
msg.attachments.push(attachMail);
await sgMail.send(msg)
.then(() => {
setContent(200, transData);
return res.status(200).json(getContentSuccess());
})
.catch((err) => {
setContent(500, errorCode.General.SYSTEM_ERROR);
return res.status(500).json(getContentFail(req, err));
});
, как вы можете видеть, я поставил сценарий sendgript после обещания dbTransaction, уже пытался установить один уровень, как транзакция и использование asyn c -wait, но это не работает, я подозреваю, что pdf-комплект не был готов к записи файла, и sendgrid все равно отправил их.
спасибо за ваше время за любые предложения и замечания от вас где очень ценно для меня. спасибо