//private OXmlDocDefaultsElement CreateDocDefaults(BsonDocument element) //{ // if (_headerFooter) // throw new PBException("header-footer cant contain doc defaults"); // string type = element.zGet("DocDefaultsType").zAsString(); // if (type.ToLower() == "runpropertiesdefault") // return CreateRunPropertiesDefault(element); // else if (type.ToLower() == "paragraphpropertiesdefault") // return CreateParagraphPropertiesDefault(); // else // throw new PBException($"unknow oxml doc defaults type \"{type}\""); //} private OXmlDocDefaultsRunPropertiesElement CreateRunPropertiesDefault(BsonDocument element) { if (_headerFooter) { throw new PBException("header-footer cant contain run default properties"); } OXmlDocDefaultsRunPropertiesElement runPropertiesDefault = new OXmlDocDefaultsRunPropertiesElement(); //string runFonts = element.zGet("RunFonts").zAsString(); //if (runFonts != null) // runPropertiesDefault.RunFonts = new OxmlRunFonts { Ascii = runFonts }; BsonDocument element2 = element.zGet("RunFonts").zAsBsonDocument(); if (element2 != null) { runPropertiesDefault.RunFonts = new OXmlRunFonts { Ascii = element2.zGet("Ascii").zAsString(), AsciiTheme = element2.zGet("AsciiTheme").zAsNullableEnum <ThemeFontValues>(ignoreCase: true), ComplexScript = element2.zGet("ComplexScript").zAsString(), ComplexScriptTheme = element2.zGet("ComplexScriptTheme").zAsNullableEnum <ThemeFontValues>(ignoreCase: true), EastAsia = element2.zGet("EastAsia").zAsString(), EastAsiaTheme = element2.zGet("EastAsiaTheme").zAsNullableEnum <ThemeFontValues>(ignoreCase: true), HighAnsi = element2.zGet("HighAnsi").zAsString(), HighAnsiTheme = element2.zGet("HighAnsiTheme").zAsNullableEnum <ThemeFontValues>(ignoreCase: true), Hint = element2.zGet("Hint").zAsNullableEnum <FontTypeHintValues>(ignoreCase: true) }; } runPropertiesDefault.FontSize = element.zGet("FontSize").zAsString(); return(runPropertiesDefault); }
//private void AddDocDefaults(OXmlDocDefaultsElement element) //{ // switch (element.DocDefaultsType) // { // case OXmlDocDefaultsType.RunPropertiesDefault: // AddRunPropertiesDefault((OXmlRunPropertiesDefaultElement)element); // break; // case OXmlDocDefaultsType.ParagraphPropertiesDefault: // AddParagraphPropertiesDefault((OXmlParagraphPropertiesDefaultElement)element); // break; // default: // throw new PBException($"unknow doc defaults type {element.DocDefaultsType}"); // } //} private void AddRunPropertiesDefault(OXmlDocDefaultsRunPropertiesElement element) { Styles styles = CreateStyles(); DocDefaults docDefaults = CreateDocDefaults(styles); if (docDefaults.RunPropertiesDefault == null) { docDefaults.RunPropertiesDefault = new RunPropertiesDefault(); } if (docDefaults.RunPropertiesDefault.RunPropertiesBaseStyle == null) { docDefaults.RunPropertiesDefault.RunPropertiesBaseStyle = new RunPropertiesBaseStyle(); } if (element.RunFonts != null) { docDefaults.RunPropertiesDefault.RunPropertiesBaseStyle.RunFonts = element.RunFonts.ToRunFonts(); } if (element.FontSize != null) { docDefaults.RunPropertiesDefault.RunPropertiesBaseStyle.FontSize = new FontSize { Val = element.FontSize } } ; }
public OXmlDocDefaultsRunPropertiesElement _Deserialize(BsonReader bsonReader, IBsonSerializationOptions options) { OXmlDocDefaultsRunPropertiesElement element = new OXmlDocDefaultsRunPropertiesElement(); while (true) { BsonType bsonType = bsonReader.ReadBsonType(); if (bsonType == BsonType.EndOfDocument) break; string name = bsonReader.ReadName(); switch (name.ToLower()) { case "type": if (bsonType != BsonType.String) throw new PBException($"wrong type value {bsonType}"); string type = bsonReader.ReadString(); if (type.ToLower() != "docdefaultsrunproperties") throw new PBException($"invalid Type {type} when deserialize OXmlDocDefaultsRunPropertiesElement"); break; case "runfonts": if (bsonType == BsonType.Null) break; if (bsonType != BsonType.Document) throw new PBException($"wrong RunFonts value {bsonType}"); element.RunFonts = OXmlCommonSerializer.ReadRunFonts(bsonReader); break; case "fontsize": if (bsonType == BsonType.Null) break; if (bsonType != BsonType.String) throw new PBException($"wrong FontSize value {bsonType}"); element.FontSize = bsonReader.ReadString(); break; default: throw new PBException($"unknow DocDefaultsRunProperties value \"{name}\""); } } return element; }
//private void AddDocDefaults(OXmlDocDefaultsElement element) //{ // switch (element.DocDefaultsType) // { // case OXmlDocDefaultsType.RunPropertiesDefault: // AddRunPropertiesDefault((OXmlRunPropertiesDefaultElement)element); // break; // case OXmlDocDefaultsType.ParagraphPropertiesDefault: // AddParagraphPropertiesDefault((OXmlParagraphPropertiesDefaultElement)element); // break; // default: // throw new PBException($"unknow doc defaults type {element.DocDefaultsType}"); // } //} private void AddRunPropertiesDefault(OXmlDocDefaultsRunPropertiesElement element) { Styles styles = CreateStyles(); DocDefaults docDefaults = CreateDocDefaults(styles); if (docDefaults.RunPropertiesDefault == null) docDefaults.RunPropertiesDefault = new RunPropertiesDefault(); if (docDefaults.RunPropertiesDefault.RunPropertiesBaseStyle == null) docDefaults.RunPropertiesDefault.RunPropertiesBaseStyle = new RunPropertiesBaseStyle(); if (element.RunFonts != null) docDefaults.RunPropertiesDefault.RunPropertiesBaseStyle.RunFonts = element.RunFonts.ToRunFonts(); if (element.FontSize != null) docDefaults.RunPropertiesDefault.RunPropertiesBaseStyle.FontSize = new FontSize { Val = element.FontSize }; }
//private OXmlDocDefaultsElement CreateDocDefaults(BsonDocument element) //{ // if (_headerFooter) // throw new PBException("header-footer cant contain doc defaults"); // string type = element.zGet("DocDefaultsType").zAsString(); // if (type.ToLower() == "runpropertiesdefault") // return CreateRunPropertiesDefault(element); // else if (type.ToLower() == "paragraphpropertiesdefault") // return CreateParagraphPropertiesDefault(); // else // throw new PBException($"unknow oxml doc defaults type \"{type}\""); //} private OXmlDocDefaultsRunPropertiesElement CreateRunPropertiesDefault(BsonDocument element) { if (_headerFooter) throw new PBException("header-footer cant contain run default properties"); OXmlDocDefaultsRunPropertiesElement runPropertiesDefault = new OXmlDocDefaultsRunPropertiesElement(); //string runFonts = element.zGet("RunFonts").zAsString(); //if (runFonts != null) // runPropertiesDefault.RunFonts = new OxmlRunFonts { Ascii = runFonts }; BsonDocument element2 = element.zGet("RunFonts").zAsBsonDocument(); if (element2 != null) { runPropertiesDefault.RunFonts = new OXmlRunFonts { Ascii = element2.zGet("Ascii").zAsString(), AsciiTheme = element2.zGet("AsciiTheme").zAsNullableEnum<ThemeFontValues>(ignoreCase: true), ComplexScript = element2.zGet("ComplexScript").zAsString(), ComplexScriptTheme = element2.zGet("ComplexScriptTheme").zAsNullableEnum<ThemeFontValues>(ignoreCase: true), EastAsia = element2.zGet("EastAsia").zAsString(), EastAsiaTheme = element2.zGet("EastAsiaTheme").zAsNullableEnum<ThemeFontValues>(ignoreCase: true), HighAnsi = element2.zGet("HighAnsi").zAsString(), HighAnsiTheme = element2.zGet("HighAnsiTheme").zAsNullableEnum<ThemeFontValues>(ignoreCase: true), Hint = element2.zGet("Hint").zAsNullableEnum<FontTypeHintValues>(ignoreCase: true) }; } runPropertiesDefault.FontSize = element.zGet("FontSize").zAsString(); return runPropertiesDefault; }