Конвертировать скриншот в PDF в кукловода - PullRequest
0 голосов
/ 10 января 2020

Я создал снимок экрана с документом html, потому что я хотел сгенерировать PDF-файлы произвольной ширины Сейчас я пытаюсь преобразовать скриншот в PDF. Хотя я нашел библиотеку pdfkit, но есть ли какой-нибудь способ, которым мы можем сделать это, используя сам кукловод.

Ответы [ 2 ]

0 голосов
/ 10 января 2020

Проблема сводится к преобразованию JPEG (или любого изображения) в PDF.

  • Считайте base64Encode файла изображения. Обязательно предоставьте эти флаги для puppeter: --allow-file-access-from-files, --enable-local-file-accesses, чтобы puppeter имел доступ к локальному файлу снимка экрана на вашем сервере, который вы создали с помощью html -> screenshot.

  • Просмотр base64 data:image/png;base64,base64.... страница

  • преобразовать в pdf.

    const puppeteer = require('puppeteer');
    const fs = require('fs');
    
    function base64Encode(file) {
        var bitmap = fs.readFileSync(file);
        return new Buffer(bitmap).toString('base64');
    }
    
    (async () => {
        const browser = await puppeteer.launch({args: ['--allow-file-access-from-files', '--enable-local-file-accesses']});
        const page = await browser.newPage();
        const image = 'data:image/png;base64,' + base64Encode('1.jpg');
        await page.goto(image, {waitUntil: 'networkidle2'});
        await page.pdf({path: 'output.pdf', format: 'A4'});
    
        await browser.close();
        console.log("done");
    })();
    
0 голосов
/ 10 января 2020

Да, проверьте здесь: кукловод pdf do c

также образец кода из офиса сделать c:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
  await page.pdf({path: 'hn.pdf', format: 'A4'});

  await browser.close();
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...