Pdf.js: Используйте более естественное масштабирование на мобильном устройстве

Созданный на 18 янв. 2013  ·  95Комментарии  ·  Источник: mozilla/pdf.js

Прямо сейчас вам нужно нажимать кнопки плюс / минус даже на мобильном телефоне, чтобы увеличить документ. Это действительно странно, особенно если учесть, что масштабирование пальцем тоже активно. Я думаю, что лучший способ работать на мобильных устройствах - это, возможно, визуализировать с «естественным» размером и позволить браузеру управлять масштабированием, как на веб-странице.

1-viewer 2-feature

Самый полезный комментарий

@ltullman @ hetalv985 Мне удалось заставить его работать, реализовать сам, проверьте мою суть здесь:

https://gist.github.com/squallstar/1d720e93eabe7f60dc61b547d2c19228
просто вставьте это в конец viewer.html 👍 вот и все.

Все 95 Комментарий

Это то, что мы хотели сделать, но в версии V1 были проблемы с масштабированием, поэтому нам пришлось использовать кнопки масштабирования.

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

Я действительно не думаю, что вы хотите, чтобы в этом случае браузер выполнял масштабирование. Если pdf.js отображает документ с разрешением 800x600, а вы увеличиваете масштаб, браузер просто продолжит отображать этот контент 800x600 в новом более высоком разрешении, которое может или не может выглядеть как дерьмо в зависимости от разрешения устройства и того, как сильно вы увеличили. (Я предполагаю, что pdf.js по-прежнему использует холст для рендеринга, а не svg?)

@Snuffleupagus @timvandermeij Кто- нибудь из вас заинтересован в работе над этим? Кажется, не должно быть слишком сложно использовать общую библиотеку в gaia https://github.com/mozilla-b2g/gaia/blob/master/shared/js/gesture_detector.js

@brendandahl Я обязательно https://github.com/mozilla-b2g/gaia/blob/862de8489b648a9af7e8a5b88be031b5479404ba/apps/camera/js/panzoom.js#L15, похоже, является хорошим примером, так как 'transform' используется для событий защемления двумя пальцами. Было бы здорово, если бы масштабирование сжимало пальцы, так как на мобильных устройствах это часто используется.

Я над этим работаю. Заинтересованные пользователи могут следить за прогрессом на https://github.com/timvandermeij/pdf.js/tree/pinch-to-zoom . Он уже улавливает команду масштабирования пальцем на моем планшете и телефоне, но необходимо повысить точность, а также фактический повторный рендеринг (мне нужно найти способ вычислить новый масштаб со старым и новую среднюю точку или как-нибудь иначе).

@timvandermeij Одна вещь, которую нам может потребоваться сделать, прежде чем мы реализуем это, - это улучшить масштабирование. Сначала мы говорили о том, чтобы просто использовать преобразования CSS для масштабирования холста, затем начать повторный рендеринг, а затем, когда повторный рендеринг будет завершен, покажите новый холст.

Я твердо верю, что лучшим решением здесь будет решение, в котором композитор браузера выполняет временное масштабирование (анимацию во время сжатия или двойного нажатия), а затем просто позволяет pdf.js перерисовывать в новом разрешении. Печально то, что прямо сейчас контент не обращает внимания на изменения масштаба, и я не думаю, что изменение размера холста под новое разрешение сработает. Чтобы справиться с этим, нам может потребоваться улучшить спецификацию холста.

У меня был некоторый успех с hammer.js. Я разрешил «родной» край браузера (что приводит к размытому PDF), и после увеличения я перерисовываю холст PDF с помощью scale = scale * zoom и задаю холсту css «transform: scale (1 / zoom)». Так что все будет в одном месте (особенно текст и якоря). Выглядит аккуратно.

