|
|
|
| Вопрос такой: возникла необходимость сохранения информации в документ Word. Нашла в инете такой способ
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=document_name.doc");
echo "<html>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1251\">";
echo "<body>";
echo "<b><center>ляляляляля </center></b>";
echo "<br>";
echo "</body>";
echo "</html>";
|
С текстом все работает прекрасно, но вот в чем проблема. Есть в базе картинки, они хранятся в полях blob, как мне из этих полей сохранить их в ворд таким способом? | |
|
|
|
|
|
|
|
для: tonechka
(25.04.2011 в 16:09)
| | Придется использовать какой-то более сложный формат, либо rtf, либо word... | |
|
|
|
|
|
|
|
для: cheops
(25.04.2011 в 16:13)
| | в смысле??? | |
|
|
|
|
|
|
|
для: tonechka
(25.04.2011 в 16:50)
| | Вы скармливаете Word HTML-код, все хорошо до тех пор, пока документ один, как только документов становится много, а это всегда так, когда появляются изображения - они в HTML всегда оформляются в виде отдельного документа скормить Word один файл не получится, придется пользователю отдельно перетаскивать HTML-документ и все сопутствующие ему изображения. Чтобы упаковать изображения в один документ с текстом придется использовать какой-то другой формат, который понимает Word - rtf или родной doc. Иначе вам изображения придется поставлять отдельно. Word откроет HTML-страницу с отдельным изображением, но вы не сможете отдать пользователю документ по одной ссылке (только если упакуете все в архив и заставите пользователя этот архив разархивировать). | |
|
|
|
|
|
|
|
для: cheops
(25.04.2011 в 17:05)
| | А как мне тогда самой например задать путь, куда бы сохранять этот документ, и чтоб одновременно с ним сохранять туда же картинки??? Так ведь работает только) | |
|
|
|
|
|
|
|
для: tonechka
(25.04.2011 в 18:27)
| | В рамках HTTP это невозможно, так как в этом протоколе один документ - один файл. Вы можете указать лишь один файл, и если вы используете HTML, изображения не могут быть упакованы в этот же файл, для них выделяется отдельный документ. Т.е. предоставить можно только несколько ссылок/загрузок (отдельно под HTML-документ и отдельно под изображения). | |
|
|
|
|
|
|
|
для: tonechka
(25.04.2011 в 16:09)
| | добрый день, тоже промучился с этим вопросом какое-то время. но все таки получилось у меня в один файл все запихнуть причем на основе html,
нужно просто этот файл разбить на части впихнуть прямо в него вот в такой раздел с base64 кодом картинки
------=_NextPart_01CBF654.59D99AB0
Content-Location: file:///C:/2682D6CE/tempfolder.files/image001.jpg
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
nHlNNOcBySy2hCFHc8dknZIWhHQRLwRpz1S 5H1sZE7nuQ8YXQ
quWFjebSbcpNfjFmXU666h595mNHUSG2Gle KMz9OXAr9lzkoP7WOj3IWrrty4EwOmv5Cxj QsdVEX
XctdYYVTKjXKz8Wp12CEuJ5/DpSpwOKWOK3FIPFSWhzC32JBZjMHg4VqWQV uqA5OkADkrYDckJA/
9D/AdUx6o6FdWirVdlvUBg+pWxc1W00YyrdfrV+XxCUiqSriuqpPyYjJdjp5OyWYUaNGaDquKW n2
/SQdugdTMGXc5duLCmBu2Xo9fti3chRcdCuX Bft4txRApykSY0cuS3ZC0JS3JqU6Q46oeR0 lPjab
W6+lSfbW9qGzdqs1LWnjrHc6jxKBifUhZloR4... и т.д.
|
вот такой раздел со списком прикрепляемых файлов
------=_NextPart_01CBF654.59D99AB0
Content-Location: file:///C:/2682D6CE/tempfolder.files//filelist.xml
Content-Transfer-Encoding: quoted-printable
Content-Type: text/xml; charset=\"utf-8\"
<xml xmlns:o=3D\"urn:schemas-microsoft-com:office:office\">
<o:MainFile HRef=3D\"../index.htm\"/>
<o:File HRef=3D\"themedata.thmx\"/>
<o:File HRef=3D\"colorschememapping.xml\"/>
<o:File HRef=3D\"image001.jpg\"/>
<o:File HRef=3D\"filelist.xml\"/>
</xml>
|
и такой же раздел с самой страницей в html в которой у вас будет такой тег с картинкой
<img src=3D"tempfolder.files/image001.jpg" />
|
+ еще пару специальных разделов
, все это обозвать док, хотя на деле это будет веб архив mht, кстати проще всего в ворде сохранить в mht страницу с нужным вам форматированием и ее использовать как шаблон.
PS чтобы ворд правильно читал документы в формате html, нужно перед значением каждого атрибута писать 3D, то есть не
http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1251\"
|
как у вас в примере, а
http-equiv=3D\"Content-Type\" content=3D\"text/html; charset=Windows-1251\"
|
PSS кстати еще можно другим способом впихнуть картинку в один файл с html, для этого нужно использовать в php COM-объекты Office и тогда у вас получится настоящий doc, но этот способ будет доступен только в том случае если у вас сервер работает под windows и там установлены эти COM-библиотеки то бишь установлен Office. Так что проще и универсальней использовать то что я предложил сначала | |
|
|
|
|
|
|
|
для: parczynski
(27.04.2011 в 13:21)
| | Спасибо большое)))!!! я правда пока намучалась, решила в пдф сохранять, с помощью FPDF)))) | |
|
|
|
|
|
|
|
для: tonechka
(25.04.2011 в 16:09)
| | используйте какуюто готовую библиотеку) не напрягайте мозг) | |
|
|
|