PHP и MS WORD

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
ArtemOFdv
Сообщения: 3

PHP и MS WORD

Сообщение ArtemOFdv » Вт фев 25, 2014 9:00 am

Не так давно столкнулся с задачей, нужно было формировать word-овсккие документы средствами PHP. Пользователь заполняет форму нажимает кнопочку и получает готовый документ. Единственное условие - никаких COM, многобайтных библиотек. Нашел наиболее красивое и удобное решение. Я надеюсь ни для кого не секрет, что word отлично понимает html верстку, в т.ч. и стили CSS. Вот я и решил попробовать формировать html-файл с нужным результатом и отдавать его пользователю.
Получилось...
Отдать пользователю элементарно, достаточно установить вот такие header-ы

Код: Выделить всё

    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    header('Content-Type: application/vnd.ms-word; charset=utf-8');
    header("Content-Disposition: attachment;filename=DO-14Mnt-".date("d-m-Y")."-export.doc");
    header("Content-Transfer-Encoding: binary ");
 

где header("Content-Disposition: attachment;filename=DO-14Mnt-".date("d-m-Y")."-export.doc"); - собственно имя файла.
Чтобы установить поля достаточно добавить в наш файл код CSS:

Код: Выделить всё

@page WordSection1
    {size:595.3pt 841.9pt;
    margin: ${mt}cm ${mr}cm ${mb}cm ${ml}cm;
    mso-header-margin:35.45pt;
    mso-footer-margin:35.45pt;
    mso-paper-source:0;}
div.WordSection1
    {page:WordSection1;}
 

где margin: ${mt}cm ${mr}cm ${mb}cm ${ml}cm; - поля страницы верх, право, низ, лево.
Дальше можно вставлять параграфы, спаны, таблицы и прочее.
Но вот возникла проблема с вставкой картинки. Указывая картинку с обычным URL-ом в src, при открытии документа word тут же спрашивает пользователя о загрузке не хватающих элементов. Нажимаешь "ДА" картинки есть, ну а "НЕТ", значит нет. Так вот вопрос есть ли возможность избежать появления этого окошка, чтобы картинки либо автоматом подгружались, либо как то внедрялись, base64, почему-то, word отказывается понимать.
Реклама

Вернуться в «PHP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость