Merge pull request #4768 from Snuffleupagus/issue-4766
Handle more cases of invalid line dash patterns in annotation borders
This commit is contained in:
commit
a27f51e37c
@ -105,24 +105,30 @@ var Annotation = (function AnnotationClosure() {
|
|||||||
|
|
||||||
// TODO: implement proper support for annotations with line dash patterns.
|
// TODO: implement proper support for annotations with line dash patterns.
|
||||||
var dashArray = borderArray[3];
|
var dashArray = borderArray[3];
|
||||||
if (data.borderWidth > 0 && dashArray && isArray(dashArray)) {
|
if (data.borderWidth > 0 && dashArray) {
|
||||||
var dashArrayLength = dashArray.length;
|
if (!isArray(dashArray)) {
|
||||||
if (dashArrayLength > 0) {
|
// Ignore the border if dashArray is not actually an array,
|
||||||
// According to the PDF specification: the elements in a dashArray
|
// this is consistent with the behaviour in Adobe Reader.
|
||||||
// shall be numbers that are nonnegative and not all equal to zero.
|
data.borderWidth = 0;
|
||||||
var isInvalid = false;
|
} else {
|
||||||
var numPositive = 0;
|
var dashArrayLength = dashArray.length;
|
||||||
for (var i = 0; i < dashArrayLength; i++) {
|
if (dashArrayLength > 0) {
|
||||||
var validNumber = (+dashArray[i] >= 0);
|
// According to the PDF specification: the elements in a dashArray
|
||||||
if (!validNumber) {
|
// shall be numbers that are nonnegative and not all equal to zero.
|
||||||
isInvalid = true;
|
var isInvalid = false;
|
||||||
break;
|
var numPositive = 0;
|
||||||
} else if (dashArray[i] > 0) {
|
for (var i = 0; i < dashArrayLength; i++) {
|
||||||
numPositive++;
|
var validNumber = (+dashArray[i] >= 0);
|
||||||
|
if (!validNumber) {
|
||||||
|
isInvalid = true;
|
||||||
|
break;
|
||||||
|
} else if (dashArray[i] > 0) {
|
||||||
|
numPositive++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isInvalid || numPositive === 0) {
|
||||||
|
data.borderWidth = 0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (isInvalid || numPositive === 0) {
|
|
||||||
data.borderWidth = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user