#node.js #google-cloud-functions #html-pdf
#node.js #google-cloud-функции #html-pdf
Вопрос:
Я создаю PDF из HTML. Время выполнения node.js 10. С PDF-файлом все в порядке, когда функция запускается в эмуляторе firebase. Но точно такой же код не позволяет получить хорошо отформатированный PDF. Часть CSS не вступает в действие.
Как я могу сгенерировать хорошо отформатированный PDF-файл с облачными функциями Google, работающими на Firebase / GCP?
Ниже приведен фрагмент кода :
var htmlPdf = require('html-pdf');
........
........
async function generatePdf(htmlText,fileNumber) {
var options = {
format: 'Letter',
directory: "",
timeout: 540000, // in milliseconds
border: {
top: "1in", // default is 0, units: mm, cm, in, px
//right: "0.2in",
bottom: "1in",
left: "1in"
}
};
const fileName = `/tmp/payment-receipt-${fileNumber}.pdf`;
htmlPdf.create(htmlText,options).toFile(fileName ,async (err, res)=> {
if (err) {
console.log('Error EC-002 ',err);
return 'NOK';
}
console.log('file created as : ',res.filename);
});
....
....
}
Я уже пробовал удалить внешнюю ссылку CSS и добавить соответствующие классы CSS в раздел HTML. Это не сработало. Похоже, что с внешними ссылками проблем нет, поскольку в HTML есть одно изображение (полученное из Интернета), и оно работает хорошо.
Нет абсолютно никаких проблем, когда код запускается на эмуляторе firebase.
Комментарии:
1. Откуда вы взяли
htmlText
переменный контент?2. Это статический HTML-шаблон. Я просто заменяю некоторые значения из базы данных.
3. Это действительно? Вы пытались зарегистрировать его, чтобы проверить его содержимое?
4. ДА. Для тех же самых данных PDF-файл создается правильно при запуске на локальном компьютере (с помощью эмулятора firebase).