02:27

Значит так, столкнулся с такой задачей:
Как вы знаете, в большинстве браузеров имеется возможность распечатать документ, но не имеются четкие стандарты на этот счет и фактически полностью отсутствует возможность настройки..
Сравнивал два наиболее популярных браузера - Опера (9.24.8816) и Internet Explorer (6.0.2900.2180), и на наглядном примере обнаружил существенные различие в границах "страницы для распечатки".
Единственный выход, который мне пришел в голову -это использовать индентификатор браузера, и взависимости от его значение подставлять соответствующий шаблон.

Вопрос: вероятно я далеко не первый, кому приспичило распечатывать страницу из браузера в фиксированном формате, поэтому какие методы решения этой проблемы на ваш взгляд самые рациональные?

Так же хотелось бы разобраться в устройстве индентификаторов..
Вот у Яши спрашивал -тот ссылочку дал - http://www.alex-novo.ru/ (без понятия, что это за сайт, но он печатает юзер-агента -что собственно нам и надо).
Соответсвенно он вернул:
1. Opera/9.24 (Windows NT 5.1; U; ru)
2. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRSPUTNIK 1, 8, 0, 17 HW; MRA 4.8 (build 01709); .NET CLR 2.0.50727)
3. Yandex/1.01.001 (compatible; Win16; I)
4. Mozilla/5.0 (compatible; Googlebot/2.1; +www.google.com/bot.html)

Третий индентификатор принадлежит, собственно, самому Яше, а 4й -Гуглу:)
А какие у вас браузеры/индетификаторы? И что означают эти множество буковок/цифорок в скобках? По какому принципу они расшифровываются?

Комментарии
18.11.2007 в 19:41

 
http://ru.wikipedia.org/wiki/User-Agent - вот тут, на мой взгляд, хорошо про User-Agent'ы.

А размеры полей при печати могут меняться вручную, так что тут вообще не на что ориентироваться :(
К тому же, пользователь может захотеть распечатать не на A4, а, скажем, A5 или B4. (Я сам так иногда делаю ^^)
Пожалуй, только делать верстку, которая будет нормально печататься на разных полях. Тут должен весьма пригодиться атрибут MEDIA для таблиц стилей )

Кстати, я сам однажды столкнулся с тем, что при печати web-страницы должен был фоном выводиться логотип на каждой странице в углу, но так и не придумал как это сделать (а проект, впрочем, достался не мне). Тоже интересно, если кто-нибудь подскажет ;)

P.S. Если хочешь поиграться, вот список (без повторов) всех User-Agent'ов, с которых скачивался @Diary.Client с 3 июня. =)
19.11.2007 в 03:45

L.P.M.
А размеры полей при печати могут меняться вручную, так что тут вообще не на что ориентироваться
Нуу.. Может ты и поменяешь размеры полей, ну еще скажем человек 10 поменяют.. из 1000.. Так что это такое дело, в любом случае абсолютное большинство на это замарачиваться не будет, а отдельным уни-юзверям можно кратенько написать, что корректно работает с полями по умолчанию, и в скобках указать, что это за поля..

К тому же, пользователь может захотеть распечатать не на A4, а, скажем, A5 или B4.
А это мне вообще уже не интересно -пусть копирует текст и как хочет форматирует тогды, а я буду придерживаться стандарта =)

Пожалуй, только делать верстку, которая будет нормально печататься на разных полях.
Собственно проблема заключается в распечатке блок-схемы (ну или подобных четко-фиксируемых элементов)..
Пожалуй начну с оптимизации для браузеров Опера (в частности 9 серия), а потом уже к IE перейду (ибо не люблю это чудо) и ко всем остальным (Лиса, собственно, скорее всего будет третьей).

P.S. Спасибо за список! :)
19.11.2007 в 03:48

Ах да, и еще, в статистиках (к примеру от ли.ру) указаны такие параметры как разрешение экрана, цвета, ОС -как их определить?
19.11.2007 в 12:02

 
 @web,
Нуу.. Может ты и поменяешь размеры полей, ну еще скажем человек 10 поменяют.. из 1000..
дефолты от версии к версии тоже меняются ;)

Ах да, и еще, в статистиках (к примеру от ли.ру) указаны такие параметры как разрешение экрана, цвета, ОС -как их определить?
а ты загляни в код счетчика ли.ру ;) сразу все станет ясно))
20.11.2007 в 05:30

L.P.M.
дефолты от версии к версии тоже меняются
Вот и буду шаблон подстраивать под версии %)

а ты загляни в код счетчика ли.ру сразу все станет ясно))
Хм.. Хорошая идея!)))
25.11.2007 в 00:49

Итак, заглянул значит я в коды счетчиков.. Нашел, собственно, как определять разрешение и т.п.
А теперь можете подсказать, как сделать все тоже самое, но с помощью PHP?
В мануале че-то там с редиректом намудрили -меня это не устроит -нужно знать разрешение (и все остальное) еще до загрузки страницы в браузер..
Есть идеи?
25.11.2007 в 01:48

 
нужно знать разрешение (и все остальное) еще до загрузки страницы в браузер..
Есть идеи?

Никак. Как ты понимаешь, разрешение экрана не является параметром, входящим в HTTP-запрос :) Приходится отдавать пользователю страничку с JS, который определит разрешение и переадресует уже куда надо.
И на этой же страничке должна быть видимая ссылка для поисковиков и для тех, у кого JS отключен...

Расширенная форма

Редактировать

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail