The Controller consists of following Action methods.
Inside this Action method, simply the View is returned.
1. jszip.min.js
2. docx-preview.js
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<input type="button" id="btnPreview" value="Preview Word Document" onclick="PreviewWordDoc()" />
<div id="word-container" class=""></div>
<script type="text/javascript" src="https://unpkg.com/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docx-preview@0.1.15/dist/docx-preview.js"></script>
<script type="text/javascript">
function PreviewWordDoc() {
//URL of the Word Document.
var url = "/DOCs/Sample.docx";
//Send a XmlHttpRequest to the URL.
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'blob';
request.onload = function () {
//Set the ContentType to docx.
var contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
//Convert BLOB to File object.
var doc = new File([request.response], contentType);
//If Document not NULL, render it.
if (doc != null) {
//Set the Document options.
var docxOptions = Object.assign(docx.defaultOptions, {
useMathMLPolyfill: true
});
//Reference the Container DIV.
var container = document.querySelector("#word-container");
//Render the Word Document.
docx.renderAsync(doc, container, null, docxOptions);
}
};
request.send();
};
</script>
</body>
</html>