Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> предварительный просмотр печати, по типу window.print() как-то можно? 
V
    Опции темы
kulibin
  Дата 31.1.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Привет!
Народ, помогите пожалуйста полному валянку по части javascript написать строчку кода smile.
Мне нужно, чтобы при открытии странички она сразу в предварительном просмотре открывалась.
Вот например:
Код

<body onload="javascript:window.print()">

По типу этого что-то. Только этот код сразу открывает окно настройки принтера, количество копий и т.п. - а мне нужно чтобы предварительный просмотр печати открывался.
Собственно задача у меня состоит в следующем: мне из VB6 нужно сделать печать отчётов в виде html. Достаточно всё просто и получиться должно очень красиво. Но документ сразу должен в просмотре открываться - иначе это не будет выглядеть профессионально.
Там наверное могут быть варианты, что какой-то код может работать только в IE - мне это не страшно. Я сам из программы формирую отчёт в виде файла html и сам же и открываю его в IE - так что мне других браузеров и не нужно.
Помогите пожалуйста кто знает - обыскал всё что мог, целый день убил бестолку.

Это сообщение отредактировал(а) kulibin - 31.1.2006, 21:23
PM MAIL WWW ICQ   Вверх
12345c
Дата 1.2.2006, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Легко это не получится - в комадах execCommand - подобия PrintPreview, к сож., не значится. См. http://msdn.microsoft.com/library/default....execcommand.asp

Вместо того предлагают сделать dll, которая будет способна выполнить превью. Только и всего. См. http://msdn.microsoft.com/library/default....nttemplate2.asp


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Ciber SLasH
Дата 1.2.2006, 03:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Вот тут есть IE-шная фича, с помощью которой можно рулить принтеровскими штуками: Print Templates
Но я что-то так и не разобрался, испробовал кучу вариантов, но IE упорно говорит, что разрешение отключено (access denied).
Ещё на ту же тему, но с большим количеством примеров: Printing Templates Guide
Этот ман мне тоже не помог, везде одна и та же ошибка выскакивает "access denied".
В гугле что-то тоже нифига не нашёл по поводу того как избавиться от ошибки "access denied", хотя многие тоже наступили на эти грабли...
PM   Вверх
kulibin
Дата 1.2.2006, 05:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: 3



Нашол я другой, более подходящий мне способ на VB.
Для тех, кому интересно на яве - вот нашол код:

Код

<!--
function printPreview()
{
 var browserStub = '<OBJECT ID="webBrowser" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
 document.body.insertAdjacentHTML('beforeEnd', browserStub);
 webBrowser.ExecWB(7, 1);
 webBrowser.outerHTML = '';
 window.close();
}
-->



Это сообщение отредактировал(а) kulibin - 1.2.2006, 05:35
PM MAIL WWW ICQ   Вверх
12345c
Дата 1.2.2006, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Что-то он не работает - вставил
Код
<script>function printPreview()
{
 var browserStub = '<OBJECT ID="webBrowser" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
 document.body.insertAdjacentHTML('beforeEnd', browserStub);
 webBrowser.ExecWB(7, 1);
 webBrowser.outerHTML = '';
 window.close();
}</script><body>77777777777777777
, и он даже 77777 не показывает (IE6, XP SP2).
Покажите источник.

Работает - была ошибка в конце в теге. Но процесс браузера виснет при попытке выйти из превью нажатием Close.

Это сообщение отредактировал(а) 12345c - 1.2.2006, 13:21


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
dstorm81
Дата 1.2.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



могу предположить что синтаксис у тебя не правильный
попробуй вместо
function q()
{
}

сделать так
sub q()


end sub


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
12345c
Дата 1.2.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Стало работать при закомментировании 2 последних строчек:
Код
<script>function printPreview(){ var browserStub =
   '<OBJECT ID="webBrowser" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
 document.body.insertAdjacentHTML('beforeEnd', browserStub);
 webBrowser.ExecWB(7, 1);
 //webBrowser.outerHTML = '';
 //window.close();
}</script><body>77777777777777777<br><br>
    <span onclick=printPreview()>*****</span>


Также работает менее замутнённый код:
Код
<OBJECT
  ID="webBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</OBJECT>
<span onclick=webBrowser1.ExecWB(7,1); style=cursor:hand>Print Preview</span>


Ссылки по теме - ExecWB Method (MSDN), его параметры.

Это сообщение отредактировал(а) 12345c - 1.2.2006, 15:10


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.