| | |
| | | // 创建一个PizZip实例,内容为模板的内容 |
| | | let zip = new PizZip(content); |
| | | // 创建并加载docx templater实例对象 |
| | | let doc = new docxtemplater().loadZip(zip); |
| | | let doc = new docxtemplater().loadZip(zip).setOptions({ |
| | | linebreaks:true, |
| | | paragraphLoop: true, |
| | | nullGetter:function () { |
| | | return "" |
| | | } |
| | | }); |
| | | // 设置模板变量的值 |
| | | doc.setData(e); |
| | | |
| | |
| | | |
| | | //下载word,带图片 |
| | | export const exportDocWidthImg = (e, path , dname, imgSize) => { |
| | | for (let attr in e) { |
| | | if (e[attr] == null) { |
| | | e[attr] = ""; |
| | | |
| | | for (let attr in e) { |
| | | if (e[attr] == null) { |
| | | e[attr] = ""; |
| | | } |
| | | } |
| | | } |
| | | let docxsrc = path; //模板文件的位置 |
| | | let docxname = dname; //导出文件的名字 |
| | | // 读取并获得模板文件的二进制内容 |
| | | JSZipUtils.getBinaryContent(docxsrc, function (error, content) { |
| | | // docxsrc是模板。我们在导出的时候,会根据此模板来导出对应的数据 |
| | | // 抛出异常 |
| | | if (error) { |
| | | throw error; |
| | | } |
| | | let docxsrc = path; //模板文件的位置 |
| | | let docxname = dname; //导出文件的名字 |
| | | // 读取并获得模板文件的二进制内容 |
| | | JSZipUtils.getBinaryContent(docxsrc, function (error, content) { |
| | | // docxsrc是模板。我们在导出的时候,会根据此模板来导出对应的数据 |
| | | // 抛出异常 |
| | | if (error) { |
| | | throw error; |
| | | } |
| | | |
| | | // 创建一个PizZip实例,内容为模板的内容 |
| | | let zip = new PizZip(content); |
| | | // 创建并加载docx templater实例对象 |
| | | let doc = new docxtemplater().loadZip(zip).setOptions({ |
| | | linebreaks:true, |
| | | paragraphLoop: true, |
| | | nullGetter:function () { |
| | | return "" |
| | | } |
| | | }); |
| | | // 创建一个PizZip实例,内容为模板的内容 |
| | | let zip = new PizZip(content); |
| | | // 创建并加载docx templater实例对象 |
| | | let doc = new docxtemplater().loadZip(zip).setOptions({ |
| | | linebreaks:true, |
| | | paragraphLoop: true, |
| | | nullGetter:function () { |
| | | return "" |
| | | } |
| | | }); |
| | | |
| | | // // 图片处理 |
| | | let opts = {} |
| | | opts = { |
| | | // 图像是否居中 |
| | | centered: false |
| | | }; |
| | | opts.fileType = "docx"; |
| | | opts.getImage = (chartId) =>{ |
| | | return base64DataURLToArrayBuffer(chartId); |
| | | } |
| | | // // 图片处理 |
| | | let opts = {} |
| | | opts = { |
| | | // 图像是否居中 |
| | | centered: false |
| | | }; |
| | | opts.fileType = "docx"; |
| | | opts.getImage = (chartId) =>{ |
| | | return base64DataURLToArrayBuffer(chartId); |
| | | } |
| | | |
| | | opts.getSize = function(img, tagVlaue, tagName){ //图片size |
| | | if(imgSize.hasOwnProperty(tagName)) { |
| | | return imgSize[tagName] |
| | | }else { |
| | | return [300,300] |
| | | } |
| | | } |
| | | let imageModule = new ImageModule(opts); |
| | | doc.attachModule(imageModule); |
| | | opts.getSize = function(img, tagVlaue, tagName){ //图片size |
| | | if(imgSize.hasOwnProperty(tagName)) { |
| | | return imgSize[tagName] |
| | | }else { |
| | | return [70, 30] |
| | | } |
| | | } |
| | | let imageModule = new ImageModule(opts); |
| | | doc.attachModule(imageModule); |
| | | |
| | | // 设置模板变量的值 |
| | | doc.setData(e); |
| | | console.log(doc,'下载---带图片的---') |
| | | // 设置模板变量的值 |
| | | doc.setData(e); |
| | | |
| | | try { |
| | | //替换所有模板变量 |
| | | doc.render(); |
| | | } catch (error) { |
| | | let e = { |
| | | message: error.message, |
| | | name: error.name, |
| | | stack: error.stack, |
| | | properties: error.properties |
| | | }; |
| | | console.log(JSON.stringify({error: e})); |
| | | throw error; |
| | | } |
| | | try { |
| | | //替换所有模板变量 |
| | | doc.render(); |
| | | } catch (error) { |
| | | let e = { |
| | | message: error.message, |
| | | name: error.name, |
| | | stack: error.stack, |
| | | properties: error.properties |
| | | }; |
| | | console.log(JSON.stringify({error: e})); |
| | | throw error; |
| | | } |
| | | |
| | | // 生成一个代表docxtemplater对象的zip文件(不是一个真实的文件,而是在内存中的表示) |
| | | let out = doc.getZip().generate({ |
| | | type: "blob", |
| | | mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" |
| | | }); |
| | | // 将目标文件对象保存为目标类型的文件,并命名 |
| | | saveAs(out, docxname); |
| | | },2000); |
| | | // 生成一个代表docxtemplater对象的zip文件(不是一个真实的文件,而是在内存中的表示) |
| | | let out = doc.getZip().generate({ |
| | | type: "blob", |
| | | mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" |
| | | }); |
| | | // 将目标文件对象保存为目标类型的文件,并命名 |
| | | saveAs(out, docxname); |
| | | },2000); |
| | | } |
| | | |
| | | //下载word,带图片 |
| | | export const exportDocWidthImg2 = (e, path , dname, arry, imgSize) => { |
| | | for (let attr in e) { |
| | | if (e[attr] == null) { |
| | | e[attr] = ""; |
| | | for (let attr in e) { |
| | | if (e[attr] == null) { |
| | | e[attr] = ""; |
| | | } |
| | | } |
| | | } |
| | | let docxsrc = path; //模板文件的位置 |
| | | let docxname = dname; //导出文件的名字 |
| | | // 读取并获得模板文件的二进制内容 |
| | | JSZipUtils.getBinaryContent(docxsrc, function (error, content) { |
| | | // docxsrc是模板。我们在导出的时候,会根据此模板来导出对应的数据 |
| | | // 抛出异常 |
| | | if (error) { |
| | | throw error; |
| | | } |
| | | let docxsrc = path; //模板文件的位置 |
| | | let docxname = dname; //导出文件的名字 |
| | | // 读取并获得模板文件的二进制内容 |
| | | JSZipUtils.getBinaryContent(docxsrc, function (error, content) { |
| | | // docxsrc是模板。我们在导出的时候,会根据此模板来导出对应的数据 |
| | | // 抛出异常 |
| | | if (error) { |
| | | throw error; |
| | | } |
| | | |
| | | // 创建一个PizZip实例,内容为模板的内容 |
| | | let zip = new PizZip(content); |
| | | // 创建并加载docx templater实例对象 |
| | | let doc = new docxtemplater().loadZip(zip); |
| | | // 创建一个PizZip实例,内容为模板的内容 |
| | | let zip = new PizZip(content); |
| | | // 创建并加载docx templater实例对象 |
| | | let doc = new docxtemplater().loadZip(zip).setOptions({ |
| | | linebreaks:true, |
| | | paragraphLoop: true, |
| | | nullGetter:function () { |
| | | return "" |
| | | } |
| | | }); |
| | | |
| | | // // 图片处理 |
| | | const opts = {} |
| | | opts.fileType = "docx"; |
| | | opts.getImage = (chartId) =>{ |
| | | return base64DataURLToArrayBuffer(chartId); |
| | | } |
| | | // // 图片处理 |
| | | const opts = {} |
| | | opts.fileType = "docx"; |
| | | opts.getImage = (chartId) =>{ |
| | | return base64DataURLToArrayBuffer(chartId); |
| | | } |
| | | |
| | | opts.getSize = function(img, tagVlaue, tagName){ //图片size |
| | | if(imgSize.hasOwnProperty(tagName)) { |
| | | return imgSize[tagName] |
| | | }else { |
| | | return [300,300] |
| | | } |
| | | } |
| | | let imageModule = new ImageModule(opts); |
| | | doc.attachModule(imageModule); |
| | | opts.getSize = function(img, tagVlaue, tagName){ //图片size |
| | | if(imgSize.hasOwnProperty(tagName)) { |
| | | return imgSize[tagName] |
| | | }else { |
| | | return [300,300] |
| | | } |
| | | } |
| | | let imageModule = new ImageModule(opts); |
| | | doc.attachModule(imageModule); |
| | | |
| | | // 设置模板变量的值 |
| | | doc.setData(e); |
| | | // 设置模板变量的值 |
| | | doc.setData(e); |
| | | |
| | | try { |
| | | //替换所有模板变量 |
| | | doc.render(); |
| | | } catch (error) { |
| | | let e = { |
| | | message: error.message, |
| | | name: error.name, |
| | | stack: error.stack, |
| | | properties: error.properties |
| | | }; |
| | | console.log(JSON.stringify({error: e})); |
| | | throw error; |
| | | } |
| | | try { |
| | | //替换所有模板变量 |
| | | doc.render(); |
| | | } catch (error) { |
| | | let e = { |
| | | message: error.message, |
| | | name: error.name, |
| | | stack: error.stack, |
| | | properties: error.properties |
| | | }; |
| | | console.log(JSON.stringify({error: e})); |
| | | throw error; |
| | | } |
| | | |
| | | // 生成一个代表docxtemplater对象的zip文件(不是一个真实的文件,而是在内存中的表示) |
| | | let out = doc.getZip().generate({ |
| | | type: "blob", |
| | | mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" |
| | | }); |
| | | // 将目标文件对象保存为目标类型的文件,并命名 |
| | | saveAs(out, docxname); |
| | | },2000); |
| | | // 生成一个代表docxtemplater对象的zip文件(不是一个真实的文件,而是在内存中的表示) |
| | | let out = doc.getZip().generate({ |
| | | type: "blob", |
| | | mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" |
| | | }); |
| | | // 将目标文件对象保存为目标类型的文件,并命名 |
| | | saveAs(out, docxname); |
| | | },2000); |
| | | } |
| | | |
| | | //预览word,不带图片的 |