diff --git a/convert-w2p.js b/convert-w2p.js index 02dac87..00f1670 100644 --- a/convert-w2p.js +++ b/convert-w2p.js @@ -881,8 +881,10 @@ async function convert(input) { if (n.styles.boxShadow && n.styles.boxShadow !== 'none') { var shadowMatch = n.styles.boxShadow.match(/rgba?\(([^)]+)\)\s+(\d+)px\s+(\d+)px\s+(\d+)px/); if (shadowMatch) { - var shadowColor = rgbaToHex('rgb(' + shadowMatch[1] + ')') || '999999'; - shapeOpts.shadow = { type: 'outer', blur: parseInt(shadowMatch[4]), offset: parseInt(shadowMatch[3]), color: shadowColor, opacity: 0.5 }; + var shadowParts = shadowMatch[1].split(',').map(s => s.trim()); + var shadowColor = rgbaToHex('rgb(' + shadowParts.slice(0,3).join(',') + ')') || '999999'; + var shadowAlpha = shadowParts.length > 3 ? parseFloat(shadowParts[3]) : 0.3; + shapeOpts.shadow = { type: 'outer', blur: parseInt(shadowMatch[4]), offset: parseInt(shadowMatch[3]), color: shadowColor, opacity: Math.round(shadowAlpha * 100) / 100 }; } } diff --git a/web-to-ppt/convert-browser.js b/web-to-ppt/convert-browser.js index b8697e4..b8cbac3 100644 --- a/web-to-ppt/convert-browser.js +++ b/web-to-ppt/convert-browser.js @@ -479,8 +479,10 @@ async function convertToPptx(input, onProgress) { if (n.styles.boxShadow && n.styles.boxShadow !== 'none') { var shadowMatch = n.styles.boxShadow.match(/rgba?\(([^)]+)\)\s+(\d+)px\s+(\d+)px\s+(\d+)px/); if (shadowMatch) { - var shadowColor = rgbaToHex('rgb(' + shadowMatch[1] + ')') || '999999'; - shapeOpts.shadow = { type: 'outer', blur: parseInt(shadowMatch[4]), offset: parseInt(shadowMatch[3]), color: shadowColor, opacity: 0.5 }; + var shadowParts = shadowMatch[1].split(',').map(function(s) { return s.trim(); }); + var shadowColor = rgbaToHex('rgb(' + shadowParts.slice(0,3).join(',') + ')') || '999999'; + var shadowAlpha = shadowParts.length > 3 ? parseFloat(shadowParts[3]) : 0.3; + shapeOpts.shadow = { type: 'outer', blur: parseInt(shadowMatch[4]), offset: parseInt(shadowMatch[3]), color: shadowColor, opacity: Math.round(shadowAlpha * 100) / 100 }; } }