Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP: формирование DOC-документа с изображениями (jpg)
 
 автор: tonechka   (25.04.2011 в 16:09)   письмо автору
 
 

Вопрос такой: возникла необходимость сохранения информации в документ 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, как мне из этих полей сохранить их в ворд таким способом?

  Ответить  
 
 автор: cheops   (25.04.2011 в 16:13)   письмо автору
 
   для: tonechka   (25.04.2011 в 16:09)
 

Придется использовать какой-то более сложный формат, либо rtf, либо word...

  Ответить  
 
 автор: tonechka   (25.04.2011 в 16:50)   письмо автору
 
   для: cheops   (25.04.2011 в 16:13)
 

в смысле???

  Ответить  
 
 автор: cheops   (25.04.2011 в 17:05)   письмо автору
 
   для: tonechka   (25.04.2011 в 16:50)
 

Вы скармливаете Word HTML-код, все хорошо до тех пор, пока документ один, как только документов становится много, а это всегда так, когда появляются изображения - они в HTML всегда оформляются в виде отдельного документа скормить Word один файл не получится, придется пользователю отдельно перетаскивать HTML-документ и все сопутствующие ему изображения. Чтобы упаковать изображения в один документ с текстом придется использовать какой-то другой формат, который понимает Word - rtf или родной doc. Иначе вам изображения придется поставлять отдельно. Word откроет HTML-страницу с отдельным изображением, но вы не сможете отдать пользователю документ по одной ссылке (только если упакуете все в архив и заставите пользователя этот архив разархивировать).

  Ответить  
 
 автор: tonechka   (25.04.2011 в 18:27)   письмо автору
 
   для: cheops   (25.04.2011 в 17:05)
 

А как мне тогда самой например задать путь, куда бы сохранять этот документ, и чтоб одновременно с ним сохранять туда же картинки??? Так ведь работает только)

  Ответить  
 
 автор: cheops   (25.04.2011 в 19:01)   письмо автору
 
   для: tonechka   (25.04.2011 в 18:27)
 

В рамках HTTP это невозможно, так как в этом протоколе один документ - один файл. Вы можете указать лишь один файл, и если вы используете HTML, изображения не могут быть упакованы в этот же файл, для них выделяется отдельный документ. Т.е. предоставить можно только несколько ссылок/загрузок (отдельно под HTML-документ и отдельно под изображения).

  Ответить  
 
 автор: parczynski   (27.04.2011 в 13:21)   письмо автору
 
   для: 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. Так что проще и универсальней использовать то что я предложил сначала

  Ответить  
 
 автор: tonechka   (27.04.2011 в 15:28)   письмо автору
 
   для: parczynski   (27.04.2011 в 13:21)
 

Спасибо большое)))!!! я правда пока намучалась, решила в пдф сохранять, с помощью FPDF))))

  Ответить  
 
 автор: sl1p   (27.04.2011 в 14:58)   письмо автору
 
   для: tonechka   (25.04.2011 в 16:09)
 

используйте какуюто готовую библиотеку) не напрягайте мозг)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования