Контроль PDF с помощью JavaScript в веб-браузере - PullRequest
4 голосов
/ 20 июля 2011

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

Ответы [ 5 ]

2 голосов
/ 20 июля 2011

Вам нужен загрузчик PDF для загрузки и запуска? Если нет, вы могли бы написать внутренний скрипт / программу для рендеринга указанной страницы в виде изображения (GIF, PNG и т. Д.) С определенным уровнем масштабирования. Тогда ваша главная страница может загрузить изображение с чем-то вроде:

<img src="render_pdf?page=4&zoom=150">

Значение src можно контролировать с помощью javascript, чтобы сделать его динамичным.

Чтобы преобразовать PDF в изображение в вашем скрипте render_pdf, вы можете использовать ghostscript или библиотеку для изображений, например ImageMagick или GD, в зависимости от используемой вами серверной технологии.

2 голосов
/ 20 июля 2011

не легко.Все зависит от того, что используется для отображения PDF в браузере.Не во всех браузерах есть встроенные средства просмотра PDF, а также существует множество различных внешних средств просмотра (например, Acrobat, Fox-It и т. Д.).Насколько я знаю, есть

. Вы можете попробовать взломать URL-адрес следующим образом:

http://example.com/somedocument.pdf#page=5

, но это может работать только в Acrobat, как описано здесь: http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf

2 голосов
/ 20 июля 2011

Вы не можете / не должны делать это во фрейме, но вы можете создать <object> на своей странице, который будет управляться с помощью JavaScript API.

http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/js_api_reference.pdf

0 голосов
/ 08 января 2013

Как отметил Джордан, вы должны использовать тег <object> для встраивания PDF. Затем в самом PDF-файле вам необходимо встроить Javascript для обработки передаваемых вами сообщений, таких как:

if(!this.hostContainer.messageHandler) this.hostContainer.messageHandler = new Object();
this.hostContainer.messageHandler.onMessage = handleMessage;
function handleMessage(msg) {
    // do stuff here
}

Наконец, в вашем HTML JS вы передаете сообщения с:

document.getElementById('yourpdfobject').postMessage('some message or array');
0 голосов
/ 20 июля 2011

Взгляните на jsPDF - он может не выводить .pdf на экран в IE6 и IE7 из-за ограничений с данными, но это хорошее начало. Я не понимаю, почему это не может быть встроено в iframe.

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