Merge remote branch 'upstream/master'
This commit is contained in:
commit
25d4fb0d81
72
pdf.js
72
pdf.js
@ -4331,7 +4331,7 @@ var PartialEvaluator = (function() {
|
|||||||
var startRange = tokens[j];
|
var startRange = tokens[j];
|
||||||
var endRange = tokens[j + 1];
|
var endRange = tokens[j + 1];
|
||||||
var code = tokens[j + 2];
|
var code = tokens[j + 2];
|
||||||
while(startRange < endRange) {
|
while (startRange < endRange) {
|
||||||
encodingMap[startRange] = code++;
|
encodingMap[startRange] = code++;
|
||||||
++startRange;
|
++startRange;
|
||||||
}
|
}
|
||||||
@ -4365,9 +4365,9 @@ var PartialEvaluator = (function() {
|
|||||||
case 0x5D:
|
case 0x5D:
|
||||||
// collect array items
|
// collect array items
|
||||||
var items = [], item;
|
var items = [], item;
|
||||||
while (tokens.length && (item = tokens.pop()) != beginArrayToken) {
|
while (tokens.length &&
|
||||||
|
(item = tokens.pop()) != beginArrayToken)
|
||||||
items.unshift(item);
|
items.unshift(item);
|
||||||
}
|
|
||||||
tokens.push(items);
|
tokens.push(items);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -5359,9 +5359,10 @@ var SeparationCS = (function() {
|
|||||||
var tinted = this.tintFn.func(color);
|
var tinted = this.tintFn.func(color);
|
||||||
return this.base.getRgb(tinted);
|
return this.base.getRgb(tinted);
|
||||||
},
|
},
|
||||||
getRgbBuffer: function sepcs_getRgbBuffer(input) {
|
getRgbBuffer: function sepcs_getRgbBuffer(input, bits) {
|
||||||
var tintFn = this.tintFn;
|
var tintFn = this.tintFn;
|
||||||
var base = this.base;
|
var base = this.base;
|
||||||
|
var scale = 1 / ((1 << bits) - 1);
|
||||||
|
|
||||||
var length = 3 * input.length;
|
var length = 3 * input.length;
|
||||||
var pos = 0;
|
var pos = 0;
|
||||||
@ -5369,12 +5370,12 @@ var SeparationCS = (function() {
|
|||||||
var numComps = base.numComps;
|
var numComps = base.numComps;
|
||||||
var baseBuf = new Uint8Array(numComps * input.length);
|
var baseBuf = new Uint8Array(numComps * input.length);
|
||||||
for (var i = 0, ii = input.length; i < ii; ++i) {
|
for (var i = 0, ii = input.length; i < ii; ++i) {
|
||||||
var scaled = input[i] / 255;
|
var scaled = input[i] * scale;
|
||||||
var tinted = tintFn.func([scaled]);
|
var tinted = tintFn.func([scaled]);
|
||||||
for (var j = 0; j < numComps; ++j)
|
for (var j = 0; j < numComps; ++j)
|
||||||
baseBuf[pos++] = 255 * tinted[j];
|
baseBuf[pos++] = 255 * tinted[j];
|
||||||
}
|
}
|
||||||
return base.getRgbBuffer(baseBuf);
|
return base.getRgbBuffer(baseBuf, 8);
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -5443,7 +5444,7 @@ var IndexedCS = (function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return base.getRgbBuffer(baseBuf);
|
return base.getRgbBuffer(baseBuf, 8);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return constructor;
|
return constructor;
|
||||||
@ -5461,11 +5462,12 @@ var DeviceGrayCS = (function() {
|
|||||||
var c = color[0];
|
var c = color[0];
|
||||||
return [c, c, c];
|
return [c, c, c];
|
||||||
},
|
},
|
||||||
getRgbBuffer: function graycs_getRgbBuffer(input) {
|
getRgbBuffer: function graycs_getRgbBuffer(input, bits) {
|
||||||
|
var scale = 255 / ((1 << bits) - 1);
|
||||||
var length = input.length * 3;
|
var length = input.length * 3;
|
||||||
var rgbBuf = new Uint8Array(length);
|
var rgbBuf = new Uint8Array(length);
|
||||||
for (var i = 0, j = 0; i < length; ++i) {
|
for (var i = 0, j = 0; i < length; ++i) {
|
||||||
var c = input[i];
|
var c = (scale * input[i]) | 0;
|
||||||
rgbBuf[j++] = c;
|
rgbBuf[j++] = c;
|
||||||
rgbBuf[j++] = c;
|
rgbBuf[j++] = c;
|
||||||
rgbBuf[j++] = c;
|
rgbBuf[j++] = c;
|
||||||
@ -5477,7 +5479,7 @@ var DeviceGrayCS = (function() {
|
|||||||
})();
|
})();
|
||||||
|
|
||||||
var DeviceRgbCS = (function() {
|
var DeviceRgbCS = (function() {
|
||||||
function constructor() {
|
function constructor(bits) {
|
||||||
this.name = 'DeviceRGB';
|
this.name = 'DeviceRGB';
|
||||||
this.numComps = 3;
|
this.numComps = 3;
|
||||||
this.defaultColor = [0, 0, 0];
|
this.defaultColor = [0, 0, 0];
|
||||||
@ -5486,8 +5488,15 @@ var DeviceRgbCS = (function() {
|
|||||||
getRgb: function rgbcs_getRgb(color) {
|
getRgb: function rgbcs_getRgb(color) {
|
||||||
return color;
|
return color;
|
||||||
},
|
},
|
||||||
getRgbBuffer: function rgbcs_getRgbBuffer(input) {
|
getRgbBuffer: function rgbcs_getRgbBuffer(input, bits) {
|
||||||
return input;
|
if (bits == 8)
|
||||||
|
return input;
|
||||||
|
var scale = 255 / ((1 << bits) - 1);
|
||||||
|
var i, length = input.length;
|
||||||
|
var rgbBuf = new Uint8Array(length);
|
||||||
|
for (i = 0; i < length; ++i)
|
||||||
|
rgbBuf[i] = (scale * input[i]) | 0;
|
||||||
|
return rgbBuf;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return constructor;
|
return constructor;
|
||||||
@ -5554,7 +5563,8 @@ var DeviceCmykCS = (function() {
|
|||||||
|
|
||||||
return [r, g, b];
|
return [r, g, b];
|
||||||
},
|
},
|
||||||
getRgbBuffer: function cmykcs_getRgbBuffer(colorBuf) {
|
getRgbBuffer: function cmykcs_getRgbBuffer(colorBuf, bits) {
|
||||||
|
var scale = 1 / ((1 << bits) - 1);
|
||||||
var length = colorBuf.length / 4;
|
var length = colorBuf.length / 4;
|
||||||
var rgbBuf = new Uint8Array(length * 3);
|
var rgbBuf = new Uint8Array(length * 3);
|
||||||
var rgbBufPos = 0;
|
var rgbBufPos = 0;
|
||||||
@ -5563,7 +5573,7 @@ var DeviceCmykCS = (function() {
|
|||||||
for (var i = 0; i < length; i++) {
|
for (var i = 0; i < length; i++) {
|
||||||
var cmyk = [];
|
var cmyk = [];
|
||||||
for (var j = 0; j < 4; ++j)
|
for (var j = 0; j < 4; ++j)
|
||||||
cmyk.push(colorBuf[colorBufPos++] / 255);
|
cmyk.push(scale * colorBuf[colorBufPos++]);
|
||||||
|
|
||||||
var rgb = this.getRgb(cmyk);
|
var rgb = this.getRgb(cmyk);
|
||||||
for (var j = 0; j < 3; ++j)
|
for (var j = 0; j < 3; ++j)
|
||||||
@ -5946,13 +5956,14 @@ var PDFImage = (function() {
|
|||||||
|
|
||||||
var length = width * height;
|
var length = width * height;
|
||||||
var bufferPos = 0;
|
var bufferPos = 0;
|
||||||
var output = new Uint8Array(length);
|
var output = bpc <= 8 ? new Uint8Array(length) :
|
||||||
|
bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);
|
||||||
|
|
||||||
if (bpc == 1) {
|
if (bpc == 1) {
|
||||||
var valueZero = 0, valueOne = 255;
|
var valueZero = 0, valueOne = 1;
|
||||||
if (decodeMap) {
|
if (decodeMap) {
|
||||||
valueZero = decodeMap[0] ? 255 : 0;
|
valueZero = decodeMap[0] ? 1 : 0;
|
||||||
valueOne = decodeMap[1] ? 255 : 0;
|
valueOne = decodeMap[1] ? 1 : 0;
|
||||||
}
|
}
|
||||||
var rowComps = width * numComps;
|
var rowComps = width * numComps;
|
||||||
var mask = 0;
|
var mask = 0;
|
||||||
@ -5977,25 +5988,22 @@ var PDFImage = (function() {
|
|||||||
if (decodeMap != null)
|
if (decodeMap != null)
|
||||||
TODO('interpolate component values');
|
TODO('interpolate component values');
|
||||||
var rowComps = width * numComps;
|
var rowComps = width * numComps;
|
||||||
var bits = 0;
|
var bits, buf;
|
||||||
var buf = 0;
|
|
||||||
|
|
||||||
for (var i = 0, ii = length; i < ii; ++i) {
|
for (var i = 0, ii = length; i < ii; ++i) {
|
||||||
|
if (i % rowComps == 0) {
|
||||||
|
buf = 0;
|
||||||
|
bits = 0;
|
||||||
|
}
|
||||||
|
|
||||||
while (bits < bpc) {
|
while (bits < bpc) {
|
||||||
buf = (buf << 8) | buffer[bufferPos++];
|
buf = (buf << 8) | buffer[bufferPos++];
|
||||||
bits += 8;
|
bits += 8;
|
||||||
}
|
}
|
||||||
var remainingBits = bits - bpc;
|
|
||||||
var ret = buf >> remainingBits;
|
|
||||||
|
|
||||||
if (i % rowComps == 0) {
|
var remainingBits = bits - bpc;
|
||||||
buf = 0;
|
output[i] = buf >> remainingBits;
|
||||||
bits = 0;
|
buf = buf & ((1 << remainingBits) - 1);
|
||||||
} else {
|
bits = remainingBits;
|
||||||
buf = buf & ((1 << remainingBits) - 1);
|
|
||||||
bits = remainingBits;
|
|
||||||
}
|
|
||||||
output[i] = Math.round(255 * ret / ((1 << bpc) - 1));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return output;
|
return output;
|
||||||
@ -6055,7 +6063,7 @@ var PDFImage = (function() {
|
|||||||
var imgArray = this.image.getBytes(height * rowBytes);
|
var imgArray = this.image.getBytes(height * rowBytes);
|
||||||
|
|
||||||
var comps = this.colorSpace.getRgbBuffer(
|
var comps = this.colorSpace.getRgbBuffer(
|
||||||
this.getComponents(imgArray, decodeMap));
|
this.getComponents(imgArray, decodeMap), bpc);
|
||||||
var compsPos = 0;
|
var compsPos = 0;
|
||||||
var opacity = this.getOpacity();
|
var opacity = this.getOpacity();
|
||||||
var opacityPos = 0;
|
var opacityPos = 0;
|
||||||
|
1
test/pdfs/pdkids.pdf.link
Normal file
1
test/pdfs/pdkids.pdf.link
Normal file
@ -0,0 +1 @@
|
|||||||
|
http://www.archive.org/download/PdKids/PdKids.pdf
|
@ -103,5 +103,11 @@
|
|||||||
"link": true,
|
"link": true,
|
||||||
"rounds": 1,
|
"rounds": 1,
|
||||||
"type": "eq"
|
"type": "eq"
|
||||||
|
},
|
||||||
|
{ "id": "pdkids",
|
||||||
|
"file": "pdfs/pdkids.pdf",
|
||||||
|
"link": true,
|
||||||
|
"rounds": 1,
|
||||||
|
"type": "eq"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user