Как разместить PDF-контент на веб-странице, которая также поддерживает javascript? ASP.Net решения, пожалуйста - PullRequest
1 голос
/ 09 марта 2009

первый вопрос, так что будьте нежны со мной и заранее спасибо за вашу помощь!

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

Я должен упомянуть, что это приложение не будет замечено широкой публикой, и у нас есть некоторые ограничения для наших пользователей (используйте только IE 5.5, такого рода вещи).

У меня есть существующее веб-приложение, которое я должен добавить.

В настоящее время страница aspx просматривается с некоторыми идентификаторами, переданными в виде строки запроса, и при загрузке страницы выполняется вызов бизнес-объекта, передавая объект Response страницы. Этот бизнес-объект захватывает содержимое байта PDF (с сервера sql через бизнес-объект) и, установив необходимые данные в заголовке, записывает данные байта PDF в объект Response. Пользователь видит PDF-файл, и с миром все в порядке.

Однако теперь у нас есть требование, что при переходе страницы к приложению будут получены байтовые данные в формате PDF, и в дополнение к их отображению мы отправим их в проприетарную систему, основанную на локальном веб-клиенте (мы уже делаем это с помощью Java-апплета другие точки в рабочем процессе приложения, и это работает).

Дело в том, что мне нужно (в зависимости от некоторых пользовательских настроек или другого) показать модальное диалоговое окно, когда пользователь переходит на страницу «Просмотр динамически сгенерированного PDF-документа», чтобы спросить, хочет ли пользователь отправить PDF в этот проприетарный система. Для этого мне нужно иметь возможность запускать клиентский javascript для вызова showModalDialog (использование showModalDialog удобно, потому что я могу поместить все вызывающие вещи апплета java и сам апплет java на эту одну страницу, которая отображается в виде модального диалога).

Проблема в том, что то, как мы показываем наш PDF в данный момент, не позволяет нам запускать javascript, поскольку все, что отправляется клиенту, это страница с кучей данных pdf и помеченная как таковая.

До сих пор я использовал IFrames (да, да, я знаю, вытекает из основ Люцифера) с src, динамически устанавливаемым по URL-адресу страницы отображения PDF плюс строка запроса, в которой нуждается эта страница. Это работало в том смысле, что я получил мой модальный диалог, показывающий, что это было здорово, и PDF-файл (который был чем-то, по крайней мере, что-то) в уютных маленьких двух дюймах в верхней части страницы, что было не так здорово: (

Я также пытался использовать тег объекта, но даже не знаю, с чего начать сортировку по «runat = server». Когда я пытаюсь сделать это на стороне клиента, я получаю объект требуемых ошибок в моем скрипте Java.

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

Да, и на тот случай, если вы не догадались: я не такой опытный веб-разработчик, как в WinForms.

Ответы [ 2 ]

1 голос
/ 09 марта 2009

Это сработало в том смысле, что я получил мой модальный диалог, который был великолепен, и PDF-файл (который был чем-то по крайней мере) в уютных маленьких двух дюймах вверху страницы

Затем увеличьте высоту iframe. Либо с помощью атрибута «height», если вы можете угадать разумный размер в пикселях, либо с помощью CSS, если вы хотите сделать что-то наподобие его на основе высоты страницы:

<iframe src="pdfscript?id=123" style="position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;"></iframe>

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

(И вы определенно не хотите установить плагин Acrobat из-за всех дыр в безопасности, которые в настоящее время предоставляют контроль над нашими рабочими столами российским хакерам. Спасибо Adobe.)

0 голосов
/ 09 марта 2009

пожалуйста, попробуйте что-то вроде этого:

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