PHP в работе с документами,которые сможет прочитать MSWord
Задача такова:
На сервере имеется шаблон в виде документа MSWord, который должны редактировать люди,не имеющие отношения к программированию.
В шаблон должны вставляться данные средствами РНР.
Например, жмем на ссылку, предоставляется на скачку файл ворда, в который уже должны быть вставлены данные из РНР.
Формат файла должен быть таким,чтобы его мог прочитать word (повторюсь ещё раз). Тем, кто знаком с хостинг-центром "РБК" должно быть это знакомо, когда выписывашь счет для оплаты через банк.
Очень нужна помощь.
Цитата: Denis Tyurin
Здравствуйте!
Задача такова:
На сервере имеется шаблон в виде документа MSWord, который должны редактировать люди,не имеющие отношения к программированию.
В шаблон должны вставляться данные средствами РНР.
Например, жмем на ссылку, предоставляется на скачку файл ворда, в который уже должны быть вставлены данные из РНР.
Формат файла должен быть таким,чтобы его мог прочитать word (повторюсь ещё раз). Тем, кто знаком с хостинг-центром "РБК" должно быть это знакомо, когда выписывашь счет для оплаты через банк.
Очень нужна помощь.
Задача такова:
На сервере имеется шаблон в виде документа MSWord, который должны редактировать люди,не имеющие отношения к программированию.
В шаблон должны вставляться данные средствами РНР.
Например, жмем на ссылку, предоставляется на скачку файл ворда, в который уже должны быть вставлены данные из РНР.
Формат файла должен быть таким,чтобы его мог прочитать word (повторюсь ещё раз). Тем, кто знаком с хостинг-центром "РБК" должно быть это знакомо, когда выписывашь счет для оплаты через банк.
Очень нужна помощь.
формат MS Office на сколько я помню был закрыт, хотя поступили данные что его открыли, так что или пиши плагинов к пхп или читай про формат и пиши сам
pear.php.net, phpclasses.org
Код:
MIME-Version: 1.0
Content-Location:
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="windows-1251"
<html xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:w=3D"urn:schemas-microsoft-com:office:word"
xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dwindows-1251">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link rel=3DFile-List href=3D"test.files/filelist.xml">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Print</w:View>
<w:GrammarState>Clean</w:GrammarState>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Tahoma";
mso-fareast-font-family:"Tahoma";}
@page Section1
{size:595.3pt 841.9pt;
margin:18.0pt 19.3pt 18.0pt 18.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"\041E\0431\044B\0447\043D\0430\044F \0442\0430\0431\043B\=
0438\0446\0430";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Tahoma";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;
width:100%;
}
td.br1{
border:1px solid black;
}
</style>
<![endif]-->
</head>
<body>
[content]
</body>
</html>
Content-Location:
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="windows-1251"
<html xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:w=3D"urn:schemas-microsoft-com:office:word"
xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dwindows-1251">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link rel=3DFile-List href=3D"test.files/filelist.xml">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Print</w:View>
<w:GrammarState>Clean</w:GrammarState>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Tahoma";
mso-fareast-font-family:"Tahoma";}
@page Section1
{size:595.3pt 841.9pt;
margin:18.0pt 19.3pt 18.0pt 18.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"\041E\0431\044B\0447\043D\0430\044F \0442\0430\0431\043B\=
0438\0446\0430";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Tahoma";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;
width:100%;
}
td.br1{
border:1px solid black;
}
</style>
<![endif]-->
</head>
<body>
[content]
</body>
</html>
вот те шаблон... в место [content] можешь вставить все что угодно (в пределах ХТМЛ) с помощью ПХП, единственное что требуется - это пред значением атрибутов добавить "3D", то есть, например, <table align=3D"250" style=3D"border:1px solid black"> итд во всех тегах....
формируй как ХТМЛ, запиши в файл и сохрани как *.doc ... или выдай на скачку указав:
Код:
header("Content-type: application/msword");
header("Content-Disposition: attachment; filename=somefile.doc");
header("Content-Disposition: attachment; filename=somefile.doc");
это не альбомный лист... для него шапка малость другая...
Заметка: тег <img> не будет отоброжать картинку, даже если в сурсе указать путь к ней полностью... для этого нужны определенные действия, а именно, прочитать содержимое картинки, вложить в конец документа указать ей разделитель и ID, а потом этот ID указать тегу <img>. Это я так))) вдруг печать нужно будет вставить)))
Ворд прекрасно понимает и txt и rtf, так зачем хранить шаблоны обязательно в dot?
Лучше PDF генерить...