Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
AvnAvn
1

Задание ориентации страницы

23.05.2006, 15:32. Просмотров 2662. Ответов 6
Метки нет (Все метки)

При формировании отчетов по результатам работы .ASP
response.write ....
или при открытии страницы с подготовленным отчетом
response.clear
response.redirect "othet.rtf"
бывает необходимо изменить ориентацию листа при печати страницы (или другие параметры страницы).
Как автоматизировать процесс, чтобы пользователям каждый раз не изменять вручную?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2006, 15:32
Ответы с готовыми решениями:

Программное задание ориентации печати
Я вывожу текст на печать через CPrinterDC. Перед печать у меня появляется диалог для настроек...

Изменение ориентации страницы при печати
Здравствуйте! Подскажите, как можно реализовать изменение ориентации страницы в зависимости от...

Изменении ориентации страницы A4 в КОМПАС 3D V14
Доброго времени суток всем! При изменении ориентации страницы A4 в КОМПАС 3D V14, возникает вот...

Задание минимальной ширины и высоты страницы
Добрый день! Есть страница, на которой почти все элементы позиционированы абсолютно. Как задать...

Задание осмысленной ссылки на страницы multipage
Не могу найти внятное объяснение - как перемещаться по вкладкам MultiPage. Выражения типа ...

6
Alexey Spirin
1 / 1 / 1
Регистрация: 18.10.2007
Сообщений: 1,750
23.05.2006, 15:35 2
Точно не скажу, но вроде бы пока никак.

В новом стандарте CSS оно рводе бы есть, но его еще никакой броузер не поддерживает.
0
AvnAvn
23.05.2006, 15:59 3
Должно быть если не в одной из коллекций, то в Com - объекте на стороне клиента через пользовательский скрипт
Может такой вариант: записать параметры страницы в формируемый .rtf - файл
vb.net
1
2
3
Set objSrvHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
urlExec = [url]http://../othet.asp[/url] http:/othet.asp
Call objSrvHTTP.Open ("POST", urlExec, False)
или где-то в objSrvHTTP:
vb.net
1
2
3
4
5
objSrvHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
Dim objStream
 Set objStream = Server.CreateObject("ADODB.Stream")
 objStream.Type = 1    'adTypeBinary
 objStream.Open
или что - то добавить к objSrvHTTP.responseBody:
Visual Basic
1
2
3
 objStream.Write(objSrvHTTP.responseBody)
 Call objStream.SaveToFile(Server.MapPath("othet.rtf"), 2)
 objStream.Close()
bazile
66 / 42 / 68
Регистрация: 15.03.2007
Сообщений: 6,909
23.05.2006, 16:17 4
По моему rtf вообще не содержит параметров страницы. Только текст с форматированием. Ориентацию страницы можно в PDF задавать. Этот формат изначально заточен под правильную печать и переносимость. Вопрос только в том где взять нормальный компонент для работы с PDF из под ASP.
В html файле ориентацию страницы можно задать с помощью CSS правила
CSS
1
2
3
4
@media print
{
@page {size:landscape|portrait}
}
Но это скоре всего будет работать только в Mozilla/FireFox/Opera. MSIE это точно не поддерживает, у него есть собственная технология Print Templates. Описание можно найти в MSDN.
0
AvnAvn
24.05.2006, 11:50 5
1. Набрал тэг
HTML5
1
2
3
4
5
6
7
8
9
10
11
<style type="text/css" media="print 
@media print  {
              body {
                   font-family: times, serif;
                   font-size: 10pt;
                      }
              page{
                   size:landscape;
                        }
                    }
</style>
- в IE действительно ориентация страницы не изменяется, изменяется только шрифт
2. Для Printer.Orientation = 2 'vbPRORLandscape
не находит объект Printer.
Как понимаю в серверном коде мы можем управлять установками принтера только через формирование HTML - тэгов.
Значит, Printer.Orientation = нужно писать в клиентском скрипте.
В MSDN http://msdn.microsoft.com/library/de.../reference.asp http://msdn.microsoft.com/library/de.../reference.asp
нашел пример:
HTML5
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
<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.
 &
bazile
66 / 42 / 68
Регистрация: 15.03.2007
Сообщений: 6,909
24.05.2006, 14:31 6
По моему строка <?import implementation="#default" namespace="IE должна быть в начале документа, а не внутри тегов <script>
0
AvnAvn
24.05.2006, 15:36 7
Изменил код, осталось только:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<?import implementation="#default" namespace="IE 
<SCRIPT language="JScript 
function Init()
{
PrintNow();
Printer.Orientation = 2;    //vbPRORLandscape
window.alert(Printer.Orientation);
//Эти строки добавил дополнительно для проверки автовывода на печать:
    Printer.startDoc; //на скобки: ("A print job"); выдавал ошибку "объект на подддерживает это свойство или метод", поэтому прописал без скобок
    Printer.printPage; //и на эти параметры тоже: ("Page1");
    Printer.stopDoc;
}
</SCRIPT>
Теперь ошибок нет, сообщение window.alert(Printer.Orientation);
подтверждает значение, которое устанавливаем в Printer.Orientation,
но в Файл/Параметры страницы, в свойствах принтера и в предварительном просмотре ориентация остается прежней. (печати тоже не происходит). Проверил команду "Printer.showPrintDialog();", представленную в MSDN - пишет, что объект не поддерживает такого метода или свойства, а на "Printer.showPrintDialog;" ошибок не выдает, но и диалог печати тоже не выводит.
Почему установки Printer. ни на что не влияют и где копать?
24.05.2006, 15:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2006, 15:36

Получение ориентации
Добрый день! Хочу узнать ориентацию, написал функцию: public void getOrintashion () {...

Разные устройства/ориентации
Здравствуйте. Каким образом реализуются разные разметки UI для разных устройств и ориентаций? Как,...

Смена ориентации координат
как сделатьтак, чтобы вертикалинвя координата была направленна не вниз, а вверх?


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

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

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