Дизайн и Верстка => Всё о Html => Тема начата: Gleb от 20 Января 2003, 12:30:21
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Gleb от 20 Января 2003, 12:30:21
Столкнулся с проблемой: при определении @media print и описании стиля для печати не получил желаемого результата - возникла необходимость печати страницы на листе с альбомной ориентировкой. При этом надобы чтобы она задавалась сразу, а не пользователем. Возможностей представляется две: 1) Как-нибудь (не знаю как) добиться того, чтоб при печати по дефолту уже был нажат чекбокс "landscape" : очевидно значения нажато/ненажато = true/false для чекбокса хранятся в какой-то переменной у браузера (в какой?). Если идти по этому пути надо переназначить скриптом значения этих переменных. 2) Развернуть на 90град (против часовой) контент страницы - но как тогда производить постраничную (т.е. полистовую) разбивку? Подскажите пожалста как добиться желаемого результата и избежать возможных осложнений.
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Maniac от 20 Января 2003, 21:39:14
Знаешь, насколько я знаю, ты не можешь получать доступ к менюшкам браузера (и слава богу). Все, что ты можешь сделать - это вызвать окно печати. ВСЁ.
Теперь о твоей проблеме. ИМХО, есть смысл дать юзеру возможность скачать "версию для печати" в PDF. Результат будет максимально близок к желаемому
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Gleb от 23 Января 2003, 11:09:02
Согласен, что в ОБЩЕМ СЛУЧАЕ этот вариант наиболее предпочтителен. Однако взаимодействие посетителя (целевой посетитель - инженер-конструктор, руководитель пром. предприятия; отсюда - необходимость печати) с контентом ожидается таковым, что посетителю скорее будут интересны отдельные разделы и скорее даже страницы (вразноброс) поэтому делать .pdf со всем контентом не выгодно (большой и целиком от начала до конца никому не нужен) делать же .pdf на каждую станицу тоже муторно (не те объемы для работы (оплаченной фиксировано :( )). Поэтому оптимальное решение - действовать через CSS2, (весь сайт уже разработан и написан, только без оптимизации печати). То что я сделал сейчас под книжную ориентировку вполне даже приемлемо, и вроде значащий контент не теряется, однако удобнее это все делать на альбомной ориентировке. В этом и трабл.
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Xander от 23 Января 2003, 12:39:53
Gleb Вот вам ссылка на описание раздела CSS2, отвечающего за страничный вывод: http://www.w3.org/TR/REC-CSS2/page.html.
Цитировать
13.2.2 Page size: the \'size\' property
\'size\' Value: {1,2} | auto | portrait | landscape | inherit Initial: auto Applies to: the page context Inherited: N/A Percentages: N/A Media: visual, paged
В стандарте все это описано, а чтобы выяснять, как это работает в реальных браузерах, у меня не хватает времени, желания и бумаги.
А о результатах ваших экспериментов вы в эту же тему напишите потом, хорошо? На самом-то деле любопытно.
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Gleb от 29 Января 2003, 10:28:48
Решение проблемы "влоб" (работа только спинным мозгом, копчиковым отделом - то как я это сделал сразу):
на контент-пейджах:
1)
2)
3)
4)
5)
PAGE CONTENT
В файле стиля:
а) описание для экрана б) отключаем для экрана то что нужно только для принтера (см 4): .print { display: none; } в) определим тип устройства - С ПОСТРАНИЧНОЙ РАЗБИВКОЙ (ПРИНТЕР) и даём описание станицы для него: @media print { BODY, td, a, .listhead, .listitem { font-family: "Times New Roman", Times, serif; } г) скрипты для экрана отключаем для принтера (см п. 2 и 3): .script {display: none;} д) выводим скрипты для принтера с нужным нам форматированием: .print {display: inline; font-family: Verdana, Arial, Helvetica, sans-serif;} е) все содержимое страницы сдвигаем для принтера так, чтоб "ушла" левая менюшка и как раз страница по ширене листа получается .all {position: absolute; left: -195px;} }
Все работает нормально.
если заменяем в стиле пункты в-е на
@media print { BODY, td, a, .listhead, .listitem { font-family: "Times New Roman", Times, serif; } .script {display: none;}
а это именно то, что написано в родной спецификации CSS2, последняя строка не воспринимается! Как говорится ЗДЕСЬ ВАМ НЕ ТУТ
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Xander от 29 Января 2003, 15:14:26
Gleb А вы уверены, что надо писать именно
page: {size: landscape}
а не
@page { size: landscape; }
(как написано в стандарте)?
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Гость от 30 Января 2003, 09:55:08
Секунду!
@page { size: landscape; }
пишется в
@media print { \\здесь\\ }
те @media print{ @page { size: landscape; } }
или указание @page {size: landscape;} само по себе приметяется как @media print ? те @media print { \\наше описание\\ } @page {size: landscape;}
На самом деле я уже проверил оба варианта, оба не работают ни в Ie 5, ни в Скапе и Мозе, ни в Опере 6 (а в ней и первый вариант оформления не срабатывает - не позиционирует она блок абсолютно, и всё тут).
Я вот что думаю: пока я довольно смутно себе представляю что это за обьект такой \\page\\ и как с ним обращаться? Считается ли, что это все между и ? Тогда ему может мешать описание
?
Вобщем при первом знакомстве с печатью я слегка префигел: толи от СВОЕЙ тупости, толь от того, что кто-то очень постарался мне её показать; так что пламенный привет коллективам w3c и разработчиков браузеров (правда последние похоже находятся в ситуации, аналогичной моей.... хотя все равно странно - вроде специффикации пишутся именно для их служебного пользования, а для нас, юзеров в этой области, должны предназначаться документы категории учебников)
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Gleb от 30 Января 2003, 10:09:00
или все и из-за того, что страницы на таблицах ? таблицу повернуть вроде можно, а то что вне её? можно ли повернуть блок ? зы пред месага - это я был
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Xander от 30 Января 2003, 11:23:42
мне уже самому интересно стало. Ладно, попорчу сегодня немного бумаги, и скажу, как оно.
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Gleb от 31 Января 2003, 10:46:41
Да зачем портить бумагу: на бумаге все также как в броузере в Print Prewiev.
На следующей неделе сайт возможно будет доступен в Web, применено начальное решение (книжная ориентировка) - можно будет посмотреть. Сейчас я уже думаю что альбомная не так необходима, однако факт тупиковой ситуации с альбомной остаётся фактом и найти решение или ошибку уже самоценно само по себе.
Xander Спасибо за участие и поддержку, изначально я закинул этот топик на 5 форумов аналогичной тематики, в 3-х из них - никакого отклика.
Название: Пага на печать: ориентировка листа; как задать по дефолту при печати landscape?
Отправлено: Xander от 01 Февраля 2003, 20:03:43
Gleb проверил: @media:print { @page { size: landscape; } } Опера 6.0 и Мозилла понимают правильно, IE 5.0 - как обычно...