diff --git a/src/core/service/api/context/canvas.js b/src/core/service/api/context/canvas.js index 9adcc7a1027cc2e677042983032f1481d8217c3b..6ebda3c2a133733a6026e01a1945adb602c07dc8 100644 --- a/src/core/service/api/context/canvas.js +++ b/src/core/service/api/context/canvas.js @@ -258,6 +258,18 @@ var methods3 = ['setFillStyle', 'setTextAlign', 'setStrokeStyle', 'setGlobalAlph 'setTextBaseline', 'setLineDash' ] +var tempCanvas +function getTempCanvas () { + if (!tempCanvas) { + tempCanvas = document.createElement('canvas') + } + return tempCanvas +} + +function TextMetrics (width) { + this.width = width +} + export class CanvasContext { constructor (id, pageId) { this.id = id @@ -313,8 +325,15 @@ export class CanvasContext { } } // TODO - // measureText (text) { - // } + measureText (text) { + if (typeof document === 'object') { + var c2d = getTempCanvas().getContext('2d') + c2d.font = this.state.font + return new TextMetrics(c2d.measureText(text).width || 0) + } else { + return new TextMetrics(0) + } + } save () { this.actions.push({ method: 'save',