@skruse Некоторое время назад я подготовил патч для реализации pinch to zoom (см. # 3708), также с Hammer.js, но мне еще не удалось заставить его работать должным образом на мобильных / планшетных устройствах. Пинч-движения вызвали множество проблем с производительностью и стабильностью. Не могли бы вы поделиться с нами своей реализацией? Если нет, не могли бы вы создать пулреквест с помощью реализации щепотки для увеличения? Возможно, он заменит мой, если будет более плавно работать на мобильных / планшетных устройствах. :)

Привет, Скруз, как тебе удалось рассчитать коэффициент масштабирования в конце масштабирования?

var zoom = document.documentElement.clientWidth / window.innerWidth;

И у меня тоже проблемы с производительностью: на мобильном устройстве нельзя увеличивать "слишком далеко" с точки зрения параметра "масштаб". Думаю, 2 или 3 - это максимум.

+2 за это

У кого-то есть решение этой проблемы двухлетней давности?

Насколько я знаю, с этим ничего не сделано. Я ссылаюсь на свой предыдущий комментарий в https://github.com/mozilla/pdf.js/issues/2582#issuecomment -30316908. Мы приглашаем всех отправить PR для этого, когда есть рабочий код.

Хотел бы увидеть решение для этого. На данный момент это единственное, что мешает мне использовать pdf.js

:(

Масштабирование пальцем было бы здорово! Я нашел этот плагин jquery, который использует pdf.js и имеет масштабирование и перелистывание страниц. http://touchpdf.net/demo/index.htm Но было бы хорошо, если бы он изначально был встроен в pdf.js :-)

+1 Хотелось бы увидеть это здесь.

+1, также не будет ли пример в другом месте, где используется hammer.js для захвата события и последующего вызова функций масштабирования pdf.js, относительно «чистым» методом?

@sporkman в конечном итоге я сделал холст действительно большим, а затем использовал масштабирование в собственном браузере, чтобы разрешить масштабирование (мое приложение было разработано для сенсорных устройств). При необходимости я могу поделиться источником.

@rorysmorris, как вам удалось обойтись без отключения встроенного масштабирования браузера при

Вы пробовали использовать свойство touch-action CSS?
https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action

5 октября 2016 г. в 15:15 "toplay3" [email protected] написал:

@rorysmorris https://github.com/rorysmorris как вам удалось получить
об отключении собственного масштабирования браузера при сжимании во время прокрутки? я имею
также реализовал hammer.js в pdf.js, но не может обойти этот конкретный
выпуск

-
Вы получаете это, потому что подписаны на эту ветку.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mozilla/pdf.js/issues/2582#issuecomment -251670785,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ABTUT83E287dv4LSs4T_TGnzwe8yqCMYks5qw6LmgaJpZM4AXvZ2
.

@ Роб - W
вау гений! теперь работает отлично! Спасибо большое!

Когда планируется реализовать эту проблему? С момента публикации этой проблемы прошло довольно много времени. Излишне говорить, что +1!

Я также проверяю эту проблему каждую неделю с года. Было бы здорово иметь его в ядре или как аддон с hammer js.

Чтобы быть более конструктивным в этой теме, вот требования к пользовательскому интерфейсу (если кто-то действительно хочет помочь и ускорить решение проблемы), и в PDF.js нет ничего специфического:

  • для масштабирования и панорамирования набора DIV (разных размеров), уложенных вертикально
  • не позволять пользователю теряться во вьюпорте в разных масштабах
  • обнаруживать и сообщать, когда видимость div или видимый масштаб изменяется.

Последнее важно, поскольку мы не хотим рисовать все страницы с максимальным разрешением на устройствах с низким энергопотреблением. Если у кого-то будет прототип, найди мне в IRC, я помогу подключить PDFPageView для видимости и масштабирования событий. Должен ли я также установить ошибку 5-хороших-новичков?

Я согласен, что это будет хорошая ошибка для новичков, поэтому я называю ее таковой.

Это не только для мобильных устройств, я также получаю запросы функций для поддержки масштабирования с помощью трекпада двумя пальцами (на Mac).

Из своего краткого исследования я обнаружил, что кросс-браузерный способ поддержки жестов масштабирования пока что отсутствует.

+1

@ toplay3 и @ Rob - W Что вы сделали, чтобы все

Привет всем, как и большинство из вас, я заинтересован в том, чтобы работать с масштабированием, мог ли кто-нибудь это сделать, даже используя внешние библиотеки, такие как молоток? Если вы сделали это, то что это за настройка? @rorysmorris @ toplay3 @ Роб - Спасибо, спасибо

👍

@rorysmorris какие-нибудь советы по вышеупомянутому вопросу? благодаря :)

Привет, @squallstar - сначала я попытался использовать библиотеку довольно четким при увеличении. Если вам нужна помощь, я могу показать вам рабочий пример моего реализация.

@rorysmorris, спасибо, было бы здорово, если бы вы мне показали (или пришлите отрывок) или как вы это реализовали. Очень признателен 👍

@squallstar отправьте мне электронное письмо через контактную форму на моем сайте, и я пришлю вам демо позже сегодня :) http://rorymorris.co.uk

