Я использую MEAN Stack для нашего проекта. Чтобы сгенерировать pdf используя pdfmake,
Сценарий выглядит следующим образом: сначала нужно получить изображения с локального сервера, чтобы все работало нормально. Для масштабируемости приходится перемещать изображения в AWS и данные с другого сервера.
Теперь процесс выглядит так: сначала загрузите изображения из aws, затем создайте буфер, преобразуйте его в base64 и передайте в pdfmake. Теперь возникает проблема подключения клиент-сервер.
клиент делает запрос http для pdf, сервер обрабатывает его, но загрузка изображения из aws занимает слишком много времени, поэтому разрыв соединения с клиентом означает
сервер обрабатывает запрос и отправляет ответ обратно, но никто не может его прослушать.
/** client **/
function logicTriplogs() {
$rootScope.isLoading = true;
AssignsService.logicTriplogs({
driverId: vm.driver
}, {
_ids: vm.selectedTrips,
scheduleTime: vm.scheduleTime,
companyImage: vm.companyImage
},
function(response) {
console.log(response);
$rootScope.isLoading = false;
var Name = response.pdfName;
var data = response.content;
SaveFile.downloadURI(Name, data);
console.log('PDF Name:', Name);
},
function(err) {
console.log(err);
vm.error = err.data.message;
$rootScope.isLoading = false;
});
}
/** Server **/
getAssignedTripQuery(query, type)
.exec(function(err, assigns) {
if (err) {
console.log('Manifest');
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
}
if (assigns.length) {
logicMan(req.body, user, driver, assigns, function(docDefinition) {
var pdfName = `${moment_tz.tz(startDay, req.user.timeZone).format('MM-DD-YYYY')}.pdf`;
config.pdfBuffer(docDefinition, function(err, pdfDoc) {
console.log('EROROR PDF: ', err);
if (err) {
console.log('pdfmake function call error');
return res.status(400).send({
message: 'Error while generate pdf'
});
}
console.log('PDF Name:', pdfName);
return res.json({
message: 'Generated Susscessfuly',
pdfName: pdfName,
content: pdfDoc
});
});
});
} else {
return res.status(400).send({
message: 'Some thing went wrong. Please try later.'
});
}
});