Exemple #1
0
        //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);
        }
Exemple #2
0
        //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;
 }
Exemple #4
0
        //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 };
        }
Exemple #5
0
        //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;
        }