Internet Explorer PDF Reader - PullRequest
       0

Internet Explorer PDF Reader

3 голосов
/ 05 декабря 2011

Я прошу прощения за длину этого вопроса, но требуется пояснение.

Справочная информация:

Я работаю над внутренним веб-приложением, которое будет отображать PDF в iframe. Adobe Reader X предлагает «Режим чтения» для отображения PDF в браузере. Это удаляет оболочку и добавляет окно меню в конец PDF, когда мышь находится над «средним центром». В версиях до X вы могли использовать JavaScript для изменения пунктов меню панели инструментов.

Что мне нужно:

Мне нужно отобразить PDF в «Режиме чтения» И удалить все пункты меню. Компьютеры, на которых запускается это приложение, - это, по сути, киоск, буквально компьютер, монитор и мышь. Нет принтеров, нет клавиатуры, нет другой интерактивности.

Мой вопрос такой: Как я могу загрузить PDF для чтения в Internet Explorer и отключить все взаимодействия, кроме прокрутки. То есть без меню, без контекстного меню и без «теневой панели», когда нижний центр наведен поверх. Я искал альтернативы Adobe, и есть несколько отличных, но те, которые я обнаружил, которые имеют плагин для браузера, не имеют плагин для IE.

Если кто-то знает способ загрузки содержимого PDF, это был бы еще лучший маршрут.

Дополнительная информация:

Если это поможет, пока он создается для Internet Explorer, веб-страница будет загружена в форму окна, которая является просто полноэкранным элементом управления браузером.

Другие вещи, которые я пробовал:

Я также попытался расположить прозрачный iFrame поверх pdf iFrame, покрывая только отображаемый контент, но оставляя полосы прокрутки без изменений. Это работало отлично, если я загрузил что-нибудь, но PDF. Если я загружал любой другой веб-сайт, он работал как ожидалось (за исключением того, что колесо прокрутки, конечно, не прокручивает веб-страницу). Если PDF был загружен, то все, что появилось бы, это белый квадрат. Используйте панель инструментов dev, чтобы удалить прозрачный iFrame, и PDF выглядит хорошо.

Ответы [ 2 ]

4 голосов
/ 05 декабря 2011

Я нашел хорошее частичное решение.Продукт под названием PDFObject .

Используя его, я могу добавить следующий JavaScript на мою страницу:

function embedPDF() {
        var myPDF = new PDFObject({
            url: 'PathToPdf.pdf',
            pdfOpenParams: { 
                scrollbars: '1',
                toolbar: '0',
                statusbar: '0',
                messages: '0', 
                navpanes: '0' 
            }
        }).embed('DivToLoadPdfInto');
    }

    window.onload = embedPDF;

Это будет встроить PDF в div и удалитьпанель инструментов, строка состояния, сообщение, навигационные панели, но все еще позволяют полосы прокрутки.Это предотвращает появление меню теневого ящика, и это здорово!

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

Редактировать:

Хороший ресурс для параметров URL можно найти здесь .

1 голос
/ 06 декабря 2011

Хорошо, так что я пришел к окончательному решению.

Потребности:

  1. Загрузить PDF в iFrame в «Режиме чтения», но безтеневая полоса
  2. Контекстное меню PDF должно быть отключено

Решение некоторых проблем легко с некоторыми оговорками.Установите источник iFrame как «pathToPdf / document.pdf # toolbar = 0 & navpanes = 0».Предостережения здесь заключаются в том, что (по крайней мере, в IE), когда это сломается, браузер должен быть закрыт и снова открыт для работы снова.Итак, что может его сломать?

  • Пользователь щелкает правой кнопкой мыши и открывает кнопки панели навигации.
  • Пользователь нажимает кнопку выхода на клавиатуре.

Веб-страница загружается в браузер, контролирующий форму окна, и, к счастью, однажды сломанная там, она прекрасно работает без закрытия и повторного открытия.Может все еще быть проблемой для просматриваемого PDF.Мне не нужно беспокоиться о клавише escape, потому что приложение работает на KIOSK (в основном), и здесь нет клавиатуры, только мышь.

Отключение контекстного меню оказалось самым труднымвещь которую нужно сделать.Элемент управления веб-браузера имеет свойство «IsWebBrowserContextMenuEnabled», которое при значении «False» отключает контекстное меню для браузера.Возможно, потому что Adobe Reader является плагином, это не влияет на PDF.В Reader X нет настроек реестра (которые я смог найти), метода JavaScript или общих настроек, которые отключают контекстное меню.

Я был готов сдаться, когда что-то вспомнил.Это киоск, и нет необходимости в правой кнопке мыши.Итак, решение;измените реестр и отключите правый клик для внутренней ОС.Для этого просто откройте regedit и перейдите:

  • HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer
  • Найдите (или создайте, если его там нет) ключ DWORDс именем "NoViewContextMenu".
  • Значение 1 отключит щелчок правой кнопкой мыши, 0 включит.

Сводка:

  1. Используйте "pathToPdf / document.pdf # toolbar = 0 & navpanes = 0"
  2. Отключить щелчок правой кнопкой мыши в реестре Windows

Редактировать:

TheВзлом реестра только отключает правую кнопку мыши в Windows Explorer.Нам не повезло в поиске хорошего программного решения, поэтому нам остается либо написать собственные драйверы мыши, либо просто открыть мыши и удалить механизм физического запуска.

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