Что нового

[Сеть, интернет] Работа с pdf.js

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Благодаря разработчикам Mozilla для свободного использования доступен pdf.js, который позволяет прямо в браузере просматривать файлы pdf.
Для браузера IE поддержка появилась, наверно, с версии 9, в 8 у меня не работает, а в 11 из Win 10 работает.

Ссылка: http://mozilla.github.io/pdf.js/

Там можно открыть демо-страницу, и скачать необходимые файлы

Скрипт:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
	$oIE = ObjCreate("Shell.Explorer.2")
	GUICreate("Embedded Web control Test", @DesktopWidth, @DesktopHeight, 1, 1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
	$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, @DesktopWidth - 10, @DesktopHeight - 10)
	GUISetState()
	GUISetState(@SW_MAXIMIZE)

	$oIE.navigate("http://mozilla.github.io/pdf.js/web/viewer.html")

	While 1
		$msg = GUIGetMsg()
		Select
			Case $msg = $GUI_EVENT_CLOSE
				ExitLoop
		EndSelect
	WEnd
	GUIDelete()
EndFunc   ;==>Example

Для того, чтобы IE, встроенный в GUI, работал с pdf.js, необходимо в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
нужно создать параметр DWORD (32 бита) с именем программы (без пути), например, скрипт.exe
В качестве значения параметра указывается значение, которое и будет создавать нужную эмуляцию. Для IE 11 я ставил 11001


А теперь суть вопроса:

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

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

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
WSWR
PDF документ грузится с использованием XMLHttpRequest, который не работает с протоколом file://.
Нужно поставить локальный WEB сервер и положить в корневой каталог сервера папки, web и build. После этого, можно загружать страницу viewer.html через локальный WEB сервер.
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Garrett [?]
PDF документ грузится с использованием XMLHttpRequest, который не работает с протоколом file://.
Нужно поставить локальный WEB сервер и положить в корневой каталог сервера папки, web и build. После этого, можно загружать страницу viewer.html через локальный WEB сервер.
Что-то как-то сложно...(
А когда открываешь демо-страницу, становится доступна кнопка "Загрузить", получается, файлы загружаются через сервер мозиллы?
действительно, отключил интернет - не работает.
Получается, тогда этот метод не подходит...


Добавлено:
Сообщение автоматически объединено:

Хм, нашел пример локального сервера размером в 60 kb...
Работает!

Еще бы подправить html, чтобы pdf открывался сразу в режиме презентации...
Непонятно еще, как прямо из скрипта управлять сменой файла, настройкой масштаба, может, формата страницы. Полноценный просмотрщик pdf не нужен.
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Теме ап, интересуют ответы на вопросы в посте выше
 
Верх