mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
Merge branch 'fix-doc-measurements' of https://github.com/ddrscott/html2canvas into ddrscott-fix-doc-measurements
Conflicts: dist/html2canvas.js dist/html2canvas.min.js src/core.js
This commit is contained in:
commit
e80fe312ee
48
dist/html2canvas.js
vendored
48
dist/html2canvas.js
vendored
@ -602,8 +602,8 @@ function renderDocument(document, options, windowWidth, windowHeight) {
|
||||
var support = new Support(clonedWindow.document);
|
||||
var imageLoader = new ImageLoader(options, support);
|
||||
var bounds = getBounds(node);
|
||||
var width = options.width != null ? options.width : options.type === "view" ? Math.min(bounds.width, windowWidth) : documentWidth();
|
||||
var height = options.height != null ? options.height : options.type === "view" ? Math.min(bounds.height, windowHeight) : documentHeight();
|
||||
var width = options.width != null ? options.width : options.type === "view" ? Math.min(bounds.width, windowWidth) : documentWidth(clonedWindow.document);
|
||||
var height = options.height != null ? options.height : options.type === "view" ? Math.min(bounds.height, windowHeight) : documentHeight(clonedWindow.document);
|
||||
var renderer = new CanvasRenderer(width, height, imageLoader, options, document);
|
||||
var parser = new NodeParser(node, renderer, support, imageLoader, options);
|
||||
return parser.ready.then(function() {
|
||||
@ -632,19 +632,19 @@ function crop(canvas, bounds) {
|
||||
return croppedCanvas;
|
||||
}
|
||||
|
||||
function documentWidth () {
|
||||
function documentWidth (doc) {
|
||||
return Math.max(
|
||||
Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
|
||||
Math.max(document.body.offsetWidth, document.documentElement.offsetWidth),
|
||||
Math.max(document.body.clientWidth, document.documentElement.clientWidth)
|
||||
Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth),
|
||||
Math.max(doc.body.offsetWidth, doc.documentElement.offsetWidth),
|
||||
Math.max(doc.body.clientWidth, doc.documentElement.clientWidth)
|
||||
);
|
||||
}
|
||||
|
||||
function documentHeight () {
|
||||
function documentHeight (doc) {
|
||||
return Math.max(
|
||||
Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
|
||||
Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
|
||||
Math.max(document.body.clientHeight, document.documentElement.clientHeight)
|
||||
Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight),
|
||||
Math.max(doc.body.offsetHeight, doc.documentElement.offsetHeight),
|
||||
Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
|
||||
);
|
||||
}
|
||||
|
||||
@ -841,8 +841,6 @@ GradientContainer.prototype.TYPES = {
|
||||
RADIAL: 2
|
||||
};
|
||||
|
||||
GradientContainer.prototype.angleRegExp = /([+-]?\d*\.?\d+)(deg|grad|rad|turn)/;
|
||||
|
||||
function ImageContainer(src, cors) {
|
||||
this.src = src;
|
||||
this.image = new Image();
|
||||
@ -1042,32 +1040,6 @@ function LinearGradientContainer(imageData) {
|
||||
this.x1 = x0;
|
||||
this.y1 = y0;
|
||||
break;
|
||||
default:
|
||||
var angle = position.match(this.angleRegExp);
|
||||
if (angle) {
|
||||
switch(angle[2]) {
|
||||
case "deg":
|
||||
var angleDeg = parseFloat(angle[1]);
|
||||
var radians = angleDeg / (180 / Math.PI);
|
||||
var slope = Math.tan(radians); // m
|
||||
|
||||
var perpendicularSlope = -1 / slope;
|
||||
|
||||
|
||||
|
||||
// y = 2
|
||||
// y = m * x
|
||||
// 2 = m * x
|
||||
|
||||
this.y0 = 2 / Math.tan(slope) / 2; // 1
|
||||
// console.log(radians, angle);
|
||||
this.x0 = 0;
|
||||
this.x1 = 1;
|
||||
this.y1 = 0;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, this);
|
||||
} else {
|
||||
|
4
dist/html2canvas.min.js
vendored
4
dist/html2canvas.min.js
vendored
File diff suppressed because one or more lines are too long
20
src/core.js
20
src/core.js
@ -34,8 +34,8 @@ function renderDocument(document, options, windowWidth, windowHeight) {
|
||||
var support = new Support(clonedWindow.document);
|
||||
var imageLoader = new ImageLoader(options, support);
|
||||
var bounds = getBounds(node);
|
||||
var width = options.width != null ? options.width : options.type === "view" ? Math.min(bounds.width, windowWidth) : documentWidth();
|
||||
var height = options.height != null ? options.height : options.type === "view" ? Math.min(bounds.height, windowHeight) : documentHeight();
|
||||
var width = options.width != null ? options.width : options.type === "view" ? Math.min(bounds.width, windowWidth) : documentWidth(clonedWindow.document);
|
||||
var height = options.height != null ? options.height : options.type === "view" ? Math.min(bounds.height, windowHeight) : documentHeight(clonedWindow.document);
|
||||
var renderer = new CanvasRenderer(width, height, imageLoader, options, document);
|
||||
var parser = new NodeParser(node, renderer, support, imageLoader, options);
|
||||
return parser.ready.then(function() {
|
||||
@ -64,19 +64,19 @@ function crop(canvas, bounds) {
|
||||
return croppedCanvas;
|
||||
}
|
||||
|
||||
function documentWidth () {
|
||||
function documentWidth (doc) {
|
||||
return Math.max(
|
||||
Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
|
||||
Math.max(document.body.offsetWidth, document.documentElement.offsetWidth),
|
||||
Math.max(document.body.clientWidth, document.documentElement.clientWidth)
|
||||
Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth),
|
||||
Math.max(doc.body.offsetWidth, doc.documentElement.offsetWidth),
|
||||
Math.max(doc.body.clientWidth, doc.documentElement.clientWidth)
|
||||
);
|
||||
}
|
||||
|
||||
function documentHeight () {
|
||||
function documentHeight (doc) {
|
||||
return Math.max(
|
||||
Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
|
||||
Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
|
||||
Math.max(document.body.clientHeight, document.documentElement.clientHeight)
|
||||
Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight),
|
||||
Math.max(doc.body.offsetHeight, doc.documentElement.offsetHeight),
|
||||
Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user