@squallstar На самом деле это не решение, а своего рода обходной путь. Недостатки: производительность, результат зависит от устройств, масштабирование не бесконечно.

Производительность значительно повышается за счет использования встроенной прокрутки и панорамирования, в отличие от использования JavaScript для выполнения этих задач. Максимальный уровень масштабирования легко настраивается с помощью мета-тега области просмотра, а кому в любом случае нужен бесконечный масштаб для растеризованного изображения? Кстати, красивая библиотека "JS-ImageResizer"! @MickL

Производительность была скорее предположением. Допустим, вы используете iPhone Plus в альбомной ориентации с шириной 2208 пикселей. Теперь у вас будет холст 6624 пикселей. В зависимости от сложности PDF и количества страниц у вас может быть 3 визуализированных холста размером 6000 пикселей с HTML-текстом, графикой и т. Д.

Думаю, ваше решение отлично подходит для многих. Но, как вы описали, это скорее поддельное масштабирование, чем фактически запускает масштабирование и повторную визуализацию PDF.js :)

Правда, производительность с этой точки зрения невысока. В моем конкретном случае использования для этого мне пришлось отрендерить более 300 страниц PDF-файлов размером с iPad (сетчатка), а также иметь холст для рисования поверх каждого из них!

PDF.js приведет к сбою браузера (iOS Safari) примерно на 10 обработанных страницах PDF, поэтому в итоге мне пришлось отображать только одну страницу PDF за раз с помощью кнопок «предыдущий / следующий». Не идеально! И я согласен, встроенная в PDF.js функция масштабирования была бы намного лучше.

проверить kamihq.com для рабочего примера масштабирования

@rorysmorris Я отправил вам свое письмо вчера вечером через контактную форму.

Может ли кто-нибудь, у кого есть рабочий пример ( @rorysmorris , @ Rob-W и т. Д.),

@rorysmorris Я пытался связаться с вами через ваш сайт. Если у кого-нибудь есть рабочий пример этого, не могли бы вы поделиться?

@ltullman @ hetalv985 Мне удалось заставить его работать, реализовать сам, проверьте мою суть здесь:

https://gist.github.com/squallstar/1d720e93eabe7f60dc61b547d2c19228
просто вставьте это в конец viewer.html 👍 вот и все.

Спасибо squallstar. Но мы не используем viewer.html. Мы визуализируем PDF-файл в нашем мобильном приложении для iOS внутри тега div. Как нам использовать эту функцию в таком случае? Нужно ли нам включать файлы просмотра?

Итак, у нас есть функция handleMouseWheel которая очень похожа. Почему бы не использовать ту же функцию с жестами касания или молотком js? Разве это не исправят за 1-2 часа?

К сожалению, это не так просто. См. Мой предыдущий комментарий по адресу https://github.com/mozilla/pdf.js/issues/2582#issuecomment -30316908. Нам нужно ограничить количество сенсорных жестов, чтобы холст не перерисовывался при каждом изменении дельты, что является серьезной проблемой производительности. Если кто-то желает работать над этим, не стесняйтесь отправлять PR, и мы его рассмотрим.

Если это единственная проблема ... :)

Я также заметил, что на «ctrl + mousewheel» он прокручивается до позиции курсора, как на Google Maps. Но это не сработает, если нет полос прокрутки (по умолчанию при загрузке страницы). Итак, чтобы это выглядело естественно, мы должны создать отступы, если это необходимо для масштабирования щипком и колесика мыши.

Приятным дополнением было бы использование одной и той же функции колесика мыши и масштабирования пальцем.

Ваш коммит уже выглядит хорошо. Возможно, производительность больше не проблема, это было более 3 лет назад. Конечно, лучшим решением будет: start-pinch -> blurred zoom -> end-pinch -> действительно увеличить pdf. Также user-scalable=no больше не работает на последней версии iOS. Так что нам тоже может потребоваться preventDefault() .

