PDF не очень хорошо отформатирован в облачных функциях Google

#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).