Експорт HTML у Word

ПублікаціїКонвертувати

Так як у JavaScript немає повноцінної технології для створення документу Microsoft Word (ActiveX у Internet Explorer не враховуємо) будемо використовувати Data URL.

Для MS Word Data URL має такий формат: "data:application/msword,дані", прицьому дані рекомендовано закодувати за допомогою encodeURIComponent().

Data URL можна присвоїти властивості location.href або відкрити у новому вікні за допомогою window.open()

    Недоліки Data URL:
  • обмеження у розмірі URL
  • підтримує Internet Explorer від 8 версії
  • закодовані дані за допомогою encodeURIComponent() (btoa) збільшуються за об'ємом

Найпростішим способом є передача простого тексту.

function toWord(text){ location.href='data:application/msword,'+encodeURIComponent(text); } toWord('Word файл на JavaScript');

Більш оптимальним способом є запис у файл Word даних HTML, а вже MS Word перетворить у свій формат. Також можна використовувати CSS стилі. Простіше кажучи ми записуємо веб-сторінку у файл з деякими параметрами для MS Word, а вже Word перетворює у свій формат.

function HTMLtoWord(html){ var xml='<html xmlns:w="urn:schemas-microsoft-com:office:word">'; xml+='<head><meta charset="utf-8"></head><body>'; //вказуємо кодіровку utf-8 xml+=html; xml+='</body></html>'; location.href='data:application/msword,'+encodeURIComponent(xml); } HTMLtoWord('<p>HTML у Word за допомогою <b>JavaScript</b></p><p style="color:blue;font-size:24px">MS Word</p>'); //HTMLtoWord(document.getElementsByTagName('body')[0].innerHTML);

Також можна використовувати 64 бітне кодування даних за допомогою btoa(), прицьому це слід вказати у параметрі "data:application/msword;base64,дані"

function HTMLtoWord(html){ var xml='<html xmlns:w="urn:schemas-microsoft-com:office:word">'; xml+='<head><meta charset="utf-8"></head><body>'; //вказуємо кодіровку utf-8 xml+=html; xml+='</body></html>'; location.href='data:application/msword;base64,'+btoa(unescape(encodeURIComponent(xml))); } HTMLtoWord('<p>HTML у Word з 64 бітним кодуванням за допомогою <b>JavaScript</b></p><p style="color:blue;font-size:24px">MS Word</p>');
Адмін 2017-11-27 14:46:03

Тільки зареєстровані користувачі можуть писати коментарі.