Я потратил на это много времени. На самом деле это кажется возможным, но есть несколько проблем, которые я не смог решить:

  • hammer.js работает только на pinchend (pinchmove всегда отменяется при масштабировании pdf.js)
  • Я не мог полностью прокрутить до центра пинченда, хотя я использовал тот же метод, что и mousewheel-zoom
  • Иногда центр не выставляется правильно с помощью hammer.js
  • Иногда pinchend не вызывается из hammer.js и масштабирования не происходит
  • Я попытался добавить преобразование css в pinchmove (масштабирование css на pinchmove, масштабирование pdf js на pinchend), что дало бы отличную производительность, но снова я не смог идеально прокрутить (позиция #viewer с css translate)
  • hammer.js предотвращает любое другое сенсорное действие (в нашем случае обычная прокрутка страницы), поэтому мне пришлось изменить hammer.js, чтобы предотвратить использование только двух пальцев
  • (То же самое для масштабирования колесика мыши :) Если нет полос прокрутки (уменьшенных, чтобы вы могли видеть весь документ), мы не можем позиционировать (прокручивать) документ в центр щипка.

Вероятно, все это решаемо, но iOS 10 позволяет масштабировать страницу, даже если она отключена с помощью user-scalable=no . Таким образом, несколько раз при сжатии preventDefault () не работает, и вся страница увеличивается. Это привело бы к серьезным проблемам для конечного пользователя (единственный способ выйти - дважды нажать на панель инструментов).

@MickL Я попробовал. Мне удалось избежать отмены «масштабирования щипком», добавив свойство CSS «pointer-events: none» к классам pdfViewer и page (и вызвав stopPropagation + preventDefault, когда viewerContainer отправляет события двойного касания, чтобы не масштабировать всю страницу iOS).

У меня та же проблема, которую вы описываете, когда я использую модифицированный метод колеса мыши (передайте следующий масштаб, который нужно применить, текущее «среднее положение» или цель и дельту «среднего положения», чтобы знать насколько переместиться влево, вправо, вверх, вниз, управляется pdfViewer.container.scrollLeft и pdfViewer.container.scrollTop). Кажется, всегда возникает ошибка, связанная с тайм-аутом, из-за которого средство просмотра не выполняет рендеринг при каждом событии двойного касания.

Любой намек на то, где применить эти преобразования масштаба CSS, чтобы избежать рендеринга всего на каждой дельте шкалы?

@betovidal Я знаю, что прошло несколько месяцев с момента вашего последнего сообщения. Вносили ли вы какие-нибудь обновления, касающиеся работы масштабирования щипком в PDF.js? Я работаю над проектом, который требует этого.
Может, поработаем вместе, чтобы что-нибудь придумать?

@squallstar Я очень кратко протестировал ваше решение на iOS. И пока у меня работает! Спасибо, что поделились своим решением 💯

@vuinguyen спасибо! Я рад, что у вас тоже получилось;)

+1

Есть ли надежда интегрировать код @squallstar в PR? В настоящее время, если пользователь пытается ущипнуть и увеличить мобильное устройство, он часто «блокируется» для прокрутки, и ему приходится перезагружать страницу, чтобы просто перемещаться дальше. Полагаться на крошечные кнопки «+» и «-» для навигации в 2018 году довольно нелогично для мобильного зрителя.

Pinch-zoom "сломан" на iOS, начиная с iOS 10. Даже если все будет реализовано идеально, Safari все испортит.

Это проблема iOS? Можно ли увеличить масштаб PDF, обслуживаемого pdfjs на Android?

Зависит от браузера. Я предполагаю, что только браузеры iOS игнорируют "user-scalable = no".

Прямо сейчас вам нужно нажимать кнопки плюс / минус даже на мобильном телефоне, чтобы увеличить документ. Это действительно странно, особенно если учесть, что масштабирование пальцем тоже активно. Я думаю, что лучший способ работать на мобильных устройствах - это, возможно, визуализировать с «естественным» размером и позволить браузеру управлять масштабированием, как на веб-странице.

Для меня этим все сказано. Я предполагаю, что это не столько конкретная функция, сколько подход к мобильному опыту.

Я предполагаю, что только браузеры iOS игнорируют "user-scalable = no".

Верный.

Я видел, что «Предварительный просмотр содержимого коробки» (который использует PDFJS для отображения PDF-файлов) является хорошей реализацией для этого. Это код их зрителя:

https://codepen.io/box-platform/pen/rmZdjm

И это запрос на их исправление:

https://github.com/box/box-content-preview/pull/567

Я подумал, что, возможно, кто-нибудь сможет сделать что-то подобное для PDFJS на основе своего решения. Я постараюсь реализовать это сам и выложить код, если сделаю. Я буду рад, если кто-то другой (у которого, вероятно, больше опыта, чем у меня) также сможет сотрудничать и попробовать это!

