Когда я использовал кукловод для печати html в pdf, я столкнулся со странной проблемой.Я считаю, что кукловод всегда игнорирует некоторые правила CSS, которые есть в @media print.
Вот мой env:
Версия Puppeteer: 1.11
Версия платформы / ОС: Win10 / CentOS7
Node.js версия: 10.15.0
Коды CSS:
@media print {
.flipbook-viewport .flipbook{
width: 794px!important;
height: 1123px!important;
max-height: 1123px;
max-width: 794px;
background-color: red;
}
.right-01 .image {
width: 92%;
background-repeat: no-repeat;
background-size: 100%;
background-image: url('../image/content/test.png');
height: 920px;
/* width: 740px; */
margin-top: 0.8rem;
}
}
Вы можете заметить, что я установил цвет фона, чтобы проверить результат теста.В моем тесте, когда я выполнял кукловод с помощью page.emulateMedia ('print'), правила flipbook-viewport и flipbook работают нормально.Но право-01 и изображение не работали.
Но забавно то, что когда я использовал экран @media (также изменил page.emulateMedia на screen) с одинаковыми правилами, все они работали нормально.Поэтому я думаю, что у него могут быть проблемы с кукловодом.
Каков ожидаемый результат? good.pdf
Что происходит вместо этого? неправильно.pdf
Кто-нибудь сталкивался с этой проблемой раньше?Как решить эту проблему?Пожалуйста, помогите.
Пример кода моего кукловода:
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({executablePath:'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'});
const page = await browser.newPage();
await page.goto('http://www.kaol.org/TurnPage/', {waitUntil: 'networkidle2'});
await page.emulateMedia('print');
await page.pdf({path: 'hn.pdf', format: 'A4', printBackground: true});
await browser.close();
})();