Я пытаюсь напечатать pdf (преобразовать html страницу в pdf) в приложении Angular 9. Я использовал кукловода для достижения sh того же - но столкнулся с проблемами -
Ниже мой код
exportPdf(){
const url = window.location.href;
(async () => {
const browser = await puppeteer.launch({headless:true});
const page = await browser.newPage();
await page.goto(url);
await page.pdf({path:'medium.pdf'});
await browser.close();
})();
}
вышеупомянутая функция вызывается из шаблона angular (через кнопку нажмите). Я столкнулся со следующими проблемами, решил их с помощью перечисленного решения -
- Не могу разрешить 'ws' - я установил ws через npm install и изменил WebSocketTransport. js, чтобы прочитать from - node_modules / ws
const WebSocket = require('../node_modules/ws'); --> after adding the path error disappeared
const WebSocket = require('ws') --> this was not working
Я получил неопределенные ошибки для переменных 'global', 'buffer' и 'process' - я добавил для него прокладки в мой файл polyfill.ts
(window as any).global = window;
global.Buffer = global.Buffer || require('buffer').Buffer;
(window as any).process = {
version: ''
};
Теперь после всего этого, когда я бегу, я все еще получаю ошибку ниже
Uncaught TypeError: Cannot read property 'PUPPETEER_PRODUCT' of undefined
at Launcher (Launcher.js:855)
at Object.get _launcher [as _launcher] (Puppeteer.js:63)
at Object.get (<anonymous>)
at Function.installAsyncStackHooks (helper.js:106)
at Object../node_modules/puppeteer/index.js (index.js:22)
at __webpack_require__ (bootstrap:84)
at Module../src/app/shared/export-pdf/export-pdf.component.ts (tooltip.directive.ts:29)
at __webpack_require__ (bootstrap:84)
at Module../src/app/shared/shared.module.ts (shared.module.ts:1)
at __webpack_require__ (bootstrap:84)
Пожалуйста, дайте мне знать ваши мысли. Спасибо.