@ amurillo17 спасибо за ссылку. Решение Box выглядит фантастически. Я бы хотел увидеть что-то подобное при работе с pdfjs. Пожалуйста, держите нас в курсе вашего прогресса!

Есть ли хорошее решение этой проблемы?

Есть обновления для этого? Было бы здорово иметь!

любые обновления ? благодаря

Есть ли простые способы добавить эту функцию в существующую программу просмотра?

Есть ли простые способы добавить эту функцию в существующую программу просмотра?

Нет.

@prohtex Хм, это довольно грустно. Надеюсь, что через столько лет такая функция будет добавлена.

@prohtex Хм, это довольно грустно. Надеюсь, что через столько лет такая функция будет добавлена.

Он будет добавлен только тогда, когда кто-то подойдет и интегрирует код в PR (не я, к сожалению), и даже тогда это может занять годы.

У меня есть обходной путь, но это "только Android", поскольку меня не волнует iOS в моем дополнении "Firefox для Android":
https://github.com/M-Reimer/android-pdf-js/blob/master/patches/pdfjs-pinch-gestures.js
Мой Makefile просто добавляет это в «web / viewer.js». Он регистрирует события касания и преобразует жесты сжатия в нажатия кнопок.

У меня есть обходной путь, но это "только Android", поскольку меня не волнует iOS в моем дополнении "Firefox для Android":

Он работает и на моем iPad, но кажется немного вялым и не очень естественным. Он увеличивает на один шаг после каждого щелчка. Таким образом, вы должны отпустить пальцы, чтобы увеличить масштаб, и неважно, насколько далеко вы зажали. Это нормальное поведение или ошибка конкретного устройства? В любом случае спасибо, потому что это шаг в правильном направлении.

Он работает и на моем iPad, но кажется немного вялым и не очень естественным. Он увеличивает на один шаг после каждого щелчка. Таким образом, вы должны отпустить пальцы, чтобы увеличить масштаб, и неважно, насколько далеко вы зажали. Это нормальное поведение или ошибка конкретного устройства? В любом случае спасибо, потому что это шаг в правильном направлении.

Глядя на код, это не жизнеспособное решение или даже хороший обходной путь. Все, что это делает, - это отслеживание событий масштабирования и имитация нажатия на кнопки [-] [+] с помощью jQuery.

@prohtex Именно так. Если вы попробуете, он что-то сделает, но совсем не работает.

Как я уже сказал: не идеально, но лучше, чем ничего.
По крайней мере, для меня проще сделать жест щипка, чем нажать маленькую кнопку масштабирования на маленьком экране мобильного телефона. Он заставляет работать жесты, которые ожидает работать каждый пользователь мобильного устройства.

Он работает и на моем iPad, но кажется немного вялым и не очень естественным. Он увеличивает на один шаг после каждого щелчка. Таким образом, вы должны отпустить пальцы, чтобы увеличить масштаб, и неважно, насколько далеко вы зажали. Это нормальное поведение или ошибка конкретного устройства? В любом случае спасибо, потому что это шаг в правильном направлении.

Он бьет по кнопкам. «Естественное масштабирование» невозможно при таком простом подходе, и я не хочу слишком сильно связываться с PDF.js. Это не цель моего Аддона.

Но должна быть возможность нажимать несколько кнопок в зависимости от того, насколько далеко переместились пальцы. Я попробую это.

Глядя на код, это не жизнеспособное решение или даже хороший обходной путь. Все, что это делает, - это отслеживание событий масштабирования и имитация нажатия на кнопки [-] [+] с помощью jQuery.

Я открыт для предложений, но поскольку это часть аддона, который просто хочет сделать PDF.js пригодным для использования в качестве средства просмотра PDF внутри Firefox, я не буду вносить глубоких изменений.

Кстати: в моем коде нет ни одной строчки jQuery. Это чистый JavaScript.

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

Кстати: в моем коде нет ни одной строчки jQuery. Это чистый JavaScript.

Я исправился. Надеюсь на скорое решение.

Для этого можно использовать преобразование CSS при масштабировании пальцем. Также нужно применять движение пальцев, а не только увеличение. Затем на конце масштабирования вы можете сбросить преобразование css и применить фактическое масштабирование и прокрутить до pdf.js.

PS Использование jQuery внутри проекта, отличного от jQuery, мне уже кажется плохой практикой.

PS Использование jQuery внутри проекта, отличного от jQuery, мне уже кажется плохой практикой.

Где @ M-Reimer использует JQuery? Как он уже сказал, его обходной путь использует только простой Javascript.

