mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-09 09:45:42 +02:00
Refactor code for annotations
This commit is contained in:
parent
e5b5c94925
commit
f8f4b3f45d
39 changed files with 667 additions and 499 deletions
36
src/util.js
36
src/util.js
|
@ -424,11 +424,30 @@ var Util = PDFJS.Util = (function UtilClosure() {
|
|||
}
|
||||
};
|
||||
|
||||
Util.getInheritableProperty = function Util_getInheritableProperty(dict,
|
||||
name) {
|
||||
while (dict && !dict.has(name)) {
|
||||
dict = dict.get('Parent');
|
||||
}
|
||||
if (!dict) {
|
||||
return null;
|
||||
}
|
||||
return dict.get(name);
|
||||
};
|
||||
|
||||
Util.inherit = function Util_inherit(sub, base, prototype) {
|
||||
sub.prototype = Object.create(base.prototype);
|
||||
sub.prototype.constructor = sub;
|
||||
for (var prop in prototype) {
|
||||
sub.prototype[prop] = prototype[prop];
|
||||
}
|
||||
};
|
||||
|
||||
return Util;
|
||||
})();
|
||||
|
||||
var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() {
|
||||
function PageViewport(viewBox, scale, rotation, offsetX, offsetY) {
|
||||
function PageViewport(viewBox, scale, rotation, offsetX, offsetY, dontFlip) {
|
||||
this.viewBox = viewBox;
|
||||
this.scale = scale;
|
||||
this.rotation = rotation;
|
||||
|
@ -440,25 +459,28 @@ var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() {
|
|||
var centerX = (viewBox[2] + viewBox[0]) / 2;
|
||||
var centerY = (viewBox[3] + viewBox[1]) / 2;
|
||||
var rotateA, rotateB, rotateC, rotateD;
|
||||
switch (rotation % 360) {
|
||||
case -180:
|
||||
rotation = rotation % 360;
|
||||
rotation = rotation < 0 ? rotation + 360 : rotation;
|
||||
switch (rotation) {
|
||||
case 180:
|
||||
rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1;
|
||||
break;
|
||||
case -270:
|
||||
case 90:
|
||||
rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0;
|
||||
break;
|
||||
case -90:
|
||||
case 270:
|
||||
rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0;
|
||||
break;
|
||||
//case 360:
|
||||
//case 0:
|
||||
default:
|
||||
rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (dontFlip) {
|
||||
rotateC = -rotateC; rotateD = -rotateD;
|
||||
}
|
||||
|
||||
var offsetCanvasX, offsetCanvasY;
|
||||
var width, height;
|
||||
if (rotateA === 0) {
|
||||
|
@ -494,7 +516,7 @@ var PageViewport = PDFJS.PageViewport = (function PageViewportClosure() {
|
|||
var scale = 'scale' in args ? args.scale : this.scale;
|
||||
var rotation = 'rotation' in args ? args.rotation : this.rotation;
|
||||
return new PageViewport(this.viewBox.slice(), scale, rotation,
|
||||
this.offsetX, this.offsetY);
|
||||
this.offsetX, this.offsetY, args.dontFlip);
|
||||
},
|
||||
convertToViewportPoint: function PageViewport_convertToViewportPoint(x, y) {
|
||||
return Util.applyTransform([x, y], this.transform);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue