Ensure that AnnotationBorderStyle.setWidth is able to handle the input being a Name, to correctly deal with corrupt PDF documents (issue 10385)

This commit is contained in:
Jonas Jenwald 2018-12-31 12:21:28 +01:00
parent 15b3806937
commit 76a9580aeb
2 changed files with 13 additions and 0 deletions

View File

@ -482,6 +482,11 @@ class AnnotationBorderStyle {
* @param {integer} width - The width
*/
setWidth(width) {
// Some corrupt PDF generators may provide the width as a `Name`,
// rather than as a number (fixes issue 10385).
if (isName(width)) {
width = parseFloat(width.name);
}
if (Number.isInteger(width)) {
this.width = width;
}

View File

@ -236,6 +236,14 @@ describe('annotation', function() {
expect(borderStyle.width).toEqual(1);
});
it('should set/get a valid width, when the input is a `Name` (issue 10385)',
function() {
const borderStyle = new AnnotationBorderStyle();
borderStyle.setWidth(Name.get('0'));
expect(borderStyle.width).toEqual(0);
});
it('should set and get a valid style', function() {
const borderStyle = new AnnotationBorderStyle();
borderStyle.setStyle(Name.get('D'));