UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

124 lines (120 loc) 3.1 kB
//#region ../src/pdf/pako.js (function() { kendo.pdf = kendo.pdf || {}; kendo.pdf.supportsDeflate = function() { return window.pako && typeof window.pako.deflate == "function"; }; kendo.pdf.deflate = function(data) { return window.pako.deflate(data); }; })(); //#endregion //#region ../src/pdf/core.js (function($) {})(window.kendo.jQuery); //#endregion //#region ../src/pdf/mixins.js (function($, undefined) { kendo.PDFMixin = { extend: function(proto) { proto.events.push("pdfExport"); proto.options.pdf = this.options; proto.saveAsPDF = this.saveAsPDF; proto._drawPDF = this._drawPDF; proto._drawPDFShadow = this._drawPDFShadow; }, options: { fileName: "Export.pdf", proxyURL: "", paperSize: "auto", allPages: false, landscape: false, margin: null, title: null, author: null, subject: null, keywords: null, creator: "Kendo UI PDF Generator v." + kendo.version, date: null }, saveAsPDF: function() { var progress = new $.Deferred(); var promise = progress.promise(); var args = { promise }; if (this.trigger("pdfExport", args)) { return; } var options = this.options.pdf; options.multiPage = options.multiPage || options.allPages; this._drawPDF(progress).then(function(root) { return kendo.drawing.exportPDF(root, options); }).done(function(dataURI) { kendo.saveAs({ dataURI, fileName: options.fileName, proxyURL: options.proxyURL, forceProxy: options.forceProxy, proxyTarget: options.proxyTarget }); progress.resolve(); }).fail(function(err) { progress.reject(err); }); return promise; }, _drawPDF: function(progress) { var promise = new $.Deferred(); kendo.drawing.drawDOM(this.wrapper).done(function(group) { var args = { page: group, pageNumber: 1, progress: 1, totalPages: 1 }; progress.notify(args); promise.resolve(args.page); }).fail(function(err) { promise.reject(err); }); return promise; }, _drawPDFShadow: function(settings, drawOptions) { settings = settings || {}; var wrapper = this.wrapper; var shadow = $("<div class='k-pdf-export-shadow'>"); if (settings.width) { shadow.css({ width: settings.width, overflow: "visible" }); } wrapper.before(shadow); shadow.append(settings.content || wrapper.clone(true, true)); var defer = $.Deferred(); setTimeout(function() { var promise = kendo.drawing.drawDOM(shadow, drawOptions); promise.always(function() { shadow.remove(); }).then(function() { defer.resolve.apply(defer, arguments); }).fail(function() { defer.reject.apply(defer, arguments); }).progress(function() { defer.progress.apply(defer, arguments); }); }, 15); return defer.promise(); } }; })(window.kendo.jQuery); //#endregion //#region ../src/kendo.pdf.js const __meta__ = { id: "pdf", name: "PDF export", description: "PDF Generation framework", mixin: true, category: "framework", depends: ["core", "drawing"] }; //#endregion export { __meta__ as t };