«Недопустимый размер холста» при рендеринге PDF в PNG с использованием pdf.js

У меня возникли проблемы с тем, чтобы библиотека PDF.js отображала PDF-файл в файл PNG.

Мои шаги:

  1. mkdir pdf-test
  2. npm init
  3. npm install pdfjs-dist assert canvas
  4. Скопируйте pdf2png.js со страницы Примеры в рабочую папку
  5. Скопируйте случайный PDF в эту папку, укажите путь к нему в pdf2png.js в строке 54
  6. node pdf2png.js

Я получаю следующий вывод:

# PDF document loaded.
(node:13760) UnhandledPromiseRejectionWarning: AssertionError [ERR_ASSERTION]: Invalid canvas size
    at NodeCanvasFactory_create [as create] (D:\tests\pdf-test\pdf2png.js:23:5)
    at D:\tests\pdf-test\pdf2png.js:70:21

Удивительно, но если я клонирую весь репозиторий PDF.js и следую инструкциям по его сборке из исходного кода, скрипт работает нормально, и я получаю правильно отображаемый файл PNG.

Что мне не хватает при установке готовой версии из NPM?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
576
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не хватает обновления.

Последняя версия pdfjs-dist npm — v2.0.943 от Oct 27, 2018, а последняя версия GitHub — v2.1.266 от Feb 16, 2019.

Это последнее обновление имеет этот журнал изменений: перейти на холст 2.x API, который также затронул файл pdf2png.js, как вы можете видеть здесь:

Поэтому, если вы использовали последний pdf2png.js файл из pdf.js репозитория GitHub, у вас было какое-то несоответствие версий между pdfjs-dist пакетом npm и pdf2png.js файлом.

Вау, спасибо! Обновление до 2.1.226 фактически решило проблему!

Impworks 07.05.2019 14:09

Другие вопросы по теме