pub struct Page {
pub number: usize,
pub width: f64,
pub height: f64,
pub source_format: String,
pub title: String,
pub description: String,
pub embedded_source: Option<String>,
pub nodes: Vec<Node>,
pub clips: Vec<ClipPath>,
pub masks: Vec<MaskDefinition>,
pub patterns: Vec<TilingPatternDefinition>,
pub warnings: Vec<String>,
}Fields§
§number: usize§width: f64§height: f64§source_format: String§title: String§description: String§embedded_source: Option<String>The source document this page was drawn from, kept verbatim so a reverse conversion can restore it instead of packaging a picture.
draw.io writes the same thing into its own SVG exports, as the content
attribute on the root element, and reads it back when the SVG is opened
as a diagram.
nodes: Vec<Node>§clips: Vec<ClipPath>§masks: Vec<MaskDefinition>§patterns: Vec<TilingPatternDefinition>§warnings: Vec<String>Implementations§
Source§impl Page
impl Page
Sourcepub fn new(number: usize, width: f64, height: f64, source_format: &str) -> Self
pub fn new(number: usize, width: f64, height: f64, source_format: &str) -> Self
Examples found in repository?
examples/custom_ir.rs (line 20)
11fn main() -> Result<()> {
12 let output_path = std::env::args_os()
13 .nth(1)
14 .map(PathBuf::from)
15 .unwrap_or_else(|| PathBuf::from("output/custom.svg"));
16 if let Some(parent) = output_path.parent() {
17 fs::create_dir_all(parent)?;
18 }
19
20 let mut page = Page::new(1, 320.0, 180.0, "custom");
21 page.title = "Public IR example".into();
22 page.description = "A path and editable text generated by document-svg".into();
23
24 page.nodes.push(Node::Path {
25 id: "card".into(),
26 d: "M 20 20 H 300 V 160 H 20 Z".into(),
27 fill_rule: "nonzero".into(),
28 fill: Paint::solid("#E8F1FF"),
29 stroke: Stroke {
30 paint: Paint::solid("#246BCE"),
31 width: 2.0,
32 ..Stroke::default()
33 },
34 transform: IDENTITY,
35 clip_id: None,
36 meta: SourceMeta {
37 kind: "shape".into(),
38 source_id: "example-card".into(),
39 semantic_role: "background".into(),
40 ..SourceMeta::default()
41 },
42 });
43
44 page.nodes.push(Node::Text {
45 id: "message".into(),
46 x: 160.0,
47 y: 98.0,
48 runs: vec![TextRun {
49 text: "Hello, SVG!".into(),
50 font_size: 24.0,
51 bold: true,
52 fill: Paint::solid("#123B72"),
53 ..TextRun::default()
54 }],
55 anchor: TextAnchor::Middle,
56 transform: IDENTITY,
57 opacity: 1.0,
58 stroke: Stroke::default(),
59 clip_id: None,
60 meta: SourceMeta {
61 kind: "text".into(),
62 source_id: "example-message".into(),
63 semantic_role: "heading".into(),
64 alt_text: "Hello, SVG!".into(),
65 ..SourceMeta::default()
66 },
67 });
68
69 let file = File::create(&output_path).map_err(Error::from)?;
70 write_page(&page, BufWriter::new(file), SvgOptions::default())?;
71 println!("wrote {}", output_path.display());
72 Ok(())
73}pub fn warn(&mut self, warning: impl Into<String>)
Trait Implementations§
impl StructuralPartialEq for Page
Auto Trait Implementations§
impl Freeze for Page
impl RefUnwindSafe for Page
impl Send for Page
impl Sync for Page
impl Unpin for Page
impl UnsafeUnpin for Page
impl UnwindSafe for Page
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more