Ага .. у меня плохо. Дело в том, что это решение не работает.

Обновлено: расстояние между пальцами изменяет масштаб:
https://github.com/M-Reimer/android-pdf-js/blob/master/patches/pdfjs-pinch-gestures.js
Невозможно масштабировать, двигая пальцами, поскольку по какой-то причине фактическое масштабирование и перерисовка заставляют событие касания каким-то образом «закончиться».
Опять же: лучше, чем вообще не обрабатывать жест.

@ M-Reimer Большое спасибо за вашу работу. По крайней мере, это улучшение по сравнению с прошлой версией. Может кто найдет решение заставить его перерисовывать при масштабировании. Или можно временно увеличить масштаб с помощью преобразований CSS, а затем перерисовать его в конце концов после завершения сенсорного жеста.

@anvaka Разобрался в кейсе и вроде может быть довольно простое решение . К сожалению, в настоящее время у меня нет времени тестировать его, но, возможно, кто-то захочет попробовать.

Я сделал версию, основанную на решении @squallstar, которое также использует преобразование css во время движения щепотки, чтобы дать больше отзывов пользователей. Рендеринг выполняется только на Touchchend. Это не идеально, есть небольшие проблемы с позиционированием прокрутки после рендеринга, но, возможно, кто-то может использовать это в качестве начала.

https://gist.github.com/jsprpalm/12217feab2f1acc14bd8e8508291619e

Есть ли решение этой проблемы? Я бы хотел использовать pdf.js на мобильных устройствах, но без возможности масштабирования он бесполезен на небольших экранах.

Я заставил его работать без использования hammer.js, но поскольку это был проект для клиентов, я не могу поделиться кодом. Я реализовал щепотку и двойное нажатие и увеличил масштаб с помощью css, а на pinchend я увеличил pdf.js. Для некоторых элементов требуется установить ширину / высоту, а некоторые можно преобразовать с помощью css-transform. Также при масштабировании необходимо предотвратить просмотр pdf.js viewer.js. Это заняло у меня много времени, но в конце концов это сработало.

Есть ли решение этой проблемы? Я бы хотел использовать pdf.js на мобильных устройствах, но без возможности масштабирования он бесполезен на небольших экранах.

До тех пор, пока разработчик, имеющий опыт работы с кодовой базой pdf.js, не сможет предложить решение, каждый, кто реализует pdf.js, должен будет что-то сколотить. Не похоже, чтобы это был большой приоритет для этого проекта.

Вот PR, который можно интегрировать без особых трудностей:

https://github.com/box/box-content-preview/pull/567

https://gist.github.com/jsprpalm/12217feab2f1acc14bd8e8508291619e

@jsprpalm, спасибо, отлично работает, нужно исправить, пожалуйста, помогите исправить

@aidrouge https://gist.github.com/larsneo/bb75616e9426ae589f50e8c8411020f6

Я добавил это в свой аддон для просмотра PDF-файлов. Кажется, работает очень хорошо.
https://addons.mozilla.org/android/addon/android-pdf-js/

Изменить: работает для меня

Для меня работает более естественная установка:

<meta
      name="viewport"
      content="width=device-width, initial-scale=1, maximum-scale=10.0, minimum-scale=1.0"
    />

Как установить минимальный масштаб? Я могу уменьшить изображение настолько, чтобы оно превратилось в точку.

У меня тот же вопрос, что и у @KazysNoobiys.
минимальный масштаб в области просмотра не влияет на масштабирование

Я работаю над другой работой: прозрачный слой css поверх pdf.js для обработки различных функций смахивания. Часть оверлея сейчас работает, но я не знаю, какие функции вызывать.
если (проведите пальцем == 'влево') ????
Какую функцию я бы вызвал, чтобы перейти к следующей странице или выполнить резервное копирование на предыдущую страницу или увеличить?

сэкономьте свое время и жизнь, отредактируйте свой .html файл следующим образом

// delete the 'maximum-scale'
<meta name="viewport" content="width=device-width, initial-scale=1">

например. https://github.com/mozilla/pdf.js/blob/master/web/viewer.html#L26

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

jigskpatel picture jigskpatel  ·  3Комментарии

AlexP3 picture AlexP3  ·  3Комментарии

patelsumit5192 picture patelsumit5192  ·  3Комментарии

zerr0s picture zerr0s  ·  3Комментарии

dmisdm picture dmisdm  ·  3Комментарии