Как создать скриншоты для PDF-страниц, используя puppeteer и Node js - PullRequest
1 голос
/ 13 мая 2019

Я создаю генератор скриншотов, используя кукловода и узел js. Он отлично работает для обычных веб-страниц, но для страниц PDF он всегда выдает одну и ту же ошибку при каждом запуске

Вот код (первый пример из https://github.com/GoogleChrome/puppeteer)

const puppeteer = require('puppeteer');

(async () => {
    try {
        const browser = await puppeteer.launch();
        const page = await browser.newPage();
        await page.goto('https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf');
        await page.screenshot({ path: 'example.png' });
        await browser.close();
    } catch (err) {
        console.log(err);
    }
})();

Ошибка, которую я получаю

Error: net::ERR_ABORTED at https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
    at navigate (C:\MEAN\puppeteer-demo\node_modules\puppeteer\lib\FrameManager.js:121:37)
    at process._tickCallback (internal/process/next_tick.js:68:7)
  -- ASYNC --
    at Frame.<anonymous> (C:\MEAN\puppeteer-demo\node_modules\puppeteer\lib\helper.js:110:27)
    at Page.goto (C:\MEAN\puppeteer-demo\node_modules\puppeteer\lib\Page.js:629:49)
    at Page.<anonymous> (C:\MEAN\puppeteer-demo\node_modules\puppeteer\lib\helper.js:111:23)
    at C:\MEAN\puppeteer-demo\index.js:7:20
    at process._tickCallback (internal/process/next_tick.js:68:7)

Любая помощь приветствуется. Я также открыт для любых других возможных решений.

1 Ответ

0 голосов
/ 13 мая 2019

Headless Chrome не может посещать страницы PDF и выдает ошибку Error: net::ERR_ABORTED по мере появления.Несмотря на то, что вы можете посетить документ PDF с headless: false, сделать снимок экрана также не удастся, так как PDF не является реальным веб-сайтом и фактически отображается в отдельном представлении.

Альтернативный подход

Чтовместо этого вы можете загрузить страницу и использовать PDF.js для создания изображения страницы.Возможно, вы захотите проверить другую информацию на тему «pdf to image» или «pdf preview».Существует множество вопросов по stackoverflow ( 1 , 2 , ..) по этой теме, а также примеров на самой странице PDF.js .

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