2016-10-01 2 views
1

Я загружаю программу просмотра pdf.js на свою веб-страницу в div, используя методы pdf.js API, такие как запуск и открытие.Pdfjs viewer с внешней загрузкой файла

На этой странице у меня также есть раздел для загрузки файлов для прикрепления связанных документов.

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

+0

Вы используете индивидуальную версию проекта [viewer] (http://mozilla.github.io/pdf.js/web/viewer.html) или API уровня отображения напрямую с 'PDFJS.getDocument' и ручной рендеринг на элементы холста, такие как [this] (http://mozilla.github.io/pdf.js/examples/)? Или стороннюю оболочку? – yscik

+0

Я использую API напрямую. Я даю PDFViewerApplication свой конфиг, который сообщает ему элементы макета, а затем я вызываю его открытым URL. – segFault

ответ

0

Here is the offending part in PDFViewerApplication, он добавляет глобальный прослушиватель событий change и изменяет pdf, если это файл с выбранными файлами.

К сожалению, для этого не существует значка настроек, ссылка на функцию прослушивателя отсутствует, а также нет возможности отменить или изменить событие (это также сломает другие части приложения) Мне нужно изменить этот код, чтобы удалить его. Похоже, слушатель просто отправляет новое внутреннее событие fileinputchange, которое используется только для этого, поэтому вам нужно только прокомментировать this line.

+0

Вот и все! Я копался уже 2 дня и не видел этого. Спасибо огромное! Просто любопытно, знаете ли вы, как иметь несколько зрителей pdfjs на одной странице без использования iFrames? – segFault

+0

У меня есть приложение для одной страницы и средство просмотра в двух разных разделах, и я не нашел хороший способ их очистки. Я попытался удалить свой dom, но не имел никакого успеха и не смог найти метод destroy в файле app.js. – segFault

+0

Да, я уже видел ваш вопрос относительно этого. Tbh этот зритель действительно просто задумался как демонстрационная/примерная реализация, и, глядя на код, он довольно непригоден для такого рода существования, его единственный объект-экземпляр с прямыми перехватами ко всему в окне. Вы можете отбросить его и просто использовать экранный слой с PDJS.getDocument, визуализировать страницы на холсты, как в примере, и добавить несколько функций пользовательского интерфейса, которые вам действительно нужны (например, масштабирование, переход на страницы), это можно сделать за несколько сотен строки кода. – yscik

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