165 lines
8.7 KiB
Go
165 lines
8.7 KiB
Go
package document
|
|
|
|
// Theme 表示Word文档中的主题
|
|
type Theme struct {
|
|
Name string
|
|
}
|
|
|
|
// NewTheme 创建一个新的主题
|
|
func NewTheme() *Theme {
|
|
return &Theme{
|
|
Name: "Office Theme",
|
|
}
|
|
}
|
|
|
|
// ToXML 将主题转换为XML
|
|
func (t *Theme) ToXML() string {
|
|
// 这里提供一个简化的Office主题XML
|
|
xml := "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
|
|
xml += "<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"" + t.Name + "\">"
|
|
|
|
// 颜色方案
|
|
xml += "<a:themeElements>"
|
|
xml += "<a:clrScheme name=\"Office\">"
|
|
xml += "<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>"
|
|
xml += "<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>"
|
|
xml += "<a:dk2><a:srgbClr val=\"44546A\"/></a:dk2>"
|
|
xml += "<a:lt2><a:srgbClr val=\"E7E6E6\"/></a:lt2>"
|
|
xml += "<a:accent1><a:srgbClr val=\"4472C4\"/></a:accent1>"
|
|
xml += "<a:accent2><a:srgbClr val=\"ED7D31\"/></a:accent2>"
|
|
xml += "<a:accent3><a:srgbClr val=\"A5A5A5\"/></a:accent3>"
|
|
xml += "<a:accent4><a:srgbClr val=\"FFC000\"/></a:accent4>"
|
|
xml += "<a:accent5><a:srgbClr val=\"5B9BD5\"/></a:accent5>"
|
|
xml += "<a:accent6><a:srgbClr val=\"70AD47\"/></a:accent6>"
|
|
xml += "<a:hlink><a:srgbClr val=\"0563C1\"/></a:hlink>"
|
|
xml += "<a:folHlink><a:srgbClr val=\"954F72\"/></a:folHlink>"
|
|
xml += "</a:clrScheme>"
|
|
|
|
// 字体方案
|
|
xml += "<a:fontScheme name=\"Office\">"
|
|
xml += "<a:majorFont>"
|
|
xml += "<a:latin typeface=\"Calibri Light\" panose=\"020F0302020204030204\"/>"
|
|
xml += "<a:ea typeface=\"\"/>"
|
|
xml += "<a:cs typeface=\"\"/>"
|
|
xml += "<a:font script=\"Jpan\" typeface=\"游ゴシック Light\"/>"
|
|
xml += "<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>"
|
|
xml += "<a:font script=\"Hans\" typeface=\"等线 Light\"/>"
|
|
xml += "<a:font script=\"Hant\" typeface=\"新細明體\"/>"
|
|
xml += "<a:font script=\"Arab\" typeface=\"Times New Roman\"/>"
|
|
xml += "<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>"
|
|
xml += "<a:font script=\"Thai\" typeface=\"Angsana New\"/>"
|
|
xml += "<a:font script=\"Ethi\" typeface=\"Nyala\"/>"
|
|
xml += "<a:font script=\"Beng\" typeface=\"Vrinda\"/>"
|
|
xml += "<a:font script=\"Gujr\" typeface=\"Shruti\"/>"
|
|
xml += "<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>"
|
|
xml += "<a:font script=\"Knda\" typeface=\"Tunga\"/>"
|
|
xml += "<a:font script=\"Guru\" typeface=\"Raavi\"/>"
|
|
xml += "<a:font script=\"Cans\" typeface=\"Euphemia\"/>"
|
|
xml += "<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>"
|
|
xml += "<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>"
|
|
xml += "<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>"
|
|
xml += "<a:font script=\"Thaa\" typeface=\"MV Boli\"/>"
|
|
xml += "<a:font script=\"Deva\" typeface=\"Mangal\"/>"
|
|
xml += "<a:font script=\"Telu\" typeface=\"Gautami\"/>"
|
|
xml += "<a:font script=\"Taml\" typeface=\"Latha\"/>"
|
|
xml += "<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>"
|
|
xml += "<a:font script=\"Orya\" typeface=\"Kalinga\"/>"
|
|
xml += "<a:font script=\"Mlym\" typeface=\"Kartika\"/>"
|
|
xml += "<a:font script=\"Laoo\" typeface=\"DokChampa\"/>"
|
|
xml += "<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>"
|
|
xml += "<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>"
|
|
xml += "<a:font script=\"Viet\" typeface=\"Times New Roman\"/>"
|
|
xml += "<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>"
|
|
xml += "<a:font script=\"Geor\" typeface=\"Sylfaen\"/>"
|
|
xml += "</a:majorFont>"
|
|
xml += "<a:minorFont>"
|
|
xml += "<a:latin typeface=\"Calibri\" panose=\"020F0502020204030204\"/>"
|
|
xml += "<a:ea typeface=\"\"/>"
|
|
xml += "<a:cs typeface=\"\"/>"
|
|
xml += "<a:font script=\"Jpan\" typeface=\"游ゴシック\"/>"
|
|
xml += "<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>"
|
|
xml += "<a:font script=\"Hans\" typeface=\"等线\"/>"
|
|
xml += "<a:font script=\"Hant\" typeface=\"新細明體\"/>"
|
|
xml += "<a:font script=\"Arab\" typeface=\"Arial\"/>"
|
|
xml += "<a:font script=\"Hebr\" typeface=\"Arial\"/>"
|
|
xml += "<a:font script=\"Thai\" typeface=\"Cordia New\"/>"
|
|
xml += "<a:font script=\"Ethi\" typeface=\"Nyala\"/>"
|
|
xml += "<a:font script=\"Beng\" typeface=\"Vrinda\"/>"
|
|
xml += "<a:font script=\"Gujr\" typeface=\"Shruti\"/>"
|
|
xml += "<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>"
|
|
xml += "<a:font script=\"Knda\" typeface=\"Tunga\"/>"
|
|
xml += "<a:font script=\"Guru\" typeface=\"Raavi\"/>"
|
|
xml += "<a:font script=\"Cans\" typeface=\"Euphemia\"/>"
|
|
xml += "<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>"
|
|
xml += "<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>"
|
|
xml += "<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>"
|
|
xml += "<a:font script=\"Thaa\" typeface=\"MV Boli\"/>"
|
|
xml += "<a:font script=\"Deva\" typeface=\"Mangal\"/>"
|
|
xml += "<a:font script=\"Telu\" typeface=\"Gautami\"/>"
|
|
xml += "<a:font script=\"Taml\" typeface=\"Latha\"/>"
|
|
xml += "<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>"
|
|
xml += "<a:font script=\"Orya\" typeface=\"Kalinga\"/>"
|
|
xml += "<a:font script=\"Mlym\" typeface=\"Kartika\"/>"
|
|
xml += "<a:font script=\"Laoo\" typeface=\"DokChampa\"/>"
|
|
xml += "<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>"
|
|
xml += "<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>"
|
|
xml += "<a:font script=\"Viet\" typeface=\"Arial\"/>"
|
|
xml += "<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>"
|
|
xml += "<a:font script=\"Geor\" typeface=\"Sylfaen\"/>"
|
|
xml += "</a:minorFont>"
|
|
xml += "</a:fontScheme>"
|
|
|
|
// 格式方案
|
|
xml += "<a:fmtScheme name=\"Office\">"
|
|
xml += "<a:fillStyleLst>"
|
|
xml += "<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>"
|
|
xml += "<a:gradFill rotWithShape=\"1\">"
|
|
xml += "<a:gsLst>"
|
|
xml += "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"110000\"/><a:satMod val=\"105000\"/><a:tint val=\"67000\"/></a:schemeClr></a:gs>"
|
|
xml += "<a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"103000\"/><a:tint val=\"73000\"/></a:schemeClr></a:gs>"
|
|
xml += "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"109000\"/><a:tint val=\"81000\"/></a:schemeClr></a:gs>"
|
|
xml += "</a:gsLst>"
|
|
xml += "<a:lin ang=\"5400000\" scaled=\"0\"/>"
|
|
xml += "</a:gradFill>"
|
|
xml += "<a:gradFill rotWithShape=\"1\">"
|
|
xml += "<a:gsLst>"
|
|
xml += "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:satMod val=\"103000\"/><a:lumMod val=\"102000\"/><a:tint val=\"94000\"/></a:schemeClr></a:gs>"
|
|
xml += "<a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:satMod val=\"110000\"/><a:lumMod val=\"100000\"/><a:shade val=\"100000\"/></a:schemeClr></a:gs>"
|
|
xml += "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"99000\"/><a:satMod val=\"120000\"/><a:shade val=\"78000\"/></a:schemeClr></a:gs>"
|
|
xml += "</a:gsLst>"
|
|
xml += "<a:lin ang=\"5400000\" scaled=\"0\"/>"
|
|
xml += "</a:gradFill>"
|
|
xml += "</a:fillStyleLst>"
|
|
xml += "<a:lnStyleLst>"
|
|
xml += "<a:ln w=\"6350\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln>"
|
|
xml += "<a:ln w=\"12700\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln>"
|
|
xml += "<a:ln w=\"19050\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln>"
|
|
xml += "</a:lnStyleLst>"
|
|
xml += "<a:effectStyleLst>"
|
|
xml += "<a:effectStyle><a:effectLst/></a:effectStyle>"
|
|
xml += "<a:effectStyle><a:effectLst/></a:effectStyle>"
|
|
xml += "<a:effectStyle><a:effectLst><a:outerShdw blurRad=\"57150\" dist=\"19050\" dir=\"5400000\" algn=\"ctr\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"63000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle>"
|
|
xml += "</a:effectStyleLst>"
|
|
xml += "<a:bgFillStyleLst>"
|
|
xml += "<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>"
|
|
xml += "<a:solidFill><a:schemeClr val=\"phClr\"><a:tint val=\"95000\"/><a:satMod val=\"170000\"/></a:schemeClr></a:solidFill>"
|
|
xml += "<a:gradFill rotWithShape=\"1\">"
|
|
xml += "<a:gsLst>"
|
|
xml += "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"93000\"/><a:satMod val=\"150000\"/><a:shade val=\"98000\"/><a:lumMod val=\"102000\"/></a:schemeClr></a:gs>"
|
|
xml += "<a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:tint val=\"98000\"/><a:satMod val=\"130000\"/><a:shade val=\"90000\"/><a:lumMod val=\"103000\"/></a:schemeClr></a:gs>"
|
|
xml += "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"63000\"/><a:satMod val=\"120000\"/></a:schemeClr></a:gs>"
|
|
xml += "</a:gsLst>"
|
|
xml += "<a:lin ang=\"5400000\" scaled=\"0\"/>"
|
|
xml += "</a:gradFill>"
|
|
xml += "</a:bgFillStyleLst>"
|
|
xml += "</a:fmtScheme>"
|
|
xml += "</a:themeElements>"
|
|
|
|
// 其他主题元素
|
|
xml += "<a:objectDefaults/>"
|
|
xml += "<a:extraClrSchemeLst/>"
|
|
|
|
xml += "</a:theme>"
|
|
return xml
|
|
}
|