PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): « 1 [2]

> Найдено сообщений: 27
pioneer Отправлено: 27 Февраля, 2013 - 22:19:43 • Тема: Работа с библиотекой PHPWord. • Форум: Вопросы новичков

Ответов: 4
Просмотров: 13597
LShark, а можно, пожалуйста поподробнее и применимо к моему примеру?) мне вот, собственно, для каких нужд все это нужно: пишу проект, представляющий собой сайт-помощник в составлении резюме. человек там вводит необходимую информацию в форму, прикрепляет свою фотку, и на выходе - вуаля! - скачивает готовый документ со всеми стандартами оформления правильного резюме (как правило, это по-моему что-то вроде табличного вида). мне что только не советовали - и юзать yii framework, подкручивать туда rtf-спецификацию, использовать тот самый PHPWord, о котором я в этой теме спрашиваю и кучу другого...Так вот, форумчане-идеологи и практиканты, подскажите, как лучше и практичнее решить данную ситуацию? С чего начать? Заранее всем низкий поклон Улыбка
pioneer Отправлено: 27 Февраля, 2013 - 18:23:53 • Тема: Работа с библиотекой PHPWord. • Форум: Вопросы новичков

Ответов: 4
Просмотров: 13597
Привет всем форумчанам! Радость Собственно, столкнулся с такой задачей - нужно данные из формы передать в Word'овский шаблон и затем предоставить пользователю готовый для скачивания документ. Для решения этой задачи решил использовать библиотеку PHPWord. И вот что у меня получилось (а точнее - не получилось):
1) у себя на хосте создал индексную страницу index.php
PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. </head>
  6. <form action="script/php2doc.php" method="POST">
  7. <p>
  8.    <label> <b> Ваша фамилия: </b> <br /> </label>
  9.    <input name="sirname" />
  10. </p>
  11.  
  12. <p>
  13.    <label> <b> Ваше имя: </b> <br /> </label>
  14.    <input name="name" />
  15. </p>
  16.  
  17. <p>
  18.    <label> <b> Ваше очество: </b> <br /> </label>
  19.    <input name="fathname" />
  20. </p>
  21. <input type="submit" value="Создать документ!" />
  22. </form>
  23. </html>


2) В папку script закинул сам распакованный PHPWord и заранее подготовленный шаблон Template.docx. Мой скрипт php2doc.php находится здесь же:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once 'PHPWord.php';
  3.  
  4. $PHPWord = new PHPWord();
  5.  
  6. $document = $PHPWord->loadTemplate('Template.docx');
  7.  
  8. $document->setValue('Value1', $sirname);
  9. $document->setValue('Value2', $name);
  10. $document->setValue('Value3', $fathname);
  11.  
  12. $document->save('FIO.docx');
  13. ?>


Только вот в чем беда:
1) после нажатия кнопки "Скачать документ" появляется пустое окно в браузере без возможности выбора места для сохранения;
2) в готовом документе FIO.docx (он появляется в этой же папке script) поля "Фамилия", "Имя" и "Отчество" остаются пустыми и без значений. Что с этим делать? Неужели проблема снова в том, что сперва нужно выполнять скрипт, а потом подгружать шаблон (index.php)?? Исходный шаблон прикрепляю. Заранее спасибо за помощь.
pioneer Отправлено: 13 Февраля, 2013 - 01:10:49 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
caballero, читал, что COM дает хорошую свободу действий. у меня винда, данный проект - для диплома (так что не думаю что в комиссии-жюри найдутся фэны линуксов и маков). можно подробнее об этой технологии и все же что скажешь если привязать это все дело к джумле?
pioneer Отправлено: 13 Февраля, 2013 - 00:26:18 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
caballero, а как мне тогда лучше поступить вот в каком случае - есть, допустим, шаблон Word'овского документа - ОБЪЯСНИТЕЛЬНОЙ, в нем уже набран текст по правилам оформления этого документа. нужно в нужное место в документе вставить Ф.И.О. человека, введенного в формочку, а в другое место - прикрепить фотографию этого же человека, которую он сам же и загрузит опять же на той же странице с формой и предоставить ему готовый документ для скачивания. И, честно говоря, хотелось бы как то это сделать на Joomla!, поскольку это будет что-то некоего мини-проекта.
Ребята, подскажите, у кого есть какие идеи и с чего мне лучше начать? А то мне уже многое советовали, и какой-то RTF-шаблонизатор, и юзать фреймфорк Yii и что только не советовали. Но как лучше, проще и универсальнее поступить я так и не понял...!? Буду признателен за дельные советы! Закатив глазки
pioneer Отправлено: 12 Февраля, 2013 - 17:03:48 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
caballero, ну я писал выше, что хотелось бы, чтобы скачиваемый документ открывался с видом "разметка страницы", а не "веб-документ" плюс вот, например, мне нужно сделать следующее:
1) выбрать в форме картинку у себя на компьютере
2) вставить её в нужное место в будущем док-те Word, например, с новой строки после слов "Hello, World!"
3) скачать полученный документ (ну, это уже получается вроде, слава Богу)
pioneer Отправлено: 12 Февраля, 2013 - 16:41:39 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
Ребята, и все же как же можно поварьировать параметрами форматирования документа? Закатив глазки
pioneer Отправлено: 11 Февраля, 2013 - 23:49:11 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
DeepVarvar, а если попробовать расположить тэги так? :
тэг редактора PHP
... тут код...
тэг редактора /PHP
вот и выходит что, якобы, первая и последняя строка - пустые.
pioneer Отправлено: 11 Февраля, 2013 - 23:39:15 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
DeepVarvar, спасибо за советы, но проблемы были все-таки с BOM. перевод каретки в index.php у меня только после <?php и никаких пустых строк в начале документа нет))
pioneer Отправлено: 11 Февраля, 2013 - 23:07:42 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
imya, etoYA, СПАСИБО Вам ОГРОМНОЕ, ребята! Все сработало. Дело было в BOM (хотя я до сих пор толком так и не понял зачем был нужен этот юникод-символ!?). А можно ли теперь поманипулировать форматированием документа? Ну, например, при загрузке документа режим чтения по умолчанию - "веб-документ", а не привычная "разметка страницы", как хотелось бы. И можно ли, к примеру, прикрепляя картинку, вставить ее в определенное место в документе? Заранее, опять же, СПАСИБО большущее за помощь!
pioneer Отправлено: 11 Февраля, 2013 - 17:51:19 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
etoYA, попробовал...происходит та же самая фигня. перед формой появляются сообщения об ошибке:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\diplom\index.php:1) in Z:\home\localhost\www\diplom\index.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\diplom\index.php:1) in Z:\home\localhost\www\diplom\index.php on line 8
Автор: StasHello, World! 
pioneer Отправлено: 11 Февраля, 2013 - 16:52:32 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
DeepVarvar, перечитал Вашу тему пару раз, понял что у меня ужасный стиль PHP-кодирования, и это не удивительно - я ведь новичок Огорчение Судя из Ваших замечаний попробовал сделать так (скорее всего, выводы сделал неправильные??):

