var upscale = this.fluidbook.settings.svgToCanvasUpscale !== undefined ? this.fluidbook.settings.svgToCanvasUpscale : 1;
- var z = this.fluidbook.resize.bookScale * upscale;
- var mz = this.fluidbook.resize.bookScale * this.fluidbook.zoom.max * upscale;
-
+ var z = upscale;
+ var mz = this.fluidbook.zoom.max * upscale * 1.1;
$('canvas[data-page]').each(function () {
if ($this.fluidbook.zoom.zoom === 1 && $(this).hasClass('z')) {
}
var page = $(this).data('page');
- var dim = $this.getPageDimensions(page);
+ var c = $(this).closest('.texts');
+ var tw = $(c).width();
+ var th = $(c).height();
+
- var w = dim.width * z;
- var h = dim.height * z;
- var wz = dim.width * mz;
- var hz = dim.height * mz;
+ var w = tw * z;
+ var h = th * z;
+ var wz = tw * mz;
+ var hz = th * mz;
var canvas = $(this).get(0);
- if ($(this).data('bookScale') === z) {
+ if ($(this).data('bookScale') === w) {
return;
}
+ var cz = $(this).hasClass('z') ? mz : z;
var cw = $(this).hasClass('z') ? wz : w;
var ch = $(this).hasClass('z') ? hz : h;
- canvas.width = cw;
- canvas.height = ch;
+ canvas.width = cw + 30;
+ canvas.height = ch + 30;
+
+ if (cz === 1) {
+ $(canvas).css('transform', null);
+ } else {
+ $(canvas).css('transform', 'scale(' + (1 / cz) + ')');
+ }
var ctx = canvas.getContext("2d");
- ctx.clearRect(0, 0, cw, ch);
var img = $this.texts[page].get(0);
if (img.width === 0) {
$this._preloadPage(page, callback);
return;
}
- ctx.drawImage(img, 0, 0, cw, ch);
- $(this).data('bookScale', z);
+ ctx.drawImage(img, 0, 0, img.width * 0.998, img.height * 0.998, 0, 0, cw, ch);
+ $(this).data('bookScale', w);
});
},