pub struct Text {
pub id: String,
pub rendering_mode: TextRendering,
pub dx: Vec<f32>,
pub dy: Vec<f32>,
pub rotate: Vec<f32>,
pub writing_mode: WritingMode,
pub chunks: Vec<TextChunk>,
pub abs_transform: Transform,
pub bounding_box: Option<NonZeroRect>,
pub stroke_bounding_box: Option<NonZeroRect>,
pub flattened: Option<Box<Group>>,
}
Expand description
A text element.
text
element in SVG.
Fields§
§id: String
Element’s ID.
Taken from the SVG itself. Isn’t automatically generated. Can be empty.
rendering_mode: TextRendering
Rendering mode.
text-rendering
in SVG.
dx: Vec<f32>
A relative X axis offsets.
One offset for each Unicode codepoint. Aka char
in Rust.
dy: Vec<f32>
A relative Y axis offsets.
One offset for each Unicode codepoint. Aka char
in Rust.
rotate: Vec<f32>
A list of rotation angles.
One angle for each Unicode codepoint. Aka char
in Rust.
writing_mode: WritingMode
A writing mode.
chunks: Vec<TextChunk>
A list of text chunks.
abs_transform: Transform
Element’s absolute transform.
Contains all ancestors transforms.
Will be set after calling usvg::Tree::postprocess
.
Note that this is not the relative transform present in SVG. The SVG one would be set only on groups.
bounding_box: Option<NonZeroRect>
Contains a text bounding box.
Text bounding box is special in SVG and doesn’t represent tight bounds of the element’s content. You can find more about it here.
objectBoundingBox
in SVG terms. Meaning it doesn’t affected by parent transforms.
Will be set only after calling usvg::Tree::postprocess
with
usvg::PostProcessingSteps::convert_text_into_paths
.
Assuming the text
build feature of usvg
was enabled.
This is because we have to perform a text layout before calculating a bounding box.
stroke_bounding_box: Option<NonZeroRect>
Element’s object bounding box including stroke.
Similar to bounding_box
, but includes stroke.
Will have the same value as bounding_box
when path has no stroke.
flattened: Option<Box<Group>>
Text converted into paths, ready to render.
Will be set only after calling usvg::Tree::postprocess
with
usvg::PostProcessingSteps::convert_text_into_paths
.
Assuming the text
build feature of usvg
was enabled.