Все переменные и операции, как и было Вами упомянуто, объявил до загузки шаблона.
index.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['docname']) && !empty($_POST['docname'])) $docname = $_POST['docname'];
  4. if (isset($_POST['myself'])  && !empty($_POST['myself']))  $myself  = $_POST['myself'];
  5. if (isset($_POST['text'])    && !empty($_POST['text']))    $text    = $_POST['text'];
  6.  
  7. if (isset($docname) && isset($myself) && isset($text)) {
  8. header('Content-type: application/vnd.ms-word');
  9. header('Content-Disposition: attachment;Filename=' . $docname . '.doc');
  10.  
  11. echo '<html>';
  12. echo '<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">';
  13. echo '<body>';
  14. echo 'Автор: ' . $myself;
  15. echo '<b>' . $text . '</b>';
  16. echo '</body>';
  17. echo '</html>';
  18. }
  19.  
  20. require 'template.html';
  21. ?>
  22.  


Потом, пытаюсь загрузить сам шаблон.
template.html
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE HTML>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. </head>
  7. <form action="word.php" method="POST">
  8. <p>
  9.    <label> <b> Название документа: </b> <br /> </label>
  10.    <input name="docname" />
  11. </p>
  12.  
  13. <p>
  14.    <label> <b> Ваше имя: </b> <br /> </label>
  15.    <input name="myself" />
  16. </p>
  17.  
  18. <p>
  19.    <label> <b> Ваш текст: </b> <br /> </label>
  20.    <textarea name="text" rows="10" cols="25" tabindex="2"> </textarea>
  21. </p>
  22. <input type="submit" value="Создать документ!" />
  23. </form>
  24. </html>
  25.  


Но на мою форму то повешен скрипт "word.php", а я его, якобы, пытаюсь выполнить в индексной странице "index.php". Что мне делать?
pioneer Отправлено: 11 Февраля, 2013 - 15:42:35 • Тема: Данные из формы в документ Word. • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1237
Привет всем форумчанам! Я в PHP совсем ещё новичок, но базовые знания по html и css немного имею. Недавно я тут наткнулся на одну интересную тему [url]http://forum.php.su/topic.php?forum=60&topic=979#[/url], где помогали другому участнику. Так вот, меня тоже очень заинтересовал этот вопрос, но топик уже устарел. Я у себя на localhost, используя denwer, создал два документа - index.html и word.php соответственно, поместив их в одну папку. Заполнив форму, нажал кнопку "Создать документ!", но вместо ожидаемого скачивания вордовского документа вылезли след. надписи:

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\diplom\word.php:1) in Z:\home\localhost\www\diplom\word.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\diplom\word.php:1) in Z:\home\localhost\www\diplom\word.php on line 8
Автор: StasHjwb

Ниже привожу коды своих тестовых файликов. Заранее, огромное Вам СПАСИБО за помощь и если не останетесь равнодушны и откликнетесь.

index.html
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE HTML>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. </head>
  7. <form action="word.php" method="POST">
  8. <p>
  9.    <label> <b> Название документа: </b> <br /> </label>
  10.    <input name="docname" />
  11. </p>
  12.  
  13. <p>
  14.    <label> <b> Ваше имя: </b> <br /> </label>
  15.    <input name="myself" />
  16. </p>
  17.  
  18. <p>
  19.    <label> <b> Ваш текст: </b> <br /> </label>
  20.    <textarea name="text" rows="10" cols="25" tabindex="2"> </textarea>
  21. </p>
  22. <input type="submit" value="Создать документ!" />
  23. </form>
  24. </html>
  25.  


word.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (isset($_POST['docname']) && !empty($_POST['docname'])) $docname = $_POST['docname'];
  4. if (isset($_POST['myself'])  && !empty($_POST['myself']))  $myself  = $_POST['myself'];
  5. if (isset($_POST['text'])    && !empty($_POST['text']))    $text    = $_POST['text'];
  6.  
  7. if (isset($docname) && isset($myself) && isset($text)) {
  8. header('Content-type: application/vnd.ms-word');
  9. header('Content-Disposition: attachment;Filename=' . $docname . '.doc');
  10.  
  11. echo '<html>';
  12. echo '<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">';
  13. echo '<body>';
  14. echo 'Автор: ' . $myself;
  15. echo '<b>' . $text . '</b>';
  16. echo '</body>';
  17. echo '</html>';
  18. }
  19. ?>
  20.  

Страниц (2): « 1 [2]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB