пятница, 7 декабря 2007 г.

Print Layout vs Web Layout

То, что 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!



Приятных всем снов.

Комментариев нет: