mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-19 14:48:08 +02:00
Merge pull request #17905 from timvandermeij/annotation-dash-array
Fix annotation border style parsing by handling empty dash arrays
This commit is contained in:
commit
2aeafc0d55
5 changed files with 22 additions and 4 deletions
|
@ -1474,9 +1474,9 @@ class AnnotationBorderStyle {
|
|||
// We validate the dash array, but we do not use it because CSS does not
|
||||
// allow us to change spacing of dashes. For more information, visit
|
||||
// http://www.w3.org/TR/css3-background/#the-border-style.
|
||||
if (Array.isArray(dashArray) && dashArray.length > 0) {
|
||||
// According to the PDF specification: the elements in `dashArray`
|
||||
// shall be numbers that are nonnegative and not all equal to zero.
|
||||
if (Array.isArray(dashArray)) {
|
||||
// The PDF specification states that elements in the dash array, if
|
||||
// present, must be non-negative numbers and must not all equal zero.
|
||||
let isValid = true;
|
||||
let allZeros = true;
|
||||
for (const element of dashArray) {
|
||||
|
@ -1488,7 +1488,7 @@ class AnnotationBorderStyle {
|
|||
allZeros = false;
|
||||
}
|
||||
}
|
||||
if (isValid && !allZeros) {
|
||||
if (dashArray.length === 0 || (isValid && !allZeros)) {
|
||||
this.dashArray = dashArray;
|
||||
|
||||
if (forceStyle) {
|
||||
|
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
|
@ -514,6 +514,7 @@
|
|||
!issue11549_reduced.pdf
|
||||
!issue8097_reduced.pdf
|
||||
!issue15262.pdf
|
||||
!issue17904.pdf
|
||||
!bug1743245.pdf
|
||||
!quadpoints.pdf
|
||||
!transparent.pdf
|
||||
|
|
BIN
test/pdfs/issue17904.pdf
Normal file
BIN
test/pdfs/issue17904.pdf
Normal file
Binary file not shown.
|
@ -3858,6 +3858,14 @@
|
|||
"type": "eq",
|
||||
"annotations": true
|
||||
},
|
||||
{
|
||||
"id": "issue17904",
|
||||
"file": "pdfs/issue17904.pdf",
|
||||
"md5": "4b8f0b565a61bf068ef72d232c997cef",
|
||||
"rounds": 1,
|
||||
"type": "eq",
|
||||
"annotations": true
|
||||
},
|
||||
{
|
||||
"id": "issue6179_reduced",
|
||||
"file": "pdfs/issue6179_reduced.pdf",
|
||||
|
|
|
@ -549,6 +549,15 @@ describe("annotation", function () {
|
|||
expect(borderStyle.dashArray).toEqual([3]);
|
||||
});
|
||||
|
||||
it("should not set the width to zero if the dash array is empty (issue 17904)", function () {
|
||||
const borderStyle = new AnnotationBorderStyle();
|
||||
borderStyle.setWidth(3);
|
||||
borderStyle.setDashArray([]);
|
||||
|
||||
expect(borderStyle.width).toEqual(3);
|
||||
expect(borderStyle.dashArray).toEqual([]);
|
||||
});
|
||||
|
||||
it("should set and get a valid horizontal corner radius", function () {
|
||||
const borderStyle = new AnnotationBorderStyle();
|
||||
borderStyle.setHorizontalCornerRadius(3);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue