vue-html2pdf
Version:
https://github.com/kempsteven/vue-html2pdf
1 lines • 6.84 kB
JavaScript
var VueHtml2pdf=function(t,e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var a={props:{showLayout:{type:Boolean,default:!1},floatLayout:{type:Boolean,default:!0},enableDownload:{type:Boolean,default:!0},previewModal:{type:Boolean,default:!1},paginateElementsByHeight:{type:Number},filename:{type:String,default:""+(new Date).getTime()},pdfQuality:{type:Number,default:2},pdfFormat:{default:"a4"},pdfOrientation:{type:String,default:"portrait"},pdfContentWidth:{default:"800px"},htmlToPdfOptions:{type:Object},manualPagination:{type:Boolean,default:!1}},data:function(){return{hasAlreadyParsed:!1,progress:0,pdfWindow:null,pdfFile:null}},watch:{progress:function(t){this.$emit("progress",t)},paginateElementsByHeight:function(){this.resetPagination()},$props:{handler:function(){this.validateProps()},deep:!0,immediate:!0}},methods:{validateProps:function(){this.manualPagination||void 0===this.paginateElementsByHeight&&console.error("Error: paginate-elements-by-height is required if manual-pagination is false")},resetPagination:function(){var t=this.$refs.pdfContent.firstChild.getElementsByClassName("html2pdf__page-break"),e=t.length-1;if(-1!==e){this.hasAlreadyParsed=!1;for(var a=e;a>=0;a--)t[a].parentNode.removeChild(t[a])}},generatePdf:function(){this.$emit("startPagination"),this.progress=0,this.paginationOfElements()},paginationOfElements:function(){if(this.progress=25,this.manualPagination)return this.progress=70,this.$emit("hasPaginated"),void this.downloadPdf();if(this.hasAlreadyParsed)this.progress=70;else{var t=this.$refs.pdfContent.firstChild,e=Array.from(t.children),a=0;for(var n of e){if("html2pdf__page-break"===n.classList[0])a=0;else{var i=n.clientHeight,o=n.currentStyle||window.getComputedStyle(n),s=i+(parseInt(o.marginTop)+parseInt(o.marginBottom));if(a+i<this.paginateElementsByHeight)a+=s;else{var d=document.createElement("div");d.classList.add("html2pdf__page-break"),t.insertBefore(d,n),a=s}}}this.progress=70,this.hasAlreadyParsed=!0}this.$emit("hasPaginated"),this.downloadPdf()},downloadPdf:async function(){var t=this.$refs.pdfContent,a=this.setOptions();this.$emit("beforeDownload",{html2pdf:e,options:a,pdfContent:t});var n=e().set(a).from(t),i=null;if(this.previewModal&&(this.pdfFile=await n.output("bloburl"),i=this.pdfFile),this.enableDownload&&(i=await n.save().output("bloburl")),i){var o=await fetch(i),s=await o.blob();this.$emit("hasDownloaded",s)}this.progress=100},setOptions:function(){return void 0!==this.htmlToPdfOptions&&null!==this.htmlToPdfOptions?this.htmlToPdfOptions:{margin:0,filename:this.filename+".pdf",image:{type:"jpeg",quality:.98},enableLinks:!1,html2canvas:{scale:this.pdfQuality,useCORS:!0},jsPDF:{unit:"in",format:this.pdfFormat,orientation:this.pdfOrientation}}},closePreview:function(){this.pdfFile=null}}};function n(t,e,a,n,i,o,s,d,r,l){"boolean"!=typeof s&&(r=d,d=s,s=!1);var f,p="function"==typeof a?a.options:a;if(t&&t.render&&(p.render=t.render,p.staticRenderFns=t.staticRenderFns,p._compiled=!0,i&&(p.functional=!0)),n&&(p._scopeId=n),o?(f=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,r(t)),t&&t._registeredComponents&&t._registeredComponents.add(o)},p._ssrRegister=f):e&&(f=s?function(t){e.call(this,l(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,d(t))}),f)if(p.functional){var u=p.render;p.render=function(t,e){return f.call(e),u(t,e)}}else{var h=p.beforeCreate;p.beforeCreate=h?[].concat(h,f):[f]}return a}var i,o="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function s(t){return function(t,e){return function(t,e){var a=o?e.media||"default":t,n=d[a]||(d[a]={ids:new Set,styles:[]});if(!n.ids.has(t)){n.ids.add(t);var s=e.source;if(e.map&&(s+="\n/*# sourceURL="+e.map.sources[0]+" */",s+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e.map))))+" */"),n.element||(n.element=document.createElement("style"),n.element.type="text/css",e.media&&n.element.setAttribute("media",e.media),void 0===i&&(i=document.head||document.getElementsByTagName("head")[0]),i.appendChild(n.element)),"styleSheet"in n.element)n.styles.push(s),n.element.styleSheet.cssText=n.styles.filter(Boolean).join("\n");else{var r=n.ids.size-1,l=document.createTextNode(s),f=n.element.childNodes;f[r]&&n.element.removeChild(f[r]),f.length?n.element.insertBefore(l,f[r]):n.element.appendChild(l)}}}(t,e)}}var d={};var r=n({render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"vue-html2pdf"},[a("section",{staticClass:"layout-container",class:{"show-layout":t.showLayout,"unset-all":!t.floatLayout}},[a("section",{ref:"pdfContent",staticClass:"content-wrapper",style:"width: "+t.pdfContentWidth+";"},[t._t("pdf-content")],2)]),t._v(" "),a("transition",{attrs:{name:"transition-anim"}},[t.pdfFile?a("section",{staticClass:"pdf-preview"},[a("button",{on:{click:function(e){return e.target!==e.currentTarget?null:t.closePreview()}}},[t._v("\n\t\t\t\t\t×\n\t\t\t\t")]),t._v(" "),a("iframe",{attrs:{src:t.pdfFile,width:"100%",height:"100%"}})]):t._e()])],1)},staticRenderFns:[]},(function(t){t&&t("data-v-1fd3ad26_0",{source:".vue-html2pdf .layout-container[data-v-1fd3ad26]{position:fixed;width:100vw;height:100vh;left:-100vw;top:0;z-index:-9999;background:rgba(95,95,95,.8);display:flex;justify-content:center;align-items:flex-start;overflow:auto}.vue-html2pdf .layout-container.show-layout[data-v-1fd3ad26]{left:0;z-index:9999}.vue-html2pdf .layout-container.unset-all[data-v-1fd3ad26]{all:unset;width:auto;height:auto}.vue-html2pdf .pdf-preview[data-v-1fd3ad26]{position:fixed;width:65%;min-width:600px;height:80vh;top:100px;z-index:9999999;left:50%;transform:translateX(-50%);border-radius:5px;box-shadow:0 0 10px #00000048}.vue-html2pdf .pdf-preview button[data-v-1fd3ad26]{position:absolute;top:-20px;left:-15px;width:35px;height:35px;background:#555;border:0;box-shadow:0 0 10px #00000048;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer}.vue-html2pdf .pdf-preview iframe[data-v-1fd3ad26]{border:0}.vue-html2pdf .transition-anim-enter-active[data-v-1fd3ad26],.vue-html2pdf .transition-anim-leave-active[data-v-1fd3ad26]{transition:opacity .3s ease-in}.vue-html2pdf .transition-anim-enter[data-v-1fd3ad26],.vue-html2pdf .transition-anim-leave-to[data-v-1fd3ad26]{opacity:0}",map:void 0,media:void 0})}),a,"data-v-1fd3ad26",false,undefined,!1,s,void 0,void 0);function l(t){l.installed||(l.installed=!0,t.component("VueHtml2pdf",r))}var f={install:l},p=null;return"undefined"!=typeof window?p=window.Vue:"undefined"!=typeof global&&(p=global.Vue),p&&p.use(f),r.install=l,t.default=r,t}({},html2pdf);