docx_reader/documents/elements/
page_size.rs

1use crate::types::*;
2
3use serde::Serialize;
4
5#[derive(Debug, Clone, PartialEq, Serialize)]
6#[serde(rename_all = "camelCase")]
7pub struct PageSize {
8	w: u32,
9	h: u32,
10	orient: Option<PageOrientationType>,
11}
12
13// These values were based on microsoft office word2019 windows edition.
14// <w:pgSz w:w="11906" w:h="16838"/>
15impl Default for PageSize {
16	fn default() -> PageSize {
17		PageSize {
18			w: 11906,
19			h: 16838,
20			orient: None,
21		}
22	}
23}
24
25impl PageSize {
26	pub fn new() -> PageSize {
27		Default::default()
28	}
29
30	pub fn size(self, w: u32, h: u32) -> PageSize {
31		PageSize {
32			w,
33			h,
34			orient: self.orient,
35		}
36	}
37
38	pub fn width(mut self, w: u32) -> PageSize {
39		self.w = w;
40		self
41	}
42
43	pub fn height(mut self, h: u32) -> PageSize {
44		self.h = h;
45		self
46	}
47
48	pub fn orient(mut self, o: PageOrientationType) -> PageSize {
49		self.orient = Some(o);
50		self
51	}
52}