You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
// This file is used when a user tries to export the entire CryptDrive.
|
|
// Pads from the code app will be exported using this format instead of plain text.
|
|
define([
|
|
'/bower_components/secure-fabric.js/dist/fabric.min.js',
|
|
], function () {
|
|
var module = {};
|
|
|
|
var Fabric = window.fabric;
|
|
module.main = function (userDoc, cb) {
|
|
var canvas_node = document.createElement('canvas');
|
|
canvas_node.setAttribute('style', 'width:600px;height:600px;');
|
|
canvas_node.setAttribute('width', '600');
|
|
canvas_node.setAttribute('height', '600');
|
|
var canvas = new Fabric.Canvas(canvas_node);
|
|
var content = userDoc.content;
|
|
canvas.loadFromJSON(content, function () {
|
|
|
|
var w = 0;
|
|
var h = 0;
|
|
var MAX = 8192;
|
|
canvas.forEachObject(function (obj) {
|
|
var c = obj.getCoords();
|
|
Object.keys(c).forEach(function (k) {
|
|
if (c[k].x > w) { w = c[k].x + 1; }
|
|
if (c[k].y > h) { h = c[k].y + 1; }
|
|
});
|
|
});
|
|
w = Math.min(w, MAX);
|
|
h = Math.min(h, MAX);
|
|
canvas.setWidth(w);
|
|
canvas.setHeight(h);
|
|
canvas.calcOffset();
|
|
|
|
module.ext = '.png';
|
|
canvas_node.toBlob(cb);
|
|
/*
|
|
module.ext = '.svg';
|
|
cb(new Blob([canvas.toSVG()], {type: 'image/svg+xml'}));
|
|
*/
|
|
});
|
|
};
|
|
|
|
return module;
|
|
});
|
|
|