Yvision.kzYvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
0
00:02, 19 сентября 2012

Вывод в Word части текста страницы

Итак, задался темой вывести часть данных со страницы в ворд. Сделал так: сначала открываю новую вкладку, потом в неё выношу нужные данные и у новой страницы меняю хидер через php.

В яваскрипте самой страницы на кнопку vWord срабатывает такое (тут на jQuery, но и на обычном js можно легко сделать):

На jQuery, хотя можно и обычным js
  1. $('#vWord').live("click", function (){
  2. file_name = ...; //тут подготавливаю удобное название будующего doc файла
  3.  
  4. page_text = "<html><body onload='document.forms[0].submit();'>"+$('#doc').html()+
  5. "<form action='"+location.href+"' method='POST'><input type=hidden name='vWord' value='"+
  6. $('#doc').html() + "'><input type=hidden name='file_name' value='"+file_name+"'></form></body></html>"; //$('#doc').html() - нужный кусок страницы
  7.  
  8. print_window = window.open(); // создаем новую вкладку
  9. print_window.document.write(page_text); // записываем в неё данные страницы
  10. print_window.document.location.reload(); // т.к. записали после открытия, с этим перегружаем её
  11. })

Суть такова, что подготавливаем на основной странице название будущего файла, выдираем нужный текст и открываем страницу (вкладку), где всё это помещаем в форму. В принципе если имя не особо важно, подставить его можно сразу напряму в php, и не передавать уже. На загрузку страницы, она сама отправляет данные формы (текст и название файла) на php от основной страницы. А там этому делу меняем хидер на вордовский и возвращаем под названием переданный текст:

  1. if (isset($_POST['vWord'])) { // создание файла Ворд
  2. ob_end_clean(); //зачищает хлам
  3. header("Content-type: application/x-msword");
  4. header('Content-Disposition: attachment; filename="'.$_POST['file_name'].'.doc"');
  5. echo "<html><body>";
  6. echo $_POST['vWord'];
  7. echo "</body></html>";
  8. exit();
  9. }

В общем, на новой вкладке выскочит нужный кусок и предложение сохранить вордовский файл. Другое дело, что надо юзерам разрешить открытие окон.

0
524
1