WebToDoc

DONE?

by downedcrane

HTML

<meta charset="utf-8">
<head>
  <title>Ввод данных в документ .doc, ДЦисБ-3-3</title>
</head>



<h3>Ввод данных в документ .doc, ДЦисБ-3-3</h3>

<div id="exportContent" class = field>

  First name:   <input id="fname" type="text" ><br>
  Last name:    <input type="text" id="lname"><br>
  E-mail:       <input type="text" id="email"><br>
  Age:          <input type="text" id="age"><br>
  Passport ID:  <input type="text" id="passport"><br>

</div>


<br>

Имя файла: <input type="text" id="filename">
<button onclick="Export2Doc('exportContent');">Экспорт в .doc</button>

CSS

.field{}

JavaScript

function Export2Doc(element, filename = '') {
  fieldKiller()
  var preHtml = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>Export HTML To Doc</title></head><body>";
  var postHtml = "</body></html>";
  var html = preHtml + document.getElementById(element).innerHTML + postHtml;

  var blob = new Blob(['\ufeff', html], {
    type: 'application/msword'
  });
  var url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html);

  // Specify file name
 var pid = document.getElementById('filename').value
 pid = pid + '.doc'
  
  
 filename = pid;

  // Create download link element
  var downloadLink = document.createElement("a");

  document.body.appendChild(downloadLink);

  if (navigator.msSaveOrOpenBlob) {
    navigator.msSaveOrOpenBlob(blob, filename); // IE10-11
  } else {
    // Create a link to the file
    downloadLink.href = url;
		
    // Setting the file name
    downloadLink.download = filename;

    //triggering the function
    downloadLink.click();
  }

  document.body.removeChild(downloadLink);
  fieldRecovery()
}
function ChangeText(elId, newText){
document.getElementById(elId).innerHTML=newText;
}
// document.getElementById('textfield').value += this.innerHTM
function fieldKiller(){
	let fname = document.getElementById("fname").value
  let lname = document.getElementById('lname').value
  let email = document.getElementById('email').value
  let age = document.getElementById('age').value
  var passport = document.getElementById('passport').value
	ChangeText("exportContent", "First name:"+fname+"<br>"+"Last name:"+lname+"<br>"+"E-mail:"+email+"<br>"+"Age: "+age+"<br>"+"Passport ID:"+passport+"<br>")
}
function fieldRecovery(){
ChangeText("exportContent",'  First name:   <input id="fname" type="text" ><br>  Last name:    <input type="text" id="lname"><br>  E-mail:       <input type="text" id="email"><br> ...