Проблема с масштабированием библиотеки pdfjs

#javascript #pdf #pdfjs

#javascript #PDF #pdf.js

Вопрос:

Цель

Я пытаюсь отобразить каждую страницу PDF-документа в определенном пространстве. эти поля имеют высоту 375px и ширину 265px.

Проблема

В настоящее время мне удалось правильно масштабировать мою страницу по оси x, но страница по-прежнему имеет ту же высоту, что и до операции масштабирования.

Конфигурация

  • Chrome
  • Окно 10
  • PDF.js версия: 2.6.347

Шаги по воспроизведению проблемы

  1. Создайте холст размером, как я уже говорил ранее. (w: 265px, h: 375px)
  2. Сделайте это, чтобы получить масштабированный видовой экран (со страницей pdf, полученной благодаря «методу getPage ()»)
 var desiredWidth = canvas.width;
var viewport = page.getViewport({ scale: 1, });
var scale = desiredWidth / viewport.width;
var scaledViewport = page.getViewport({ scale: scale});
  
  1. Визуализируйте страницу в canvas с контекстом canvas и масштабируйте область просмотра, выполнив это
 let renderContext = {
    canvasContext: context,
    viewport: scaledViewport
};

await page.render(renderContext);
  

Чего я ожидал

получите холст, содержащий всю страницу, правильно масштабированную.

Что я получаю

Холст, содержащий всю ширину страницы, но только первые 375px высоты страницы. Это означает, что страница была правильно масштабирована по оси x, но ничего не изменилось по оси y..

Exemple

Итак, документ, подобный этому

Оригинал

Посмотрите так на моем холсте

В canvas

Я не знаю, чего мне там не хватает… я точно воспроизводю то, что есть в документации библиотеки pdfjs, для отображения страницы pdf в определенном пространстве

Комментарии:

1. не масштабируется ли ваш холст или его содержимое?

2. Нет, это контент, мой холст правильно масштабирован

3. можете ли вы воспроизвести свою проблему? или покажите какое-нибудь изображение. я не уверен, что ваше объяснение проблемы понятно для всех.

4. Извините, я буквально забыл вернуться к своему сообщению, я решил проблему. Это было потому, что я устанавливал размер холста, устанавливая параметры стилей «ширина» и «высота» в пикселях вместо того, чтобы устанавливать непосредственно атрибуты «ширина» и «высота».

5. итак, ваш холст был неправильно масштабирован 🙂