diff --git a/src/layoutBuilder.js b/src/layoutBuilder.js index 751af6cc1..ebbaef2a9 100644 --- a/src/layoutBuilder.js +++ b/src/layoutBuilder.js @@ -19,6 +19,7 @@ var getNodeId = require('./helpers').getNodeId; var isFunction = require('./helpers').isFunction; var TextTools = require('./textTools'); var StyleContextStack = require('./styleContextStack'); +var isNumber = require('./helpers').isNumber; function addAll(target, otherArray) { otherArray.forEach(function (item) { @@ -258,7 +259,7 @@ LayoutBuilder.prototype.addWatermark = function (watermark, fontProvider, defaul watermark.font = watermark.font || defaultStyle.font || 'Roboto'; watermark.fontSize = watermark.fontSize || 'auto'; watermark.color = watermark.color || 'black'; - watermark.opacity = watermark.opacity || 0.6; + watermark.opacity = isNumber(watermark.opacity) ? watermark.opacity : 0.6; watermark.bold = watermark.bold || false; watermark.italics = watermark.italics || false; watermark.angle = !isUndefined(watermark.angle) && !isNull(watermark.angle) ? watermark.angle : null; diff --git a/src/printer.js b/src/printer.js index 919a3d08b..c108459c8 100644 --- a/src/printer.js +++ b/src/printer.js @@ -475,7 +475,8 @@ function renderLine(line, x, y, pdfKitDoc) { options.features = inline.fontFeatures; } - pdfKitDoc.opacity(inline.opacity || 1); + var opacity = isNumber(inline.opacity) ? inline.opacity : 1; + pdfKitDoc.opacity(opacity); pdfKitDoc.fill(inline.color || 'black'); pdfKitDoc._font = inline.font; @@ -586,22 +587,26 @@ function renderVector(vector, pdfKitDoc) { vector.color = gradient; } + + var fillOpacity = isNumber(vector.fillOpacity) ? vector.fillOpacity : 1; + var strokeOpacity = isNumber(vector.strokeOpacity) ? vector.strokeOpacity : 1; if (vector.color && vector.lineColor) { - pdfKitDoc.fillColor(vector.color, vector.fillOpacity || 1); - pdfKitDoc.strokeColor(vector.lineColor, vector.strokeOpacity || 1); + pdfKitDoc.fillColor(vector.color, fillOpacity); + pdfKitDoc.strokeColor(vector.lineColor, strokeOpacity); pdfKitDoc.fillAndStroke(); } else if (vector.color) { - pdfKitDoc.fillColor(vector.color, vector.fillOpacity || 1); + pdfKitDoc.fillColor(vector.color, fillOpacity); pdfKitDoc.fill(); } else { - pdfKitDoc.strokeColor(vector.lineColor || 'black', vector.strokeOpacity || 1); + pdfKitDoc.strokeColor(vector.lineColor || 'black', strokeOpacity); pdfKitDoc.stroke(); } } function renderImage(image, x, y, pdfKitDoc) { - pdfKitDoc.opacity(image.opacity || 1); + var opacity = isNumber(image.opacity) ? image.opacity : 1; + pdfKitDoc.opacity(opacity); pdfKitDoc.image(image.image, image.x, image.y, { width: image._width, height: image._height }); if (image.link) { pdfKitDoc.link(image.x, image.y, image._width, image._height, image.link);