diff --git a/examples/basic.js b/examples/basic.js index 023c323..a3f17ee 100644 --- a/examples/basic.js +++ b/examples/basic.js @@ -2,20 +2,46 @@ const { Buffer } = require('buffer') const { readFileSync, writeFileSync } = require('fs') const { join } = require('path') +const { convertSVGTextToPath, GlobalFonts } = require('@napi-rs/canvas') +const { render } = require('@resvg/resvg-js') + const { FontKit } = require('../wasm-node') const FONT_PATH = join(__dirname, 'OpenSans-Italic.ttf') +const glyphName = 'B' const data = readFileSync(FONT_PATH) const fontkit = new FontKit() const key = fontkit.add_font_from_buffer(data) const font = fontkit.query(key) -const svgPath = font.glyph_path('A').to_string() -console.info('em-box = ', font.units_per_em) +const svgPath = font.glyph_path(glyphName).to_string() +const width = font.units_per_em // embox +const ascender = font.ascender +const descender = font.descender +const height = ascender - descender + +console.info('em-box = ', width) +console.info('ascender = ', ascender) +console.info('descender = ', descender) -const svg = ` +const svg = ` ` writeFileSync(join(__dirname, './out.svg'), Buffer.from(svg)) console.info(svg) + +const svgText = ` + ${glyphName} + +` + +GlobalFonts.registerFromPath(FONT_PATH) +const result = convertSVGTextToPath(svgText) +console.info('skr-canvas \n', result.toString('utf8')) + +writeFileSync(join(__dirname, './skr-canvas.svg'), result) + +const pngData = render(result.toString('utf8')) + +writeFileSync(join(__dirname, './foo.png'), pngData) diff --git a/examples/foo.png b/examples/foo.png new file mode 100644 index 0000000..eb7d6ec Binary files /dev/null and b/examples/foo.png differ diff --git a/examples/out.svg b/examples/out.svg index a1b65cb..5ed4037 100644 --- a/examples/out.svg +++ b/examples/out.svg @@ -1,3 +1,3 @@ - - + + diff --git a/examples/skr-canvas.svg b/examples/skr-canvas.svg new file mode 100644 index 0000000..987f348 --- /dev/null +++ b/examples/skr-canvas.svg @@ -0,0 +1,4 @@ + + + + diff --git a/package.json b/package.json index 947c6e1..ab9e74d 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "url": "git@github.com:alibaba/font-toolkit.git" }, "devDependencies": { + "@napi-rs/canvas": "^0.1.21", "@swc-node/register": "^1.4.2", "@typescript-eslint/eslint-plugin": "^5.15.0", "@typescript-eslint/parser": "^5.15.0",