mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-05-02 11:04:43 +00:00
Fix text offsets and size in SVG
This commit is contained in:
parent
f3b7884827
commit
5e385e5ed0
5 changed files with 62 additions and 11 deletions
23
dist/fabric.js
vendored
23
dist/fabric.js
vendored
|
|
@ -18366,8 +18366,8 @@ fabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Imag
|
|||
|
||||
ctx.save();
|
||||
var m = this.transformMatrix;
|
||||
if (m && !this.group) {
|
||||
ctx.setTransform(m[0], m[1], m[2], m[3], m[4], m[5]);
|
||||
if (m && (!this.group || this.group.type === 'path-group')) {
|
||||
ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
|
||||
}
|
||||
this._render(ctx);
|
||||
if (!noTransform && this.active) {
|
||||
|
|
@ -18651,7 +18651,14 @@ fabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Imag
|
|||
* @see: http://www.w3.org/TR/SVG/text.html#TextElement
|
||||
*/
|
||||
fabric.Text.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(
|
||||
'x y font-family font-style font-weight font-size text-decoration'.split(' '));
|
||||
'x y dx dy font-family font-style font-weight font-size text-decoration'.split(' '));
|
||||
|
||||
/**
|
||||
* Default SVG font size
|
||||
* @static
|
||||
* @memberOf fabric.Text
|
||||
*/
|
||||
fabric.Text.DEFAULT_SVG_FONT_SIZE = 16;
|
||||
|
||||
/**
|
||||
* Returns fabric.Text instance from an SVG element (<b>not yet implemented</b>)
|
||||
|
|
@ -18669,6 +18676,16 @@ fabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Imag
|
|||
var parsedAttributes = fabric.parseAttributes(element, fabric.Text.ATTRIBUTE_NAMES);
|
||||
options = fabric.util.object.extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes);
|
||||
|
||||
if ('dx' in parsedAttributes) {
|
||||
options.left += parsedAttributes.dx;
|
||||
}
|
||||
if ('dy' in parsedAttributes) {
|
||||
options.top += parsedAttributes.dy;
|
||||
}
|
||||
if (!('fontSize' in options)) {
|
||||
options.fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;
|
||||
}
|
||||
|
||||
var text = new fabric.Text(element.textContent, options);
|
||||
|
||||
/*
|
||||
|
|
|
|||
4
dist/fabric.min.js
vendored
4
dist/fabric.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
dist/fabric.min.js.gz
vendored
BIN
dist/fabric.min.js.gz
vendored
Binary file not shown.
23
dist/fabric.require.js
vendored
23
dist/fabric.require.js
vendored
|
|
@ -18366,8 +18366,8 @@ fabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Imag
|
|||
|
||||
ctx.save();
|
||||
var m = this.transformMatrix;
|
||||
if (m && !this.group) {
|
||||
ctx.setTransform(m[0], m[1], m[2], m[3], m[4], m[5]);
|
||||
if (m && (!this.group || this.group.type === 'path-group')) {
|
||||
ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
|
||||
}
|
||||
this._render(ctx);
|
||||
if (!noTransform && this.active) {
|
||||
|
|
@ -18651,7 +18651,14 @@ fabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Imag
|
|||
* @see: http://www.w3.org/TR/SVG/text.html#TextElement
|
||||
*/
|
||||
fabric.Text.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(
|
||||
'x y font-family font-style font-weight font-size text-decoration'.split(' '));
|
||||
'x y dx dy font-family font-style font-weight font-size text-decoration'.split(' '));
|
||||
|
||||
/**
|
||||
* Default SVG font size
|
||||
* @static
|
||||
* @memberOf fabric.Text
|
||||
*/
|
||||
fabric.Text.DEFAULT_SVG_FONT_SIZE = 16;
|
||||
|
||||
/**
|
||||
* Returns fabric.Text instance from an SVG element (<b>not yet implemented</b>)
|
||||
|
|
@ -18669,6 +18676,16 @@ fabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Imag
|
|||
var parsedAttributes = fabric.parseAttributes(element, fabric.Text.ATTRIBUTE_NAMES);
|
||||
options = fabric.util.object.extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes);
|
||||
|
||||
if ('dx' in parsedAttributes) {
|
||||
options.left += parsedAttributes.dx;
|
||||
}
|
||||
if ('dy' in parsedAttributes) {
|
||||
options.top += parsedAttributes.dy;
|
||||
}
|
||||
if (!('fontSize' in options)) {
|
||||
options.fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;
|
||||
}
|
||||
|
||||
var text = new fabric.Text(element.textContent, options);
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -768,8 +768,8 @@
|
|||
|
||||
ctx.save();
|
||||
var m = this.transformMatrix;
|
||||
if (m && !this.group) {
|
||||
ctx.setTransform(m[0], m[1], m[2], m[3], m[4], m[5]);
|
||||
if (m && (!this.group || this.group.type === 'path-group')) {
|
||||
ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
|
||||
}
|
||||
this._render(ctx);
|
||||
if (!noTransform && this.active) {
|
||||
|
|
@ -1053,7 +1053,14 @@
|
|||
* @see: http://www.w3.org/TR/SVG/text.html#TextElement
|
||||
*/
|
||||
fabric.Text.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(
|
||||
'x y font-family font-style font-weight font-size text-decoration'.split(' '));
|
||||
'x y dx dy font-family font-style font-weight font-size text-decoration'.split(' '));
|
||||
|
||||
/**
|
||||
* Default SVG font size
|
||||
* @static
|
||||
* @memberOf fabric.Text
|
||||
*/
|
||||
fabric.Text.DEFAULT_SVG_FONT_SIZE = 16;
|
||||
|
||||
/**
|
||||
* Returns fabric.Text instance from an SVG element (<b>not yet implemented</b>)
|
||||
|
|
@ -1071,6 +1078,16 @@
|
|||
var parsedAttributes = fabric.parseAttributes(element, fabric.Text.ATTRIBUTE_NAMES);
|
||||
options = fabric.util.object.extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes);
|
||||
|
||||
if ('dx' in parsedAttributes) {
|
||||
options.left += parsedAttributes.dx;
|
||||
}
|
||||
if ('dy' in parsedAttributes) {
|
||||
options.top += parsedAttributes.dy;
|
||||
}
|
||||
if (!('fontSize' in options)) {
|
||||
options.fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;
|
||||
}
|
||||
|
||||
var text = new fabric.Text(element.textContent, options);
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue