Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
stacey
1

Печать без предварительного вывода на экран

04.07.2011, 06:08. Просмотров 3500. Ответов 7
Метки нет (Все метки)

Здравствуйте!
Помогите, пожалуйста, решить проблему.
Необходимо распечатать набор карточек (внешний вид каждой для печати формируется asp-файлом с передачей параметров из БД) без их вывода на экран, то есть нажал кнопку на страничке со списком карточек - и они подряд посыпались на принтер.
Заранее большое спасибо за ответ!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2011, 06:08
Ответы с готовыми решениями:

Как отправить документ на печать без предварительного просмотра
Нужно распечатать информацию которая должна сразу отправиться на печать без предварительного...

Печать без вывода диалога выбора принтера
Задача такая. Нужно чтобы при нажатие на кнопочку печать, внешней обработки, открывается...

Запросы без вывода на экран
Здравствуйте! Нужна консультация. Можно ли, как и где прописать, чтобы при выполнении запроса...

Описание без предварительного определения типа
Не мог бы кто показать 2 примера: С предварительным описанием типов и без? Просто чуть запутался

Перехват input в console без вывода на экран
Как можно реализовать перехват ввода с клавиатуры в консоли, так чтоб текст не выводился на экран ?...

7
plys77
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63
04.07.2011, 10:23 2
Насколько я понимаю не получится. Вообще с принтером работа MSIE какая-то убогая
Если проект под Интранет - проще самим asp обращаться к принтеру. Ему ведь не обязательно стоять рядом с серваком, можно стоять и рядом с пользователем. А вот выбрать принтер и порулить настройками можно из браузера через те же asp.

Кстати, можно централизованно контролировать печать документов - может быть полезно для параноиков
0
stacey
04.07.2011, 11:40 3
А если упростить - пусть выводится новое окно, из которого без дополнительных запросов идет печать, затем в это же окно подгружаются новые данные, снова идет печать и так до тех пор, пока не будет исчерпан список документов в виде таблички.
Вот только нужна помощь с реализацией кода:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script language='JavaScript'>
function print_all()
{   
   var OpenWindow=window.open ('', 'newwin', '');   
   for (var i=0; i <document.all.t.rows.length; i++) 
   {
     var a=document.all.t.rows[i].cells[1].innerHTML;
     var b=document.all.t.rows[i].cells[2].innerHTML;
// !!!  загрузить в открытое окно файл 'pr.asp?a='+a+'&b='+b ?
// !!!  распечатать содержимое окна без доп. вопрсов юзеру ?
   }
// !!!  закрыть окно?
}
</script>
 
...
<a href='#' onClick='print_all()'><img border='0' src='img/1.gif' width=20 height=20></a>
....
plys77
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63
04.07.2011, 12:09 4
Все упирается в 'без дополнительных запросов'. Я не знаю как это сделать.
0
stacey
04.07.2011, 12:12 5
Хорошо, пусть с дополнительными вопросами, а как насчет всего остального?
plys77
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63
04.07.2011, 13:00 6
Например asp создает документы для печати 1.htm,2.htm,3.htm и сложит кучей на сервере.
Содержимое 1.htm:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
<script>
function print_()
{
 window.print();
}
function afterprint_()
{
 document.location.href='2.htm'
}
window.onafterprint = afterprint_;
window.onload = print_;
</script>
...
Содержимое 2.htm:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
<script>
function print_()
{
 window.print();
}
function afterprint_()
{
 document.location.href='3.htm'
}
window.onafterprint = afterprint_;
window.onload = print_;
</script>
...
Содержимое 3.htm:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
<script>
function print_()
{
 window.print();
}
function afterprint_()
{
 window.close();
}
window.onafterprint = afterprint_;
window.onload = print_;
</script>
...
Кошмар - запросы на печать выскакивают как черти из табакерки. Ладно хоть не каскадом
0
stacey
05.07.2011, 09:17 7
Нашла такой код:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<SCRIPT language='JScript'>
<?import implementation='#default' namespace='IE'>
function Init()
{
    switch (dialogArguments.__IE_PrintType)
    {
        case 'Prompt':
            if (Printer.showPrintDialog()) 
                DoPrint();
            break;
        case 'NoPrompt':
            DoPrint();
            break;
        case 'Preview':
        default:
            break;
    }
}
 
function DoPrint()
{
    if (Layout1.contentDocument.readyState == 'complete')
    {
        // This block is called when printing with user prompt
        // because the Print and Preview dialog boxes give time for
        // the content document to complete loading
        PrintNow();
    }
    else
    {
        // This block is usually called when printing without a user prompt.
        // It sets an event handler that listens for the loading of the content
        // document before printing. Sometimes, however, even without a user prompt,
        // the content document is loaded in time for the previous
        // block to execute.
        Layout1.contentDocument.onreadystatechange = PrintWhenContentDocComplete;
    }
}
 
function PrintWhenContentDocComplete()
{
    if (Layout1.contentDocument.readyState == 'complete')
    {
        Layout1.contentDocument.onreadystatechange = null;
        PrintNow();
    }
}
 
function PrintNow()
{
    firstPage = Printer.pageFrom;
    lastPage = Printer.pageTo;
    
    Printer.startDoc('A print job');
    
    for (i = firstPage; i <= lastPage; i++)
    {
        if (document.all('Page' + i))
            Printer.printPage('Page' + i);
        else
            alert('Print Error');
    }
            
    Printer.stopDoc();
}
</SCRIPT>
</HEAD>
 
<BODY onload='Init()'>
<IE:TEMPLATEPRINTER id='Printer'/>
...
Вроде бы здесь должно быть то, что надо - отображение диалогового окна. Но при выполнении IE выдает ошибку на строке
<?import implementation='#default' namespace='IE'>
Не могу понять, в чем дело и где конкретно можно отменить вывод диалога. Может быть, кто-то сможет помочь...
EugeneDan
0 / 0 / 0
Регистрация: 03.07.2011
Сообщений: 1
06.07.2011, 21:10 8
При нажатии на кнопку вызывается функция
Javascript
1
2
3
4
function printURL(sSRC, sQS){
  top.document.all.printableLink.href=sSRC + '?' + sQS;
  top.print();
}
где sSRC имя asp скрипта,
sQS параметры
На пример <img src='/myImage.gif' OnClick='printURL('/myscript.asp', 'img=2&test=3');'>
0
06.07.2011, 21:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2011, 21:10

Передать массив без предварительного создания переменной
Добрый день. Есть у меня вот такая функция: int _assert_array_equals(int *arr1, int *arr2,...

Инструкция процессора для инкремента диапазона памяти без предварительного чтения
Есть диапазон памяти, то есть массив, допустим int-ов, то есть в памяти подряд идут, к примеру, 100...

Заполнить одномерный массив случайными числами без указания диапазона и вывести на экран консольного вывода
Заполнить одномерный массив случайными числами без указания диапазона и вывести на экран...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru