То, что MS Word и MS Excel умеют понимать HTML, ни для кого не секрет. Это вообще очень удобно делать живой экспорт документов с веб-страниц в формат Микрософта.
Хули тут, взял да послал два хедера:
header('Content-Type: application/msword');
header('Content-Disposition: attachment; filename="export_file_name"');
Но вот однажды привередливый клиент начал рвать на себе волосы, дескать, с какого это перепугу страница Экспортируется в Ворд, но не видно самого листа, полей документа, Ворд как-то не так выглядит.
Оказалось, документ экспортируется в Word по дефолту в Web Layout, когда всё видно на бесконечном белом фоне:
И в принципе клиент прав, ему этот экспорт нужен для печати, а границ страницы не видно, неаккуратненько как-то.
Проблема решается парой действий.
1. Тег <html> в шаблоне заменяем на
<html xmlns:o='urn:schemas-microsoft-com:office:office'
xmlns:w='urn:schemas-microsoft-com:office:word'
xmlns='http://www.w3.org/TR/REC-html40'>
2. В <head></head> шаблона добавляем строки:
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Print</w:View>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</xml><![endif]-->
(для чего нужна предпоследняя строка догадайтесь сами, это домашнее задание)
И о чудо! Документ теперь экспортируется в Print Layout!
Приятных всем снов.
пятница, 7 декабря 2007 г.
пятница, 28 сентября 2007 г.
Indexed vs RGB
Сегодня, дорогие мои любители Web2.0'ля на ночь, я расскажу вам, как работает скаллинг изображений в разных браузерах.
Берём исходник. Это GIF 84х98. Картинка имеет особенность. Три шарика на ней не залиты оранжевым цветом, они раскрашены в небольшой мелкий горошек с жёлтенькими вкраплениями. Эту картинку мне надо использовать в нескольких частях страницы. Поэтому где-то я вставляю её в полный размер, а где-то хочу изменить ей размер, задав нужное свойство у тега <img>
Итак, исходник. Для начала поиграемся с ним в Адоби Фотомастерской. Вот что мы имеем:
Замечу лишний раз, что моя буква "Х" с шариками - это GIF в режиме "Indexed color", как это обычно с такими картинками и бывает. Теперь я уменьшу её в стандартном диалоге Image size. Результат:
Боже мой! Наши шарики стали похожи на иссохшиеся, затвердевшие куски севернокорейского мороженого! Посмотрите, в каждом из шариков образовались ненужные жёлтые вкрапления, заметные глазу.
Тут к доктору не ходи, многие знают, как на самом деле надо поступать в данной ситуации. Перед изменением размера картинки её надо перевести в режим RGB (Mode->RGB). Тогда всё станет на свои места:
О чудо! Шарики остались оранжевые.
Это была теория. Теперь поговорим, какое место данный случай может занять при вёрстке шаблонов сайта. Дело в том, что все браузеры работают с картинками index-color'а по-разному. Смотрите различия (смотрите нижние картинки, результатные):
Уу-у-у-ух! Майкрософт подкачал как обычно, Фирфокс с чего-то вдруг тоже. А вот Опера и Сафари, которыми, как скажут 99% людей, "никто не пользуется", с задачей справились. Наверное, поэтому ими никто и не пользуется :)
Решения описанной мною проблемы каждый пусть придумает себе сам, это будет домашнее задание такое. Лично я на всё махнул ногой и без задней мысли стал использовать в шаблоне две разных картинки. Одну побольше, другую поменьше. Ха-га, ха-га...
Берём исходник. Это GIF 84х98. Картинка имеет особенность. Три шарика на ней не залиты оранжевым цветом, они раскрашены в небольшой мелкий горошек с жёлтенькими вкраплениями. Эту картинку мне надо использовать в нескольких частях страницы. Поэтому где-то я вставляю её в полный размер, а где-то хочу изменить ей размер, задав нужное свойство у тега <img>
Итак, исходник. Для начала поиграемся с ним в Адоби Фотомастерской. Вот что мы имеем:
Замечу лишний раз, что моя буква "Х" с шариками - это GIF в режиме "Indexed color", как это обычно с такими картинками и бывает. Теперь я уменьшу её в стандартном диалоге Image size. Результат:
Боже мой! Наши шарики стали похожи на иссохшиеся, затвердевшие куски севернокорейского мороженого! Посмотрите, в каждом из шариков образовались ненужные жёлтые вкрапления, заметные глазу.
Тут к доктору не ходи, многие знают, как на самом деле надо поступать в данной ситуации. Перед изменением размера картинки её надо перевести в режим RGB (Mode->RGB). Тогда всё станет на свои места:
О чудо! Шарики остались оранжевые.
Это была теория. Теперь поговорим, какое место данный случай может занять при вёрстке шаблонов сайта. Дело в том, что все браузеры работают с картинками index-color'а по-разному. Смотрите различия (смотрите нижние картинки, результатные):
Уу-у-у-ух! Майкрософт подкачал как обычно, Фирфокс с чего-то вдруг тоже. А вот Опера и Сафари, которыми, как скажут 99% людей, "никто не пользуется", с задачей справились. Наверное, поэтому ими никто и не пользуется :)
Решения описанной мною проблемы каждый пусть придумает себе сам, это будет домашнее задание такое. Лично я на всё махнул ногой и без задней мысли стал использовать в шаблоне две разных картинки. Одну побольше, другую поменьше. Ха-га, ха-га...
Подписаться на:
Сообщения (Atom)