SvgTextSpan class¶
This page explains the SvgTextSpan class.
What interface is this?¶
The SvgTextSpan is the class for an SVG text-span (the child class of SvgText).
You can create an SvgText instance with multiple SvgTextSpan class instances and set different text styles.
Basic usage¶
The SvgTextSpan class constructor requires the text argument.
The constructor also accepts each font’s and style’s argument, such as the font_size, font_family, fill_color, and bold.
If you skip the style settings’ arguments, these settings become the parent SvgText’s styles.
You can use SvgTextSpan instances to create an SvgText instance with the create_with_svg_text_spans class method.
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[
ap.SvgTextSpan(text="Lorem "),
ap.SvgTextSpan(text="ipsum ", font_size=20, fill_color=ap.Color("#0af")),
ap.SvgTextSpan(text="dolor ", font_size=12),
],
fill_color=ap.Color("#aaa"),
font_size=16,
x=20,
y=32,
)
ap.save_overall_html(dest_dir_path="svg_txt_span_basic_usage/")
Notes of the line breaking¶
The SvgTextSpan class ignores line breaks.
For instance, the following example’s text contains a line break (\n), but the text line becomes a single line.
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[
ap.SvgTextSpan(text="Lorem \n"),
ap.SvgTextSpan(text="ipsum \n"),
ap.SvgTextSpan(text="dolor"),
],
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_notes_of_the_line_break/")
If you want to add a line break, please use the SvgText class (not the SvgTextSpan) or create multiple SvgText instances.
text property interface example¶
The text property updates or gets the instance’s text.
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum")
text_span_2.text = ap.String("dolor")
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_text/")
font_size property interface example¶
The font_size property updates or gets the instance’s font size.
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum")
text_span_2.font_size = ap.Int(25)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_font_size/")
font_family property interface example¶
The font_family property updates or gets the instance’s font family.
This property requires an Array of each font name String.
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum")
text_span_2.font_family = ap.Array([ap.String("Impact"), ap.String("Arial")])
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_font_family/")
fill_color property interface example¶
The fill_color property updates or gets the instance’s fill color:
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum")
text_span_2.fill_color = ap.Color("#0af")
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_fill_color/")
fill_alpha property interface example¶
The fill_alpha property updates or gets the instance’s fill alpha (opacity):
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum")
text_span_2.fill_alpha = ap.Number(0.3)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_fill_alpha/")
line_color property interface example¶
The line_color property updates or gets the instance’s line color:
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(
text="Lorem ", line_thickness=1, font_size=20, bold=True
)
text_span_1.line_color = ap.Color("#aaa")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(
text="ipsum", line_thickness=1, font_size=20, bold=True
)
text_span_2.line_color = ap.Color("#0af")
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.COLORLESS,
)
ap.save_overall_html(dest_dir_path="svg_txt_span_line_color/")
line_alpha property interface example¶
The line_alpha property updates or gets the instance’s line alpha (opacity):
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(
text="Lorem ",
line_color=ap.Color("#0af"),
line_thickness=1,
font_size=20,
bold=True,
)
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(
text="ipsum",
line_color=ap.Color("#0af"),
line_thickness=1,
font_size=20,
bold=True,
)
text_span_2.line_alpha = ap.Number(0.3)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.COLORLESS,
)
ap.save_overall_html(dest_dir_path="svg_txt_span_line_alpha/")
line_thickness property interface example¶
The line_thickness property updates or gets the instance’s line thickness (line width):
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(
text="Lorem ",
line_color=ap.Color("#0af"),
font_size=20,
bold=True,
)
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(
text="ipsum",
line_color=ap.Color("#0af"),
font_size=20,
bold=True,
)
text_span_1.line_thickness = ap.Int(3)
text_span_2.line_thickness = ap.Int(3)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.COLORLESS,
)
ap.save_overall_html(dest_dir_path="svg_txt_span_line_thickness/")
bold property interface example¶
The bold property updates or gets the instance’s bold text setting.
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum")
text_span_2.bold = ap.Boolean(True)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_bold/")
italic property interface example¶
The italic property updates or gets the instance’s italic style setting.
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum")
text_span_2.italic = ap.Boolean(True)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_italic/")
delta_x property interface example¶
The delta_x property updates or gets the instance’s delta-x (x-coordinate adjustment).
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=50,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum")
text_span_2.delta_x = ap.Number(-20)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_delta_x/")
delta_y property interface example¶
The delta_y property updates or gets the instance’s delta-y (y-coordinate adjustment).
Note: This setting inherits a y-coordinate from the previous SvgTextSpan instance.
import apysc as ap
stage: ap.Stage = ap.Stage(
background_color=ap.Color("#333"),
stage_width=200,
stage_height=80,
stage_elem_id="stage",
)
text_span_1: ap.SvgTextSpan = ap.SvgTextSpan(text="Lorem ")
text_span_2: ap.SvgTextSpan = ap.SvgTextSpan(text="ipsum ")
text_span_3: ap.SvgTextSpan = ap.SvgTextSpan(text="dolar")
text_span_2.delta_y = ap.Number(10)
text_span_3.delta_y = ap.Number(10)
svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
text_spans=[text_span_1, text_span_2],
font_size=16,
x=20,
y=32,
fill_color=ap.Color("#aaa"),
)
ap.save_overall_html(dest_dir_path="svg_txt_span_delta_y/")
SvgTextSpan constructor API¶
Note: the document build script generates and updates this API document section automatically. Maybe this section is duplicated compared with previous sections.
[Interface signature] __init__(self, *, text: Union[str, apysc._type.string.String], font_size: Union[int, apysc._type.int.Int, NoneType] = None, font_family: Union[List[str], apysc._type.array.Array[apysc._type.string.String], NoneType] = None, fill_color: Union[apysc._color.color.Color, NoneType] = None, fill_alpha: Union[float, apysc._type.number.Number, NoneType] = None, line_color: Union[apysc._color.color.Color, NoneType] = None, line_alpha: Union[float, apysc._type.number.Number, NoneType] = None, line_thickness: Union[int, apysc._type.int.Int, NoneType] = None, bold: Union[bool, apysc._type.boolean.Boolean, NoneType] = None, italic: Union[bool, apysc._type.boolean.Boolean, NoneType] = None, delta_x: Union[float, apysc._type.number.Number] = 0.0, delta_y: Union[float, apysc._type.number.Number] = 0.0, variable_name_suffix: str = '') -> None
[Interface summary]
The class for an SVG text-span (the child class of SvgText).
[Parameters]
text: Union[str, String]A text to use in this class.
font_size: Optional[Union[int, Int]], optionalA font-size setting.
font_family: Optional[Union[Array[String], List[str]]], optionalA font-family setting. Each string in an array needs to be a font name (e.g.,
Times New Roman).
fill_color: Optional[Color], optionalA fill-color setting.
fill_alpha: Optional[Union[float, Number]], optionalA fill-alpha setting.
line_color: Optional[Color], optionalA line-color setting.
line_alpha: Optional[Union[float, Number]], optionalA line-alpha setting.
line_thickness: Optional[Union[int, Int]], optionalA line-thickness (line-width) to set.
bold: Optional[Union[bool, Boolean]], optionalA boolean, whether this text is a bold style or not.
italic: Optional[Union[bool, Boolean]], optionalA boolean, whether a text is an italic style or not (normal).
delta_x: Union[float, Number], optionalA coordinate delta-x setting. Notes: This setting also changes a coordinate of subsequent
SvgTextSpan’s instance.
delta_y: Union[float, Number], optionalA coordinate delta-y setting. Notes: This setting also changes a coordinate of subsequent
SvgTextSpan’s instance.
variable_name_suffix: str, optionalA JavaScript variable name suffix string. This setting is sometimes useful for JavaScript debugging.
[Notes]
・If style settings are None, its styles inherit parent style settings.
[Examples]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage(
... background_color=ap.Color("#333"), stage_width=200, stage_height=50
... )
>>> svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
... text_spans=[
... ap.SvgTextSpan(text="Hello, "),
... ap.SvgTextSpan(text="Hello, ", font_size=14),
... ],
... font_size=20,
... fill_color=ap.Color("#0af"),
... )
[References]
SvgText create_with_svg_text_spans class method API¶
Note: the document build script generates and updates this API document section automatically. Maybe this section is duplicated compared with previous sections.
[Interface signature] create_with_svg_text_spans(*, text_spans: Union[List[apysc._display.svg_text_span.SvgTextSpan], apysc._type.array.Array[apysc._display.svg_text_span.SvgTextSpan]], font_size: Union[int, apysc._type.int.Int] = 16, font_family: Union[List[str], apysc._type.array.Array[apysc._type.string.String], NoneType] = None, x: Union[float, apysc._type.number.Number] = 0.0, y: Union[float, apysc._type.number.Number] = 16.0, fill_color: apysc._color.color.Color = Color("#666666"), fill_alpha: Union[float, apysc._type.number.Number] = 1.0, line_color: apysc._color.color.Color = Color(""), line_alpha: Union[float, apysc._type.number.Number] = 1.0, line_thickness: Union[int, apysc._type.int.Int] = 1, leading: Union[float, apysc._type.number.Number] = 1.5, align: apysc._display.svg_text_align_mixin.SvgTextAlign = <SvgTextAlign.LEFT: 'start'>, bold: Union[bool, apysc._type.boolean.Boolean] = False, italic: Union[bool, apysc._type.boolean.Boolean] = False, parent: Union[apysc._display.child_mixin.ChildMixIn, NoneType] = None, variable_name_suffix: str = '') -> 'SvgText'
[Interface summary]
Create an SvgText instance with specified text spans.
[Parameters]
text_spans: Union[List[SvgTextSpan], Array[SvgTextSpan]]Text spans.
font_size: Union[int, Int], optionalA font-size setting for an overall text.
font_family: Optional[Union[Array[String], List[str]]], optionalA font-family setting for an overall text. Each string in an array needs to be a font name (e.g.,
Times New Roman).
x: Union[float, Number], optionalX-coordinate to start drawing.
y: Union[float, Number], optionalY-coordinate to start drawing (please see also the
Notessection).
fill_color: Color, optionalA fill-color setting for an overall text.
fill_alpha: float or Number, optionalA fill-alpha setting for an overall text.
line_color: Color, optionalA line-color setting for an overall text.
line_alpha: float or Number, optionalA line-alpha setting for an overall text.
line_thickness: int or Int, optionalA line-thickness (line-width) setting for an overall text.
leading: float or Number, optionalA text-leading size for an overall text.
align: SvgTextAlign, optionalA text-align setting for an overall text.
bold: Union[bool, Boolean], optionalA boolean, whether this text is a bold style or not.
italic: Union[bool, Boolean], optionalA boolean, whether a text is an italic style or not (normal).
parent: Optional[ChildMixIn], optionalA parent instance to add this instance. If the specified value is None, this interface uses a stage instance.
variable_name_suffix: str, optionalA JavaScript variable name suffix string. This setting is sometimes useful for JavaScript debugging.
[Returns]
svg_text: SvgTextA created
SvgTextinstance.
[Notes]
・SvgText’s y-coordinate zero-position starts at the bottom of a text. So if you set y=0, a text becomes almost invisible.
[Examples]
>>> import apysc as ap
>>> stage: ap.Stage = ap.Stage(
... background_color=ap.Color("#333"),
... stage_width=200,
... stage_height=50,
... )
>>> svg_text: ap.SvgText = ap.SvgText.create_with_svg_text_spans(
... text_spans=[
... ap.SvgTextSpan(text="Hello, "),
... ap.SvgTextSpan(text="Hello, ", font_size=14),
... ],
... font_size=20,
... fill_color=ap.Color("#0af"),
... )
[References]