gliffy / canvas2svg

Translates HTML5 Canvas draw commands to SVG
MIT License
683 stars 155 forks source link

Font parsing fails on "normal 12px 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif" #74

Open makareth opened 4 years ago

makareth commented 4 years ago

Seen on v1.0.15.

Sorry to tell but I gave up understanding this regex : regex = /^\s(?=(?:(?:[-a-z]+\s){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s\/\s(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s([-,\"\sa-z]+?)\s*$/i;

Shouldn't "normal 12px 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif" be parseable ?

Chrome console shows as follows : ERROR TypeError: Cannot read property '1' of null at ctx.push../node_modules/canvas2svg/canvas2svg.js.ctx.__parseFont (VM9279 vendor.js:90992) at ctx.push../node_modules/canvas2svg/canvas2svg.js.ctx.__applyText (VM9279 vendor.js:91039) at ctx.push../node_modules/canvas2svg/canvas2svg.js.ctx.fillText (VM9279 vendor.js:91066) at fillText (VM9279 vendor.js:106831)

murkle commented 4 years ago

See https://github.com/gliffy/canvas2svg/issues/68 for fix