1.jquery.wordexport.js
if ( typeof jQuery !== "undefined" && typeof saveAs !== "undefined" ) {
( function ( $ ) {
$. fn. wordExport = function ( fileName ) {
fileName = typeof fileName !== 'undefined' ? fileName : "jQuery-Word-Export" ;
var statics = {
mhtml: {
top: "Mime-Version: 1.0\nContent-Base: " + location. href + "\nContent-Type: Multipart/related; boundary=\"NEXT.ITEM-BOUNDARY\";type=\"text/html\"\n\n--NEXT.ITEM-BOUNDARY\nContent-Type: text/html; charset=\"utf-8\"\nContent-Location: " + location. href + "\n\n<!DOCTYPE html>\n<html>\n_html_</html>" ,
head: "<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<style>\n_styles_\n</style>\n</head>\n" ,
body: "<body>_body_</body>"
}
} ;
var options = {
maxWidth: 624
} ;
var markup = $ ( this ) . clone ( ) ;
markup. each ( function ( ) {
var self = $ ( this ) ;
if ( self. is ( ':hidden' ) )
self. remove ( ) ;
} ) ;
var images = Array ( ) ;
var img = markup. find ( 'img' ) ;
for ( var i = 0 ; i < img. length; i++ ) {
var w = Math. min ( img[ i] . width, options. maxWidth) ;
var h = img[ i] . height * ( w / img[ i] . width) ;
var canvas = document. createElement ( "CANVAS" ) ;
canvas. width = w;
canvas. height = h;
var context = canvas. getContext ( '2d' ) ;
context. drawImage ( img[ i] , 0 , 0 , w, h) ;
var uri = canvas. toDataURL ( "image/png/jpg" ) ;
$ ( img[ i] ) . attr ( "src" , img[ i] . src) ;
img[ i] . width = w;
img[ i] . height = h;
images[ i] = {
type: uri. substring ( uri. indexOf ( ":" ) + 1 , uri. indexOf ( ";" ) ) ,
encoding: uri. substring ( uri. indexOf ( ";" ) + 1 , uri. indexOf ( "," ) ) ,
location: $ ( img[ i] ) . attr ( "src" ) ,
data: uri. substring ( uri. indexOf ( "," ) + 1 )
} ;
}
var mhtmlBottom = "\n" ;
for ( var i = 0 ; i < images. length; i++ ) {
mhtmlBottom += "--NEXT.ITEM-BOUNDARY\n" ;
mhtmlBottom += "Content-Location: " + images[ i] . location + "\n" ;
mhtmlBottom += "Content-Type: " + images[ i] . type + "\n" ;
mhtmlBottom += "Content-Transfer-Encoding: " + images[ i] . encoding + "\n\n" ;
mhtmlBottom += images[ i] . data + "\n\n" ;
}
mhtmlBottom += "--NEXT.ITEM-BOUNDARY--" ;