Skip to main content

ppt_rs/generator/
theme_xml.rs

1//! Theme, master, and layout XML generation
2
3/// Create slide layout XML
4pub fn create_slide_layout_xml() -> String {
5    r#"<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
6<p:sldLayout xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" type="blank" preserve="1">
7<p:cSld name="Blank">
8<p:spTree>
9<p:nvGrpSpPr>
10<p:cNvPr id="1" name=""/>
11<p:cNvGrpSpPr/>
12<p:nvPr/>
13</p:nvGrpSpPr>
14<p:grpSpPr>
15<a:xfrm>
16<a:off x="0" y="0"/>
17<a:ext cx="0" cy="0"/>
18<a:chOff x="0" y="0"/>
19<a:chExt cx="0" cy="0"/>
20</a:xfrm>
21</p:grpSpPr>
22</p:spTree>
23</p:cSld>
24<p:clrMapOvr>
25<a:masterClrMapping/>
26</p:clrMapOvr>
27</p:sldLayout>"#.to_string()
28}
29
30/// Create layout relationships XML
31pub fn create_layout_rels_xml() -> String {
32    r#"<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
33<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
34    <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="../slideMasters/slideMaster1.xml"/>
35</Relationships>"#.to_string()
36}
37
38/// Create slide master XML
39pub fn create_slide_master_xml() -> String {
40    r#"<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
41<p:sldMaster xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
42<p:cSld>
43<p:bg>
44<p:bgRef idx="1001">
45<a:schemeClr val="bg1"/>
46</p:bgRef>
47</p:bg>
48<p:spTree>
49<p:nvGrpSpPr>
50<p:cNvPr id="1" name=""/>
51<p:cNvGrpSpPr/>
52<p:nvPr/>
53</p:nvGrpSpPr>
54<p:grpSpPr>
55<a:xfrm>
56<a:off x="0" y="0"/>
57<a:ext cx="0" cy="0"/>
58<a:chOff x="0" y="0"/>
59<a:chExt cx="0" cy="0"/>
60</a:xfrm>
61</p:grpSpPr>
62</p:spTree>
63</p:cSld>
64<p:clrMap bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>
65<p:sldLayoutIdLst>
66<p:sldLayoutId id="2147483649" r:id="rId1"/>
67</p:sldLayoutIdLst>
68</p:sldMaster>"#.to_string()
69}
70
71/// Create master relationships XML
72pub fn create_master_rels_xml() -> String {
73    r#"<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
74<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
75<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/>
76<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="../theme/theme1.xml"/>
77</Relationships>"#.to_string()
78}
79
80/// Create theme XML
81pub fn create_theme_xml() -> String {
82    r#"<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
83<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme">
84<a:themeElements>
85<a:clrScheme name="Office">
86<a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1>
87<a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1>
88<a:dk2><a:srgbClr val="1F497D"/></a:dk2>
89<a:lt2><a:srgbClr val="EEECE1"/></a:lt2>
90<a:accent1><a:srgbClr val="4F81BD"/></a:accent1>
91<a:accent2><a:srgbClr val="C0504D"/></a:accent2>
92<a:accent3><a:srgbClr val="9BBB59"/></a:accent3>
93<a:accent4><a:srgbClr val="8064A2"/></a:accent4>
94<a:accent5><a:srgbClr val="4BACC6"/></a:accent5>
95<a:accent6><a:srgbClr val="F79646"/></a:accent6>
96<a:hlink><a:srgbClr val="0000FF"/></a:hlink>
97<a:folHlink><a:srgbClr val="800080"/></a:folHlink>
98</a:clrScheme>
99<a:fontScheme name="Office">
100<a:majorFont>
101<a:latin typeface="Calibri"/>
102<a:ea typeface=""/>
103<a:cs typeface=""/>
104</a:majorFont>
105<a:minorFont>
106<a:latin typeface="Calibri"/>
107<a:ea typeface=""/>
108<a:cs typeface=""/>
109</a:minorFont>
110</a:fontScheme>
111<a:fmtScheme name="Office">
112<a:fillStyleLst>
113<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
114<a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill>
115<a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:shade val="51000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="80000"><a:schemeClr val="phClr"><a:shade val="93000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="94000"/><a:satMod val="135000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill>
116</a:fillStyleLst>
117<a:lnStyleLst>
118<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln>
119<a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>
120<a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>
121</a:lnStyleLst>
122<a:effectStyleLst>
123<a:effectStyle><a:effectLst/></a:effectStyle>
124<a:effectStyle><a:effectLst/></a:effectStyle>
125<a:effectStyle><a:effectLst/></a:effectStyle>
126</a:effectStyleLst>
127<a:bgFillStyleLst>
128<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>
129<a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="-80000" r="50000" b="180000"/></a:path></a:gradFill>
130<a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill>
131</a:bgFillStyleLst>
132</a:fmtScheme>
133</a:themeElements>
134<a:objectDefaults/>
135<a:extraClrSchemeLst/>
136</a:theme>"#.to_string()
137}