예제 #1
0
        public byte[] byteEndClear(ByteClass bc)
        {
            var buffer = new byte[bc.len];

            for (int i = 0; i < bc.len; i++)
            {
                buffer[i] = bc.b[i];
            }
            return(buffer);
        }
예제 #2
0
 public void Add(ByteClass newb)
 {
     int len = newb.len;
     while ((this.len + len) > size)
     {
         Newstr();
     }
     for (int i = 0; i < len; i++)
     {
         b[this.len + i] = newb.b[i];
     }
     this.len += len;
 }
예제 #3
0
        public ByteClass ToByteCStartPos(int startPosition)
        {
            var class2 = new ByteClass(0x80);

            for (int i = startPosition; i < len; i++)
            {
                if (b[i] == 0)
                {
                    return(class2);
                }
                class2.Add(b[i]);
            }
            return(class2);
        }
예제 #4
0
        public void Add(ByteClass newb)
        {
            int len = newb.len;

            while ((this.len + len) > size)
            {
                Newstr();
            }
            for (int i = 0; i < len; i++)
            {
                b[this.len + i] = newb.b[i];
            }
            this.len += len;
        }
예제 #5
0
 public int byteCmp(ByteClass bc)
 {
     if (bc.len != len)
     {
         return(-1);
     }
     for (int i = 0; i < bc.len; i++)
     {
         if (char.ToLower((char)b[i]) != char.ToLower((char)bc.b[i]))
         {
             return(-1);
         }
     }
     return(0);
 }
예제 #6
0
 public void Add(ByteClass newb, int pos)
 {
     int len = newb.len;
     int num3 = 0;
     while ((this.len + len) > size)
     {
         Newstr();
     }
     int index = pos;
     num3 = 0;
     while (index < len)
     {
         b[this.len + num3] = newb.b[index];
         index++;
         num3++;
     }
     this.len += num3;
 }
예제 #7
0
        public void Add(ByteClass newb, int pos)
        {
            int len  = newb.len;
            int num3 = 0;

            while ((this.len + len) > size)
            {
                Newstr();
            }
            int index = pos;

            num3 = 0;
            while (index < len)
            {
                b[this.len + num3] = newb.b[index];
                index++;
                num3++;
            }
            this.len += num3;
        }
예제 #8
0
        public void Insert(ByteClass newb, int pos)
        {
            int len = newb.len;

            if (len != 0)
            {
                while ((this.len + len) > size)
                {
                    Newstr();
                }
                for (int i = this.len - 1; i >= pos; i--)
                {
                    b[len + i] = b[i];
                }
                for (int j = len - 1; j >= pos; j--)
                {
                    b[j] = newb.b[j];
                }
                this.len += len;
            }
        }
예제 #9
0
 public void Add(ByteClass newb, int posStart, int kolByte)
 {
     int len;
     if ((kolByte + posStart) > newb.len)
     {
         len = newb.len;
     }
     else
     {
         len = kolByte + posStart;
     }
     while ((this.len + len) > size)
     {
         Newstr();
     }
     for (int i = posStart; i < len; i++)
     {
         b[this.len + i] = newb.b[i];
     }
     this.len += len;
 }
예제 #10
0
        public void AddToStart(ByteClass newb)
        {
            int len = newb.len;

            if (len != 0)
            {
                while ((this.len + len) > size)
                {
                    Newstr();
                }
                for (int i = this.len - 1; i >= 0; i--)
                {
                    b[len + i] = b[i];
                }
                for (int j = len - 1; j >= 0; j--)
                {
                    b[j] = newb.b[j];
                }
                this.len += len;
            }
        }
예제 #11
0
        public void Add(ByteClass newb, int posStart, int kolByte)
        {
            int len;

            if ((kolByte + posStart) > newb.len)
            {
                len = newb.len;
            }
            else
            {
                len = kolByte + posStart;
            }
            while ((this.len + len) > size)
            {
                Newstr();
            }
            for (int i = posStart; i < len; i++)
            {
                b[this.len + i] = newb.b[i];
            }
            this.len += len;
        }
예제 #12
0
 private int hex_to_dec(ByteClass str)
 {
     int num = 0;
     int num4 = 0;
     int index = str.len - 1;
     for (int i = 0; index >= 0; i++)
     {
         if ((str.b[index] >= 0x41) && (str.b[index] <= 70))
         {
             num4 = (str.b[index] - 0x41) + 10;
         }
         else if ((str.b[index] >= 0x61) && (str.b[index] <= 0x66))
         {
             num4 = (str.b[index] - 0x61) + 10;
         }
         else
         {
             num4 = str.b[index] - 0x30;
         }
         num += num4 * ((int)Math.Pow(16, (double)i));
         index--;
     }
     return num;
 }
예제 #13
0
 private bool CSS_close_styles(ByteClass ablaze, CSS_styles style, CSS_params CSS_param, ByteClass align_def, ByteClass align_j, ByteClass align, ByteClass buf, ref int p_count2, ref bool font_color_default, ByteClass font_color_temp, ByteClass color_stack, ref int color_stack_num, ref bool may_use_space, ref bool font_size_default, ByteClass font_size_temp, int fontsize, CSS_tag_type css_tag_type, ArrayList styleStack, int styleStackNum)
 {
     int num = p_count2;
     bool flag = false;
     ByteClass newb = new ByteClass(0x10);
     int num2 = 0;
     if ((CSS_param.pos.open && (ablaze.b[9] == 1)) && ((ablaze.b[10] == 1) && (ablaze.b[11] == 1)))
     {
         buf.Add(CSS_param.pos.pos_close_str);
         num += CSS_param.pos.pos_close_str.Length;
         CSS_param.pos.open = false;
     }
     if ((ablaze.b[2] == 1) || (css_tag_type == CSS_tag_type.TD_CSS))
     {
         if (CSS_param.bold > 0)
         {
             buf.Add("}");
             num++;
         }
         CSS_param.bold--;
     }
     if ((ablaze.b[0] == 1) && (this._preserveFontFace == 1))
     {
         newb.Clear();
         newb.Add(@"\f0 ");
         if ((styleStack != null) && (styleStackNum > 0))
         {
             flag = false;
             num2 = styleStackNum - 1;
             while (num2 >= 0)
             {
                 if (((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).ablaze.b[0] == 1)
                 {
                     flag = true;
                     break;
                 }
                 num2--;
             }
             if (flag && (((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).font_family >= 0))
             {
                 newb.Clear();
                 newb.Add(@"\f" + ((((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).font_family + 2)).ToString() + " ");
             }
         }
         may_use_space = true;
         buf.Add(newb);
         num += newb.len;
     }
     if ((ablaze.b[3] == 1) && (this._preserveFontSize == 1))
     {
         if ((styleStack == null) || (styleStackNum <= 0))
         {
             if (style.font_size != fontsize)
             {
                 font_size_default = false;
                 font_size_temp.Clear();
                 font_size_temp.Add(@"\fs" + fontsize + " ");
                 may_use_space = true;
                 buf.Add(font_size_temp);
                 num += font_size_temp.len;
             }
         }
         else
         {
             flag = false;
             num2 = styleStackNum - 1;
             while (num2 >= 0)
             {
                 if (((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).ablaze.b[3] == 1)
                 {
                     flag = true;
                     break;
                 }
                 num2--;
             }
             if (flag && (((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).font_size > 0))
             {
                 font_size_default = false;
                 font_size_temp.Clear();
                 font_size_temp.Add(@"\fs" + ((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).font_size + " ");
                 may_use_space = true;
                 buf.Add(font_size_temp);
                 num += font_size_temp.len;
             }
         }
     }
     if (((ablaze.b[4] == 1) && (this._preserveAlignment == 1)) && (css_tag_type != CSS_tag_type.TD_CSS))
     {
         align.Clear();
         align.Add(align_def);
         if (css_tag_type != CSS_tag_type.DIV_CSS)
         {
             buf.Add(align);
             num += align.len;
         }
     }
     if (((ablaze.b[5] == 1) || (css_tag_type == CSS_tag_type.TD_CSS)) && (CSS_param.italic > 0))
     {
         buf.Add("}");
         num++;
         CSS_param.italic--;
     }
     if ((ablaze.b[1] == 1) && (this._preserveFontColor == 1))
     {
         if (color_stack_num > 0)
         {
             font_color_temp.Clear();
             font_color_temp.Add(@"\cf" + color_stack.b[color_stack_num - 1] + " ");
             if ((ablaze.b[5] == 1) || (ablaze.b[2] == 1))
             {
                 may_use_space = true;
             }
             else
             {
                 may_use_space = false;
             }
             color_stack_num--;
         }
         else
         {
             if (CSS_param.body_tag && (ablaze.b[1] == 1))
             {
                 font_color_temp.Clear();
                 if (((CSS_styles)CSS_param.CSS_style[CSS_param.body_tag_index]).ablaze.b[1] == 1)
                 {
                     font_color_temp.Add(@"\cf" + (((CSS_styles)CSS_param.CSS_style[CSS_param.body_tag_index]).color + 3) + " ");
                 }
                 else
                 {
                     font_color_temp.Add(@"\cf1 ");
                 }
             }
             else
             {
                 font_color_temp.Clear();
                 font_color_temp.Add(@"\cf1 ");
             }
             if ((ablaze.b[5] == 1) || (ablaze.b[2] == 1))
             {
                 may_use_space = true;
             }
             else
             {
                 may_use_space = false;
             }
         }
         buf.Add(font_color_temp);
         num += font_color_temp.len;
     }
     if ((ablaze.b[7] == 1) && (this._preserveBackgroundColor == 1))
     {
         font_color_temp.Clear();
         font_color_temp.Add(@"\chcbpat0 ");
         may_use_space = true;
         buf.Add(font_color_temp);
         num += font_color_temp.len;
     }
     if ((ablaze.b[12] == 1) && (CSS_param.underline > 0))
     {
         buf.Add("}");
         num++;
         CSS_param.underline--;
     }
     if ((ablaze.b[13] == 1) && (CSS_param.vertical_align > 0))
     {
         buf.Add("}");
         num++;
         CSS_param.vertical_align--;
     }
     if (((ablaze.b[15] == 1) && (this._preservePageBreaks == 1)) && (style.page_break_after == 1))
     {
         buf.Add("\n\\pard\\page\\par\n");
         num += 0x10;
     }
     p_count2 = num;
     return true;
 }
예제 #14
0
 public byte[] byteEndClear(ByteClass bc)
 {
     var buffer = new byte[bc.len];
     for (int i = 0; i < bc.len; i++)
     {
         buffer[i] = bc.b[i];
     }
     return buffer;
 }
예제 #15
0
 public void Insert(ByteClass newb, int pos)
 {
     int len = newb.len;
     if (len != 0)
     {
         while ((this.len + len) > size)
         {
             Newstr();
         }
         for (int i = this.len - 1; i >= pos; i--)
         {
             b[len + i] = b[i];
         }
         for (int j = len - 1; j >= pos; j--)
         {
             b[j] = newb.b[j];
         }
         this.len += len;
     }
 }
예제 #16
0
 private void LeaveTag(ByteClass bIn, int ct_in, ByteClass bOut)
 {
     while ((bIn.b[ct_in] != 0x3e) && (ct_in < bIn.len))
     {
         bOut.Add(bIn.b[ct_in]);
         ct_in++;
     }
     bOut.Add(">");
 }
예제 #17
0
 public void AddToStart(ByteClass newb)
 {
     int len = newb.len;
     if (len != 0)
     {
         while ((this.len + len) > size)
         {
             Newstr();
         }
         for (int i = this.len - 1; i >= 0; i--)
         {
             b[len + i] = b[i];
         }
         for (int j = len - 1; j >= 0; j--)
         {
             b[j] = newb.b[j];
         }
         this.len += len;
     }
 }
예제 #18
0
 private void CSS_read_second_name(ByteClass buf, ref int ct, int max, ByteClass name)
 {
     int index = ct;
     name.Clear();
     while (this.IS_DELIMITER(buf.b[index]))
     {
         index++;
     }
     while (index < max)
     {
         if (((buf.b[index] == 0x2c) || (buf.b[index] == 0x7b)) || (buf.b[index] == 0x20))
         {
             break;
         }
         name.Add(buf.b[index++]);
     }
     if ((buf.b[index] == 0x2c) || (buf.b[index] == 0x20))
     {
         index++;
     }
     ct = index;
 }
예제 #19
0
 private int CSS_read_style_name(ByteClass buf, ref int pct, ByteClass style_name)
 {
     ByteClass newb = new ByteClass();
     int index = 0;
     int num2 = 0;
     int num3 = 1;
     int num4 = pct;
     while ((num4 > 0) && (this.isspace(buf.b[num4]) || this.ispunct(buf.b[num4])))
     {
         num4--;
     }
     num2 = num4;
     while (num4 > 0)
     {
         if (buf.b[num4] == 0x2c)
         {
             num3++;
         }
         if ((!this.isalpha(buf.b[num4]) && !this.ispunct(buf.b[num4])) && (!this.isdigit(buf.b[num4]) && (buf.b[num4] != 0x20)))
         {
             num4++;
             break;
         }
         num4--;
     }
     while ((buf.b[num4] == 0x20) && (num4 < buf.len))
     {
         num4++;
     }
     index = num4;
     if (num3 > 1)
     {
         pct = num4;
         return num3;
     }
     if (buf.b[index] == 10)
     {
         index++;
     }
     if (buf.b[index] == 0x2e)
     {
         index++;
     }
     newb.Clear();
     while (index <= num2)
     {
         newb.Add(buf.b[index++]);
     }
     style_name.Clear();
     style_name.Add(newb);
     if (style_name.len == 0)
     {
         return 0;
     }
     return 1;
 }
예제 #20
0
 private void CSS_read_file_name(ByteClass buf, ref int ct, int max_pos, ByteClass value_str)
 {
     int index = ct;
     int num2 = 0;
     bool flag = true;
     int num3 = 0;
     while (((buf.b[index] == 0x27) || (buf.b[index] == 0x22)) || ((buf.b[index] == 0x20) || (buf.b[index] == 0x3d)))
     {
         index++;
     }
     if ((buf.b[index - 1] == 0x22) || (buf.b[index - 1] == 0x27))
     {
         flag = false;
         num3 = buf.b[index - 1];
     }
     while (((buf.b[index] >= 0x20) && (buf.b[index] != 0x3e)) && ((index < max_pos) && (num2 < 0x200)))
     {
         if (flag && (buf.b[index] == 0x20))
         {
             return;
         }
         if (buf.b[index] == num3)
         {
             return;
         }
         value_str.Add((byte)char.ToLower((char)buf.b[index]));
         num2++;
         index++;
     }
 }
예제 #21
0
 private bool CSS_read_from_tags(CSS_params CSS_param, int max_buf_size, ByteClass buf, ref int ct)
 {
     int index = ct;
     int num3 = 0;
     if (max_buf_size <= 0)
     {
         return false;
     }
     if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x73)) && ((buf.b[index + 2] == 0x74) && (buf.b[index + 3] == 0x79))) && ((buf.b[index + 4] == 0x6c) && (buf.b[index + 5] == 0x65))) || ((((buf.b[index] == 60) && (buf.b[index + 1] == 0x53)) && ((buf.b[index + 2] == 0x74) && (buf.b[index + 3] == 0x79))) && ((buf.b[index + 4] == 0x6c) && (buf.b[index + 5] == 0x65)))) || ((((buf.b[index] == 60) && (buf.b[index + 1] == 0x53)) && ((buf.b[index + 2] == 0x54) && (buf.b[index + 3] == 0x59))) && ((buf.b[index + 4] == 0x4c) && (buf.b[index + 5] == 0x45))))
     {
         while ((buf.b[index + 5] != 0x3e) && (index < (CSS_param.buf_size + max_buf_size)))
         {
             index++;
         }
         index += 6;
         int num2 = 0;
         num3 = CSS_param.buf_pos;
         while ((num2 == 0) && (index < (CSS_param.buf_size + max_buf_size)))
         {
             if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x73) && (buf.b[index + 3] == 0x74))) && (((buf.b[index + 4] == 0x79) && (buf.b[index + 5] == 0x6c)) && ((buf.b[index + 6] == 0x65) && (buf.b[index + 7] == 0x3e)))) || ((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x53) && (buf.b[index + 3] == 0x74))) && (((buf.b[index + 4] == 0x79) && (buf.b[index + 5] == 0x6c)) && ((buf.b[index + 6] == 0x65) && (buf.b[index + 7] == 0x3e))))) || ((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x53) && (buf.b[index + 3] == 0x54))) && (((buf.b[index + 4] == 0x59) && (buf.b[index + 5] == 0x4c)) && ((buf.b[index + 6] == 0x45) && (buf.b[index + 7] == 0x3e)))))
             {
                 num2 = 1;
             }
             else
             {
                 CSS_param.buf.Add(buf.b[index]);
                 num3++;
                 index++;
             }
         }
         index += 7;
     }
     CSS_param.buf_size += max_buf_size;
     CSS_param.buf_pos = num3;
     CSS_param.use = true;
     ct = index;
     return true;
 }
예제 #22
0
 private int CSS_parse_name(ByteClass name, CSS_styles style)
 {
     ByteClass newb = new ByteClass();
     bool flag = false;
     if (name.byteCmpi("DIV") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.DIV_CSS;
     }
     else if (name.byteCmpi("SPAN") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.SPAN_CSS;
     }
     else if (name.byteCmpi("P") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.P_CSS;
     }
     else if (name.byteCmpi("EM") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.EM_CSS;
     }
     else if (name.byteCmpi("FONT") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.FONT_CSS;
     }
     else if (name.byteCmpi("TD") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.TD_CSS;
     }
     else if (name.byteCmpi("TABLE") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.TABLE_CSS;
     }
     else if (name.byteCmpi("UL") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.UL_CSS;
     }
     else if (name.byteCmpi("OL") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.OL_CSS;
     }
     else if (name.byteCmpi("H1") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.H1_CSS;
     }
     else if (name.byteCmpi("H2") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.H2_CSS;
     }
     else if (name.byteCmpi("H3") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.H3_CSS;
     }
     else if (name.byteCmpi("H4") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.H4_CSS;
     }
     else if (name.byteCmpi("H5") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.H5_CSS;
     }
     else if (name.byteCmpi("H6") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.H6_CSS;
     }
     else if (name.byteCmpi("HR") == 0)
     {
         name.Clear();
         style.css_tag_type = CSS_tag_type.HR_CSS;
     }
     int len = name.len;
     newb.Clear();
     for (int i = 0; i < len; i++)
     {
         if ((name.b[i] == 0x2e) || (name.b[i] == 0x23))
         {
             flag = false;
             if (newb.byteCmpi("DIV") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.DIV_CSS;
             }
             else if (newb.byteCmpi("SPAN") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.SPAN_CSS;
             }
             else if (newb.byteCmpi("P") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.P_CSS;
             }
             else if (newb.byteCmpi("EM") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.EM_CSS;
             }
             else if (newb.byteCmpi("FONT") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.FONT_CSS;
             }
             else if (newb.byteCmpi("TD") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.TD_CSS;
             }
             else if (newb.byteCmpi("TABLE") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.TABLE_CSS;
             }
             else if (newb.byteCmpi("UL") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.UL_CSS;
             }
             else if (newb.byteCmpi("OL") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.OL_CSS;
             }
             else if (newb.byteCmpi("H1") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.H1_CSS;
             }
             else if (newb.byteCmpi("H2") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.H2_CSS;
             }
             else if (newb.byteCmpi("H3") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.H3_CSS;
             }
             else if (newb.byteCmpi("H4") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.H4_CSS;
             }
             else if (newb.byteCmpi("H5") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.H5_CSS;
             }
             else if (newb.byteCmpi("H6") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.H6_CSS;
             }
             else if (newb.byteCmpi("HR") == 0)
             {
                 flag = true;
                 style.css_tag_type = CSS_tag_type.HR_CSS;
             }
             if (flag)
             {
                 newb.Clear();
                 newb.Add(name);
                 style.name.Clear();
                 style.name.Add(newb, i + 1);
             }
             break;
         }
         newb.Add(name.b[i]);
     }
     return 0;
 }
예제 #23
0
 private bool CSS_insert_styles(ByteClass ablaze, CSS_styles style, CSS_params CSS_param, ByteClass align_def, ByteClass align_j, ByteClass align_c, ByteClass align_l, ByteClass align_r, ByteClass align, ByteClass bufout, ref int p_ct, ByteClass buf, ref int p_count2, int max, ref bool font_color_default, ByteClass font_color_temp, ByteClass color_stack, ref int color_stack_num, ref bool may_use_space, ref bool font_size_default, ByteClass font_size_temp, CSS_tag_type css_tag_type)
 {
     int ct = p_ct;
     int num2 = p_count2;
     ByteClass newb = new ByteClass(0x20);
     int num3 = 0;
     if ((!CSS_param.pos.open && (ablaze.b[9] == 1)) && ((ablaze.b[10] == 1) && (ablaze.b[11] == 1)))
     {
         CSS_param.pos.x = style.left * this.PX_TO_TWIPS;
         CSS_param.pos.y = style.top * this.PX_TO_TWIPS;
         if (this._pageOrientation == ePageOrientation.Portrait)
         {
             CSS_param.pos.w = this.page_width;
         }
         else
         {
             CSS_param.pos.w = this.page_height;
         }
         CSS_param.pos.w -= CSS_param.pos.x;
         CSS_param.pos.h = 10 * this.PX_TO_TWIPS;
         CSS_param.pos.pos_open_str = string.Concat(new object[] { @"{\pard\plain\posx", CSS_param.pos.x, @"\posy%d\absw", CSS_param.pos.w, @"\absh", CSS_param.pos.h, " " });
         CSS_param.pos.pos_close_str = @"\par}";
         CSS_param.pos.open = this.check_position_object(bufout, ct, max, style.css_tag_type);
         if (CSS_param.pos.open)
         {
             buf.Add(CSS_param.pos.pos_open_str);
             num2 += CSS_param.pos.pos_open_str.Length;
         }
     }
     if (((ablaze.b[14] == 1) && (this._preservePageBreaks == 1)) && (style.page_break_before == 1))
     {
         buf.Add("\n\\pard\\page\\par\n");
         num2 += 0x10;
     }
     else if (((ablaze.b[15] == 1) && (this._preservePageBreaks == 1)) && ((style.page_break_after == 1) && (css_tag_type == CSS_tag_type.HR_CSS)))
     {
         buf.Add("\n\\pard\\page\\par\n");
         num2 += 0x10;
     }
     if ((ablaze.b[0] == 1) && (this._preserveFontFace == 1))
     {
         num3 = style.font_family;
         if ((num3 >= 0) && (num3 < this.MAX_FONTS))
         {
             newb.Clear();
             newb.Add(@"\f" + ((num3 + 2)).ToString() + " ");
             may_use_space = true;
             buf.Add(newb);
             num2 += newb.len;
         }
     }
     if ((ablaze.b[1] == 1) && (this._preserveFontColor == 1))
     {
         if (!font_color_default && (color_stack_num < color_stack.len))
         {
             color_stack.b[color_stack_num++] = (byte)this.ToInt(font_color_temp.ToByteCStartPos(3));
         }
         font_color_default = false;
         font_color_temp.Clear();
         font_color_temp.Add(@"\cf" + ((style.color + 3)).ToString() + " ");
         may_use_space = true;
         if (!font_color_default)
         {
             buf.Add(font_color_temp);
             num2 += font_color_temp.len;
         }
     }
     if (ablaze.b[2] == 1)
     {
         if (style.font_weight == 1)
         {
             buf.Add(@"{\b ");
             num2 += 4;
             may_use_space = true;
         }
         if (style.font_weight == 0)
         {
             buf.Add(@"\b0 ");
             num2 += 4;
         }
         if (style.font_weight == 1)
         {
             CSS_param.bold++;
             if (CSS_param.bold <= 0)
             {
                 CSS_param.bold = 1;
             }
         }
     }
     if ((ablaze.b[3] == 1) && (this._preserveFontSize == 1))
     {
         font_size_default = false;
         font_size_temp.Clear();
         font_size_temp.Add(@"\fs" + style.font_size + " ");
         may_use_space = true;
         buf.Add(font_size_temp);
         num2 += font_size_temp.len;
     }
     if ((ablaze.b[4] == 1) && (this._preserveAlignment == 1))
     {
         if (style.text_align == 0x6c)
         {
             align = align_l;
         }
         else if (style.text_align == 0x72)
         {
             align = align_r;
         }
         else if (style.text_align == 0x63)
         {
             align = align_c;
         }
         else if (style.text_align == 0x6a)
         {
             align = align_j;
         }
         buf.Add(align);
         num2 += align.len;
     }
     if ((ablaze.b[5] == 1) && (style.font_style == 0x69))
     {
         buf.Add(@"{\i ");
         num2 += 4;
         CSS_param.italic++;
         if (CSS_param.italic <= 0)
         {
             CSS_param.italic = 1;
         }
         may_use_space = true;
     }
     if (ablaze.b[6] == 1)
     {
         newb.Clear();
         newb.Add(@"\sb" + style.margin_top + " ");
         buf.Add(newb);
         num2 += newb.len;
     }
     if ((ablaze.b[7] == 1) && (this._preserveBackgroundColor == 1))
     {
         font_color_temp.Clear();
         font_color_temp.Add(@"\chcbpat" + ((style.background_color + 3)).ToString() + " ");
         may_use_space = true;
         buf.Add(font_color_temp);
         num2 += font_color_temp.len;
     }
     if (ablaze.b[12] == 1)
     {
         if (style.text_decoration == 0x75)
         {
             buf.Add(@"{\ul ");
             num2 += 5;
         }
         if (style.text_decoration == 110)
         {
             buf.Add(@"{\ul0 ");
             num2 += 6;
         }
         if (style.text_decoration == 0x73)
         {
             buf.Add(@"{\strike ");
             num2 += 9;
         }
         CSS_param.underline++;
         if (CSS_param.underline <= 0)
         {
             CSS_param.underline = 1;
         }
     }
     if (ablaze.b[13] == 1)
     {
         if (style.vertical_align == 0x62)
         {
             buf.Add(@"{\sub ");
             num2 += 6;
         }
         if (style.vertical_align == 0x72)
         {
             buf.Add(@"{\super ");
             num2 += 8;
         }
         CSS_param.vertical_align++;
         if (CSS_param.vertical_align <= 0)
         {
             CSS_param.vertical_align = 1;
         }
     }
     p_count2 = num2;
     return true;
 }
예제 #24
0
 private bool CSS_insert(ByteClass align_def, ByteClass align_j, ByteClass align_c, ByteClass align_l, ByteClass align_r, ByteClass align, ByteClass bufout, ref int p_ct, ByteClass buf, ref int p_count2, int max, CSS_params CSS_param, ref bool font_color_default, ByteClass font_color_temp, ByteClass color_stack, ref int color_stack_num, ref bool may_use_space, ref bool font_size_default, ByteClass font_size_temp, ArrayList font_list, ArrayList color_list, CSS_tag_type css_tag_type)
 {
     new ByteClass();
     int index = p_ct;
     int num2 = p_count2;
     int num3 = 0;
     int num4 = 0;
     ByteClass class2 = new ByteClass(20);
     int num5 = 0;
     int num6 = 0;
     bool flag = false;
     ByteClass valueStr = new ByteClass(0x40);
     int ct = 0;
     if (bufout.b[index] == 60)
     {
         index++;
     }
     num3 = index;
     num5 = 1;
     num6 = 0;
     while ((index < bufout.len) && (num5 != num6))
     {
         if (bufout.b[index] == 0x3e)
         {
             num6++;
         }
         if (num5 == num6)
         {
             break;
         }
         if (((((bufout.b[index] == 0x73) || (bufout.b[index] == 0x53)) && ((bufout.b[index + 1] == 0x74) || (bufout.b[index + 1] == 0x54))) && (((bufout.b[index + 2] == 0x79) || (bufout.b[index + 2] == 0x59)) && ((bufout.b[index + 3] == 0x6c) || (bufout.b[index + 3] == 0x4c)))) && (((bufout.b[index + 4] == 0x65) || (bufout.b[index + 4] == 0x45)) && (this.IS_DELIMITER(bufout.b[index + 5]) || (bufout.b[index + 5] == 0x3d))))
         {
             index += 6;
             this.ReadValue(bufout, ref index, valueStr);
             break;
         }
         index++;
     }
     int len = valueStr.len;
     index = num3;
     num3 = 0;
     ct = 0;
     CSS_param.found = false;
     num5 = 1;
     num6 = 0;
     while ((index < max) && (num5 != num6))
     {
         if (bufout.b[index] == 0x3e)
         {
             num6++;
         }
         if (num5 == num6)
         {
             break;
         }
         if (((((bufout.b[index] == 0x63) || (bufout.b[index] == 0x43)) && ((bufout.b[index + 1] == 0x6c) || (bufout.b[index + 1] == 0x4c))) && (((bufout.b[index + 2] == 0x61) || (bufout.b[index + 2] == 0x41)) && ((bufout.b[index + 3] == 0x73) || (bufout.b[index + 3] == 0x53)))) && (((bufout.b[index + 4] == 0x73) || (bufout.b[index + 4] == 0x53)) && ((bufout.b[index + 5] == 0x3d) || (bufout.b[index + 5] == 0x20))))
         {
             if (bufout.b[index + 5] == 0x20)
             {
                 index += 6;
             }
             else
             {
                 index += 5;
             }
             this.read_value_exact(bufout, ref index, max, CSS_param.style_name);
             if (CSS_param.style_name.len > 0)
             {
                 CSS_param.found = true;
             }
         }
         if ((((bufout.b[index] == 0x69) || (bufout.b[index] == 0x49)) && ((bufout.b[index + 1] == 100) || (bufout.b[index + 1] == 0x44))) && (bufout.b[index + 2] == 0x3d))
         {
             index += 2;
             this.read_value_exact(bufout, ref index, max, CSS_param.style_name);
             if (CSS_param.style_name.len > 0)
             {
                 CSS_param.found = true;
             }
         }
         if ((((((this._preserveAlignment == 1) && (bufout.b[index] == 0x20)) && ((bufout.b[index + 1] == 0x61) || (bufout.b[index + 1] == 0x41))) && ((bufout.b[index + 2] == 0x6c) || (bufout.b[index + 2] == 0x4c))) && (((bufout.b[index + 3] == 0x69) || (bufout.b[index + 3] == 0x49)) && ((bufout.b[index + 4] == 0x67) || (bufout.b[index + 4] == 0x47)))) && ((bufout.b[index + 5] == 110) || (bufout.b[index + 5] == 0x4e)))
         {
             index += 6;
             this.read_value(bufout, ref index, class2);
             flag = true;
             align.Clear();
             if (class2.byteCmpi("center") == 0)
             {
                 align.Add(@"\qc ");
             }
             else if (class2.byteCmpi("middle") == 0)
             {
                 align.Add(@"\qc ");
             }
             else if (class2.byteCmpi("left") == 0)
             {
                 align.Add(@"\ql ");
             }
             else if (class2.byteCmpi("right") == 0)
             {
                 align.Add(@"\qr ");
             }
             else if (class2.byteCmpi("justify") == 0)
             {
                 align.Add(@"\qj ");
             }
         }
         index++;
     }
     if ((this._preserveAlignment == 1) && flag)
     {
         buf.Add(align);
         num2 += align.len;
     }
     for (num3 = 0; num3 < CSS_param.styles; num3++)
     {
         if (((((CSS_styles)CSS_param.CSS_style[num3]).name.len == 0) && (((CSS_styles)CSS_param.CSS_style[num3]).css_tag_type != CSS_tag_type.UNKNOWN_CSS)) && (((CSS_styles)CSS_param.CSS_style[num3]).css_tag_type == css_tag_type))
         {
             CSS_stack_element _element = new CSS_stack_element();
             CSS_param.stack_tag.Add(_element);
             ((CSS_stack_element)CSS_param.stack_tag[CSS_param.stack_tag_num]).style_index = num3;
             ((CSS_stack_element)CSS_param.stack_tag[CSS_param.stack_tag_num]).css_tag_type = css_tag_type;
             if (CSS_param.stack_tag_num < (this.STK_MAX - 1))
             {
                 CSS_param.stack_tag_num++;
             }
             this.CSS_insert_styles(((CSS_styles)CSS_param.CSS_style[num3]).ablaze, (CSS_styles)CSS_param.CSS_style[num3], CSS_param, align_def, align_j, align_c, align_l, align_r, align, bufout, ref index, buf, ref num2, max, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, css_tag_type);
             break;
         }
     }
     if (css_tag_type != CSS_tag_type.FONT_CSS)
     {
         CSS_styles _styles = new CSS_styles();
         CSS_param.CSS_style_str_stack.Add(_styles);
         this.CSS_reset_style((CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num]);
         if (this.CSS_read_style_params(valueStr, ref ct, len, (CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num], CSS_param, font_list, color_list))
         {
             if (CSS_param.style_str_stack_num > (this.STK_MAX - 1))
             {
                 CSS_param.style_str_stack_num = this.STK_MAX - 1;
             }
             this.CSS_insert_styles(((CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num]).ablaze, (CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num], CSS_param, align_def, align_j, align_c, align_l, align_r, align, bufout, ref index, buf, ref num2, max, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, css_tag_type);
             ((CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num]).css_tag_type = css_tag_type;
             if (CSS_param.style_str_stack_num < (this.STK_MAX - 1))
             {
                 CSS_param.style_str_stack_num++;
             }
         }
         else
         {
             CSS_param.CSS_style_str_stack.RemoveAt(CSS_param.style_str_stack_num);
         }
     }
     if (CSS_param.found)
     {
         CSS_param.found = false;
         num3 = 0;
         while (num3 < CSS_param.styles)
         {
             if ((((CSS_styles)CSS_param.CSS_style[num3]).name.byteCmp(CSS_param.style_name) == 0) && ((((CSS_styles)CSS_param.CSS_style[num3]).css_tag_type == css_tag_type) || (((CSS_styles)CSS_param.CSS_style[num3]).css_tag_type == CSS_tag_type.UNKNOWN_CSS)))
             {
                 CSS_param.found = true;
                 break;
             }
             num3++;
         }
         if (CSS_param.found)
         {
             CSS_stack_element _element2 = new CSS_stack_element();
             CSS_param.stack.Add(_element2);
             ((CSS_stack_element)CSS_param.stack[CSS_param.stack_num]).style_index = num3;
             ((CSS_stack_element)CSS_param.stack[CSS_param.stack_num]).css_tag_type = css_tag_type;
             if (CSS_param.stack_num < (this.STK_MAX - 1))
             {
                 CSS_param.stack_num++;
             }
             for (num4 = 0; num4 < this.STYLES_KNOW; num4++)
             {
                 CSS_param.ablaze.b[num4] = ((CSS_styles)CSS_param.CSS_style[num3]).ablaze.b[num4];
             }
             this.CSS_insert_styles(CSS_param.ablaze, (CSS_styles)CSS_param.CSS_style[num3], CSS_param, align_def, align_j, align_c, align_l, align_r, align, bufout, ref index, buf, ref num2, max, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, css_tag_type);
             if (css_tag_type == CSS_tag_type.SPAN_CSS)
             {
                 CSS_param.span++;
             }
             else if (css_tag_type == CSS_tag_type.DIV_CSS)
             {
                 CSS_param.div++;
             }
             else if (css_tag_type == CSS_tag_type.P_CSS)
             {
                 CSS_param.p_tag_open++;
             }
             else if (css_tag_type == CSS_tag_type.EM_CSS)
             {
                 CSS_param.em_tag_open++;
             }
             else if (css_tag_type == CSS_tag_type.FONT_CSS)
             {
                 CSS_param.font_tag_open++;
             }
         }
     }
     p_ct = index;
     p_count2 = num2;
     return CSS_param.found;
 }
예제 #25
0
 private int hex_to_dec(ByteClass str, int posStart)
 {
     int num = 0;
     int num4 = 0;
     int len = str.len;
     for (int i = 0; len >= 0; i++)
     {
         if ((str.b[len] >= 0x41) && (str.b[len] <= 70))
         {
             num4 = (str.b[len] - 0x41) + 10;
         }
         else if ((str.b[len] >= 0x61) && (str.b[len] <= 0x66))
         {
             num4 = (str.b[len] - 0x61) + 10;
         }
         else
         {
             num4 = str.b[len] - 0x30;
         }
         num += num4 * this.pow(0x10, i);
         len--;
     }
     return num;
 }
예제 #26
0
 private void CSS_check_file_name(ByteClass fname, ByteClass cur_dir)
 {
     ByteClass class2 = new ByteClass();
     int len = fname.len;
     for (int i = 0; i < len; i++)
     {
         if (fname.b[i] == 0x2f)
         {
             fname.b[i] = 0x5c;
         }
     }
     class2.Clear();
     class2.Add(cur_dir);
     if ((fname.b[1] != 0x3a) && (fname.b[2] != 0x5c))
     {
         class2.Add(fname);
     }
     int num3 = 0;
     for (int j = 0; j < class2.len; j++)
     {
         if (class2.b[j] == 0x5c)
         {
             if ((num3 > 0) && (fname.b[num3 - 1] != 0x5c))
             {
                 num3++;
                 fname.Add(class2.b[j]);
             }
         }
         else
         {
             num3++;
             fname.Add(class2.b[j]);
         }
     }
     class2.Clear();
     class2.Add(fname);
 }
예제 #27
0
 private ByteClass HtmlToHtml(ByteClass HtmlIn)
 {
     ByteClass buf = new ByteClass(HtmlIn.len);
     ByteClass bOut = new ByteClass();
     ByteClass message = new ByteClass();
     buf = HtmlIn;
     int index = 0;
     int num2 = 0;
     new ByteClass();
     new ByteClass();
     ByteClass class5 = new ByteClass();
     ByteClass class6 = new ByteClass();
     class5.Clear();
     class5.Add(this.HtmlPath);
     message.Clear();
     message.Add(".Net module started\n");
     if (this._createTraceFile == 1)
     {
         this.MyTrace(message, this.TraceFilePath);
     }
     for (index = 0; index < buf.len; index++)
     {
         if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x62) || (buf.b[index + 1] == 0x42))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x73) || (buf.b[index + 3] == 0x53)) && ((buf.b[index + 4] == 0x65) || (buf.b[index + 4] == 0x45)))) && ((buf.b[index + 5] == 0x20) || (buf.b[index + 5] == 10)))
         {
             num2 = index;
             index += 5;
             while ((buf.b[index] != 0x3e) && (index < buf.len))
             {
                 if ((((buf.b[index] == 0x68) || (buf.b[index] == 0x48)) && ((buf.b[index + 1] == 0x72) || (buf.b[index + 1] == 0x52))) && (((buf.b[index + 2] == 0x65) || (buf.b[index + 2] == 0x45)) && ((buf.b[index + 3] == 0x66) || (buf.b[index + 3] == 70))))
                 {
                     index += 4;
                     class6.Clear();
                     this.read_value(buf, ref index, class6);
                     this.BaseURL = System.Text.Encoding.UTF8.GetString(class6.b, 0, class6.len);
                 }
                 index++;
             }
             this.LeaveTag(buf, num2, bOut);
         }
         else if ((((((this._deleteTables == 1) && (buf.b[index] == 60)) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x62) || (buf.b[index + 3] == 0x42)) && ((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)))) && (((buf.b[index + 5] == 0x65) || (buf.b[index + 5] == 0x45)) && (((buf.b[index + 6] == 0x3e) || (buf.b[index + 6] == 0x20)) || (buf.b[index + 6] == 10))))
         {
             index += 6;
             int num3 = 1;
             while ((num3 > 0) && (index < buf.len))
             {
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x61) || (buf.b[index + 3] == 0x41))) && (((buf.b[index + 4] == 0x62) || (buf.b[index + 4] == 0x42)) && ((buf.b[index + 5] == 0x6c) || (buf.b[index + 5] == 0x4c)))) && (((buf.b[index + 6] == 0x65) || (buf.b[index + 6] == 0x45)) && (buf.b[index + 7] == 0x3e)))
                 {
                     num3--;
                     index += 6;
                 }
                 else if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x62) || (buf.b[index + 3] == 0x42)) && ((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)))) && (((buf.b[index + 5] == 0x65) || (buf.b[index + 5] == 0x45)) && ((buf.b[index + 6] == 0x3e) || (buf.b[index + 6] == 0x20))))
                 {
                     num3++;
                 }
                 index++;
             }
         }
         else
         {
             if (this._preserveTables == 0)
             {
                 if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x62) || (buf.b[index + 3] == 0x42)) && ((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)))) && (((buf.b[index + 5] == 0x65) || (buf.b[index + 5] == 0x45)) && (((buf.b[index + 6] == 0x3e) || (buf.b[index + 6] == 0x20)) || (buf.b[index + 6] == 10))))
                 {
                     while ((buf.b[index + 6] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 6;
                     goto Label_14C6;
                 }
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x61) || (buf.b[index + 3] == 0x41))) && (((buf.b[index + 4] == 0x62) || (buf.b[index + 4] == 0x42)) && ((buf.b[index + 5] == 0x6c) || (buf.b[index + 5] == 0x4c)))) && (((buf.b[index + 6] == 0x65) || (buf.b[index + 6] == 0x45)) && (buf.b[index + 7] == 0x3e)))
                 {
                     index += 7;
                     goto Label_14C6;
                 }
                 if ((((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x63) || (buf.b[index + 1] == 0x43))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x70) || (buf.b[index + 3] == 80)) && ((buf.b[index + 4] == 0x74) || (buf.b[index + 4] == 0x54)))) && ((((buf.b[index + 5] == 0x69) || (buf.b[index + 5] == 0x49)) && ((buf.b[index + 6] == 0x6f) || (buf.b[index + 6] == 0x4f))) && ((buf.b[index + 7] == 110) || (buf.b[index + 7] == 0x4e)))) && (((buf.b[index + 8] == 0x3e) || (buf.b[index + 8] == 0x20)) || (buf.b[index + 8] == 10)))
                 {
                     while ((buf.b[index + 8] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 8;
                     goto Label_14C6;
                 }
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x63) || (buf.b[index + 2] == 0x43))) && ((buf.b[index + 3] == 0x61) || (buf.b[index + 3] == 0x41))) && (((buf.b[index + 4] == 0x70) || (buf.b[index + 4] == 80)) && ((buf.b[index + 5] == 0x74) || (buf.b[index + 5] == 0x54)))) && ((((buf.b[index + 6] == 0x69) || (buf.b[index + 6] == 0x49)) && ((buf.b[index + 7] == 0x6f) || (buf.b[index + 7] == 0x4f))) && (((buf.b[index + 8] == 110) || (buf.b[index + 8] == 0x4e)) && (buf.b[index + 9] == 0x3e))))
                 {
                     index += 9;
                     goto Label_14C6;
                 }
                 if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x68) || (buf.b[index + 2] == 0x48))) && (((buf.b[index + 3] == 0x65) || (buf.b[index + 3] == 0x45)) && ((buf.b[index + 4] == 0x61) || (buf.b[index + 4] == 0x41)))) && (((buf.b[index + 5] == 100) || (buf.b[index + 5] == 0x44)) && (((buf.b[index + 6] == 0x3e) || (buf.b[index + 6] == 0x20)) || (buf.b[index + 6] == 10))))
                 {
                     while ((buf.b[index + 6] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 6;
                     goto Label_14C6;
                 }
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x68) || (buf.b[index + 3] == 0x48))) && (((buf.b[index + 4] == 0x65) || (buf.b[index + 4] == 0x45)) && ((buf.b[index + 5] == 0x61) || (buf.b[index + 5] == 0x41)))) && (((buf.b[index + 6] == 100) || (buf.b[index + 6] == 0x44)) && (buf.b[index + 7] == 0x3e)))
                 {
                     index += 7;
                     goto Label_14C6;
                 }
                 if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x66) || (buf.b[index + 2] == 70))) && (((buf.b[index + 3] == 0x6f) || (buf.b[index + 3] == 0x4f)) && ((buf.b[index + 4] == 0x6f) || (buf.b[index + 4] == 0x4f)))) && (((buf.b[index + 5] == 0x74) || (buf.b[index + 5] == 0x54)) && (((buf.b[index + 6] == 0x3e) || (buf.b[index + 6] == 0x20)) || (buf.b[index + 6] == 10))))
                 {
                     while ((buf.b[index + 6] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 6;
                     goto Label_14C6;
                 }
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x66) || (buf.b[index + 3] == 70))) && (((buf.b[index + 4] == 0x6f) || (buf.b[index + 4] == 0x4f)) && ((buf.b[index + 5] == 0x6f) || (buf.b[index + 5] == 0x4f)))) && (((buf.b[index + 6] == 0x74) || (buf.b[index + 6] == 0x54)) && (buf.b[index + 7] == 0x3e)))
                 {
                     index += 7;
                     goto Label_14C6;
                 }
                 if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x62) || (buf.b[index + 2] == 0x42))) && (((buf.b[index + 3] == 0x6f) || (buf.b[index + 3] == 0x4f)) && ((buf.b[index + 4] == 100) || (buf.b[index + 4] == 0x44)))) && (((buf.b[index + 5] == 0x79) || (buf.b[index + 5] == 0x59)) && (((buf.b[index + 6] == 0x3e) || (buf.b[index + 6] == 0x20)) || (buf.b[index + 6] == 10))))
                 {
                     while ((buf.b[index + 6] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 6;
                     goto Label_14C6;
                 }
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x62) || (buf.b[index + 3] == 0x42))) && (((buf.b[index + 4] == 0x6f) || (buf.b[index + 4] == 0x4f)) && ((buf.b[index + 5] == 100) || (buf.b[index + 5] == 0x44)))) && (((buf.b[index + 6] == 0x79) || (buf.b[index + 6] == 0x59)) && (buf.b[index + 7] == 0x3e)))
                 {
                     index += 7;
                     goto Label_14C6;
                 }
                 if ((((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x63) || (buf.b[index + 1] == 0x43))) && ((buf.b[index + 2] == 0x6f) || (buf.b[index + 2] == 0x4f))) && (((buf.b[index + 3] == 0x6c) || (buf.b[index + 3] == 0x4c)) && ((buf.b[index + 4] == 0x67) || (buf.b[index + 4] == 0x47)))) && ((((buf.b[index + 5] == 0x72) || (buf.b[index + 5] == 0x52)) && ((buf.b[index + 6] == 0x6f) || (buf.b[index + 6] == 0x4f))) && (((buf.b[index + 7] == 0x75) || (buf.b[index + 7] == 0x55)) && ((buf.b[index + 8] == 0x70) || (buf.b[index + 8] == 80))))) && (((buf.b[index + 9] == 0x3e) || (buf.b[index + 9] == 0x20)) || (buf.b[index + 9] == 10)))
                 {
                     while ((buf.b[index + 9] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 9;
                     goto Label_14C6;
                 }
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x63) || (buf.b[index + 2] == 0x43))) && ((buf.b[index + 3] == 0x6f) || (buf.b[index + 3] == 0x4f))) && (((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)) && ((buf.b[index + 5] == 0x67) || (buf.b[index + 5] == 0x47)))) && ((((buf.b[index + 6] == 0x72) || (buf.b[index + 6] == 0x52)) && ((buf.b[index + 7] == 0x6f) || (buf.b[index + 7] == 0x4f))) && ((((buf.b[index + 8] == 0x75) || (buf.b[index + 8] == 0x55)) && ((buf.b[index + 9] == 0x70) || (buf.b[index + 9] == 80))) && (buf.b[index + 10] == 0x3e))))
                 {
                     index += 10;
                     goto Label_14C6;
                 }
                 if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x63) || (buf.b[index + 1] == 0x43))) && ((buf.b[index + 2] == 0x6f) || (buf.b[index + 2] == 0x4f))) && ((buf.b[index + 3] == 0x6c) || (buf.b[index + 3] == 0x4c))) && (((buf.b[index + 4] == 0x3e) || (buf.b[index + 4] == 0x20)) || (buf.b[index + 4] == 10)))
                 {
                     while ((buf.b[index + 4] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 4;
                     goto Label_14C6;
                 }
                 if (((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x63) || (buf.b[index + 2] == 0x43))) && ((buf.b[index + 3] == 0x6f) || (buf.b[index + 3] == 0x4f))) && (((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)) && (buf.b[index + 5] == 0x3e)))
                 {
                     index += 5;
                     goto Label_14C6;
                 }
                 if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x72) || (buf.b[index + 2] == 0x52))) && ((buf.b[index + 3] == 0x3e) || (buf.b[index + 3] == 0x20)))
                 {
                     while ((buf.b[index + 3] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 3;
                     bOut.Add("\n<p>");
                     goto Label_14C6;
                 }
                 if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && (((buf.b[index + 2] == 100) || (buf.b[index + 2] == 0x44)) || ((buf.b[index + 2] == 0x68) || (buf.b[index + 2] == 0x48)))) && (((buf.b[index + 3] == 0x3e) || (buf.b[index + 3] == 0x20)) || (buf.b[index + 3] == 10)))
                 {
                     while ((buf.b[index + 3] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     index += 3;
                     goto Label_14C6;
                 }
                 if (((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x72) || (buf.b[index + 3] == 0x52))) && (buf.b[index + 4] == 0x3e))
                 {
                     index += 4;
                     bOut.Add("</p>");
                     goto Label_14C6;
                 }
                 if (((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && (((buf.b[index + 3] == 100) || (buf.b[index + 3] == 0x44)) || ((buf.b[index + 3] == 0x68) || (buf.b[index + 3] == 0x48)))) && (buf.b[index + 4] == 0x3e))
                 {
                     index += 4;
                     bOut.Add("&nbsp;");
                     goto Label_14C6;
                 }
             }
             if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x69) || (buf.b[index + 1] == 0x49))) && ((buf.b[index + 2] == 0x6d) || (buf.b[index + 2] == 0x4d))) && (((buf.b[index + 3] == 0x67) || (buf.b[index + 3] == 0x47)) && ((buf.b[index + 4] == 0x20) || (buf.b[index + 4] == 10))))
             {
                 if (this._deleteImages == 1)
                 {
                     while ((buf.b[index] != 0x3e) && (index < buf.len))
                     {
                         index++;
                     }
                     goto Label_14C6;
                 }
                 if (this._preserveImages == 0)
                 {
                     while ((buf.b[index] != 0x3e) && (index < buf.len))
                     {
                         bOut.Add(buf.b[index]);
                         index++;
                     }
                     bOut.Add(">");
                     goto Label_14C6;
                 }
             }
             bOut.Add(buf.b[index]);
         Label_14C6: ;
         }
     }
     return bOut;
 }
예제 #28
0
 private int EncodingToASCII(string htmlString, ByteClass buf)
 {
     buf.Clear();
     for (int i = 0; i < htmlString.Length; i++)
     {
         if (htmlString[i] > '\x00ff')
         {
             buf.Add("&#" + ((int)htmlString[i]).ToString() + ";");
         }
         else
         {
             buf.Add((byte)htmlString[i]);
         }
     }
     return 0;
 }
예제 #29
0
        private void MakeOLsymbol(int num, ByteClass strOLsymbol, int listType)
        {
            if (listType == 7)
            {
                if ((num < 1) || (num > 0x1a))
                {
                    num = 1;
                }
                strOLsymbol.Clear();
                strOLsymbol.Add((byte)((0x61 + num) - 1));
            }
            else if (listType == 8)
            {
                if ((num < 1) || (num > 0x1a))
                {
                    num = 1;
                }
                strOLsymbol.Clear();
                strOLsymbol.Add((byte)((num - 1) + 0x41));
            }
            else if (listType == 5)
            {
                if ((num < 1) || (num > 20))
                {
                    num = 1;
                }
                strOLsymbol.Clear();
                switch (num)
                {
                    case 1:
                        strOLsymbol.Add("i");
                        return;

                    case 2:
                        strOLsymbol.Add("ii");
                        return;

                    case 3:
                        strOLsymbol.Add("iii");
                        return;

                    case 4:
                        strOLsymbol.Add("iv");
                        return;

                    case 5:
                        strOLsymbol.Add("v");
                        return;

                    case 6:
                        strOLsymbol.Add("vi");
                        return;

                    case 7:
                        strOLsymbol.Add("vii");
                        return;

                    case 8:
                        strOLsymbol.Add("viii");
                        return;

                    case 9:
                        strOLsymbol.Add("ix");
                        return;

                    case 10:
                        strOLsymbol.Add("x");
                        return;

                    case 11:
                        strOLsymbol.Add("xi");
                        return;

                    case 12:
                        strOLsymbol.Add("xii");
                        return;

                    case 13:
                        strOLsymbol.Add("xiii");
                        return;

                    case 14:
                        strOLsymbol.Add("xiv");
                        return;

                    case 15:
                        strOLsymbol.Add("xv");
                        return;

                    case 0x10:
                        strOLsymbol.Add("xvi");
                        return;

                    case 0x11:
                        strOLsymbol.Add("xvii");
                        return;

                    case 0x12:
                        strOLsymbol.Add("xviii");
                        return;

                    case 0x13:
                        strOLsymbol.Add("xix");
                        return;

                    case 20:
                        strOLsymbol.Add("xx");
                        return;
                }
            }
            else if (listType == 6)
            {
                if ((num < 1) || (num > 20))
                {
                    num = 1;
                }
                strOLsymbol.Clear();
                switch (num)
                {
                    case 1:
                        strOLsymbol.Add("I");
                        return;

                    case 2:
                        strOLsymbol.Add("II");
                        return;

                    case 3:
                        strOLsymbol.Add("III");
                        return;

                    case 4:
                        strOLsymbol.Add("IV");
                        return;

                    case 5:
                        strOLsymbol.Add("V");
                        return;

                    case 6:
                        strOLsymbol.Add("VI");
                        return;

                    case 7:
                        strOLsymbol.Add("VII");
                        return;

                    case 8:
                        strOLsymbol.Add("VIII");
                        return;

                    case 9:
                        strOLsymbol.Add("IX");
                        return;

                    case 10:
                        strOLsymbol.Add("X");
                        return;

                    case 11:
                        strOLsymbol.Add("XI");
                        return;

                    case 12:
                        strOLsymbol.Add("XII");
                        return;

                    case 13:
                        strOLsymbol.Add("XIII");
                        return;

                    case 14:
                        strOLsymbol.Add("XIV");
                        return;

                    case 15:
                        strOLsymbol.Add("XV");
                        return;

                    case 0x10:
                        strOLsymbol.Add("XVI");
                        return;

                    case 0x11:
                        strOLsymbol.Add("XVII");
                        return;

                    case 0x12:
                        strOLsymbol.Add("XVIII");
                        return;

                    case 0x13:
                        strOLsymbol.Add("XIX");
                        return;

                    case 20:
                        strOLsymbol.Add("XX");
                        return;
                }
            }
            else
            {
                strOLsymbol.Clear();
            }
        }
예제 #30
0
 private bool get_border(ByteClass buf, int posStartBuf, int max)
 {
     int index = posStartBuf;
     int num2 = 0;
     ByteClass s = new ByteClass(0x20);
     int num3 = 0;
     while ((buf.b[index] != 0x3e) && (index < max))
     {
         if (((((buf.b[index] == 0x62) || (buf.b[index] == 0x42)) && ((buf.b[index + 1] == 0x6f) || (buf.b[index + 1] == 0x4f))) && (((buf.b[index + 2] == 0x72) || (buf.b[index + 2] == 0x52)) && ((buf.b[index + 3] == 100) || (buf.b[index + 3] == 0x44)))) && (((buf.b[index + 4] == 0x65) || (buf.b[index + 4] == 0x45)) && ((buf.b[index + 5] == 0x72) || (buf.b[index + 5] == 0x52))))
         {
             index += 5;
             while (buf.b[index] != 0x3d)
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return false;
                 }
                 index++;
             }
             while ((buf.b[index] < 0x30) || (buf.b[index] > 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return false;
                 }
                 index++;
             }
             num2 = 0;
             while (((buf.b[index] >= 0x30) && (buf.b[index] <= 0x39)) && (num2 < 20))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     break;
                 }
                 num2++;
                 s.Add(buf.b[index]);
                 index++;
             }
             num3 = this.ToInt(s);
             break;
         }
         index++;
     }
     return (num3 > 0);
 }
예제 #31
0
 public int byteCmp(ByteClass bc)
 {
     if (bc.len != len)
     {
         return -1;
     }
     for (int i = 0; i < bc.len; i++)
     {
         if (char.ToLower((char) b[i]) != char.ToLower((char) bc.b[i]))
         {
             return -1;
         }
     }
     return 0;
 }
예제 #32
0
 private int get_width(ByteClass buf, int posStart, int max, ref int percent, ref int colspan, ref int rowspan, ArrayList color_list, int color_list_num, ref int bgcolor, CSS_params CSS_param, ref int valign, ref int align)
 {
     int index = 0;
     colspan = 1;
     rowspan = 1;
     int num2 = 0;
     ByteClass class2 = new ByteClass(20);
     ByteClass class3 = new ByteClass(20);
     int width = 0;
     ByteClass class4 = new ByteClass(0x29);
     bool flag = false;
     if (bgcolor != -1111)
     {
         bgcolor = 0;
     }
     percent = 0;
     ByteClass class5 = new ByteClass(0x1f);
     if (valign != -1111)
     {
         valign = this.VALIGN_TOP;
     }
     index = posStart;
     while ((buf.b[index] != 0x3e) && (index < max))
     {
         if ((((this.IS_DELIMITER(buf.b[index]) && ((buf.b[index + 1] == 0x77) || (buf.b[index + 1] == 0x57))) && ((buf.b[index + 2] == 0x69) || (buf.b[index + 2] == 0x49))) && (((buf.b[index + 3] == 100) || (buf.b[index + 3] == 0x44)) && ((buf.b[index + 4] == 0x74) || (buf.b[index + 4] == 0x54)))) && ((buf.b[index + 5] == 0x68) || (buf.b[index + 5] == 0x48)))
         {
             index += 4;
             while ((buf.b[index] != 0x3d) && (buf.b[index] != 0x3a))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 index++;
             }
             while ((buf.b[index] < 0x30) || (buf.b[index] > 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 index++;
             }
             num2 = 0;
             class2.Clear();
             while ((buf.b[index] >= 0x30) && (buf.b[index] <= 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 class2.Add(buf.b[index]);
                 index++;
             }
             if (buf.b[index] == 0x25)
             {
                 percent = 1;
             }
             width = class2.ByteToInt();
             class2.Clear();
         }
         else if (((((buf.b[index] == 0x63) || (buf.b[index] == 0x43)) && ((buf.b[index + 1] == 0x6f) || (buf.b[index + 1] == 0x4f))) && (((buf.b[index + 2] == 0x6c) || (buf.b[index + 2] == 0x4c)) && ((buf.b[index + 3] == 0x73) || (buf.b[index + 3] == 0x53)))) && ((((buf.b[index + 4] == 0x70) || (buf.b[index + 4] == 80)) && ((buf.b[index + 5] == 0x61) || (buf.b[index + 5] == 0x41))) && ((buf.b[index + 6] == 110) || (buf.b[index + 6] == 0x4e))))
         {
             index += 6;
             while (buf.b[index] != 0x3d)
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 index++;
             }
             while ((buf.b[index] < 0x30) || (buf.b[index] > 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 index++;
             }
             num2 = 0;
             class2.Clear();
             while ((buf.b[index] >= 0x30) && (buf.b[index] <= 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 class2.Add(buf.b[index]);
                 index++;
             }
             colspan = class2.ByteToInt();
         }
         else
         {
             if (((((buf.b[index] == 0x72) || (buf.b[index] == 0x52)) && ((buf.b[index + 1] == 0x6f) || (buf.b[index + 1] == 0x4f))) && (((buf.b[index + 2] == 0x77) || (buf.b[index + 2] == 0x57)) && ((buf.b[index + 3] == 0x73) || (buf.b[index + 3] == 0x53)))) && ((((buf.b[index + 4] == 0x70) || (buf.b[index + 4] == 80)) && ((buf.b[index + 5] == 0x61) || (buf.b[index + 5] == 0x41))) && ((buf.b[index + 6] == 110) || (buf.b[index + 6] == 0x4e))))
             {
                 index += 6;
                 while (buf.b[index] != 0x3d)
                 {
                     if (buf.b[index] == 0x3e)
                     {
                         return width;
                     }
                     index++;
                 }
                 while ((buf.b[index] < 0x30) || (buf.b[index] > 0x39))
                 {
                     if (buf.b[index] == 0x3e)
                     {
                         return width;
                     }
                     index++;
                 }
                 num2 = 0;
                 class2.Clear();
                 while ((buf.b[index] >= 0x30) && (buf.b[index] <= 0x39))
                 {
                     if (buf.b[index] == 0x3e)
                     {
                         return width;
                     }
                     class2.Add(buf.b[index]);
                     index++;
                 }
                 rowspan = class2.ByteToInt();
                 class2.Clear();
                 continue;
             }
             if (((((buf.b[index] == 0x62) || (buf.b[index] == 0x42)) && ((buf.b[index + 1] == 0x67) || (buf.b[index + 1] == 0x47))) && (((buf.b[index + 2] == 0x63) || (buf.b[index + 2] == 0x43)) && ((buf.b[index + 3] == 0x6f) || (buf.b[index + 3] == 0x4f)))) && ((((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)) && ((buf.b[index + 5] == 0x6f) || (buf.b[index + 5] == 0x4f))) && (((buf.b[index + 6] == 0x72) || (buf.b[index + 6] == 0x52)) && (buf.b[index + 7] == 0x3d))))
             {
                 index += 8;
                 if ((color_list_num != -1111) && (color_list != null))
                 {
                     class3.Clear();
                     this.read_color(buf, ref index, max, class3);
                     for (num2 = 0; num2 < color_list_num; num2++)
                     {
                         if ((class3.byteCmpi(color_list[num2].ToString()) == 0) && (bgcolor != -1111))
                         {
                             bgcolor = num2 + 3;
                         }
                     }
                 }
                 continue;
             }
             if ((((((buf.b[index] == 0x62) || (buf.b[index] == 0x42)) && ((buf.b[index + 1] == 0x61) || (buf.b[index + 1] == 0x41))) && (((buf.b[index + 2] == 0x63) || (buf.b[index + 2] == 0x43)) && ((buf.b[index + 3] == 0x6b) || (buf.b[index + 3] == 0x4b)))) && ((((buf.b[index + 4] == 0x67) || (buf.b[index + 4] == 0x47)) && ((buf.b[index + 5] == 0x72) || (buf.b[index + 5] == 0x52))) && (((buf.b[index + 6] == 0x6f) || (buf.b[index + 6] == 0x4f)) && ((buf.b[index + 7] == 0x75) || (buf.b[index + 7] == 0x55))))) && (((((buf.b[index + 8] == 110) || (buf.b[index + 8] == 0x4e)) && ((buf.b[index + 9] == 100) || (buf.b[index + 9] == 0x44))) && (((buf.b[index + 10] == 0x2d) && ((buf.b[index + 11] == 0x63) || (buf.b[index + 11] == 0x43))) && ((buf.b[index + 12] == 0x6f) || (buf.b[index + 12] == 0x4f)))) && ((((buf.b[index + 13] == 0x6c) || (buf.b[index + 13] == 0x4c)) && ((buf.b[index + 14] == 0x6f) || (buf.b[index + 14] == 0x4f))) && (((buf.b[index + 15] == 0x72) || (buf.b[index + 15] == 0x52)) && (buf.b[index + 0x10] == 0x3a)))))
             {
                 index += 0x11;
                 if ((color_list_num != -1111) && (color_list != null))
                 {
                     class3.Clear();
                     this.read_color(buf, ref index, max, class3);
                     for (num2 = 0; num2 < color_list_num; num2++)
                     {
                         if ((class3.byteCmpi(color_list[num2].ToString()) == 0) && (bgcolor != -1111))
                         {
                             bgcolor = num2 + 3;
                         }
                     }
                 }
                 continue;
             }
             if (((((buf.b[index] == 0x63) || (buf.b[index] == 0x43)) && ((buf.b[index + 1] == 0x6c) || (buf.b[index + 1] == 0x4c))) && (((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41)) && ((buf.b[index + 3] == 0x73) || (buf.b[index + 3] == 0x53)))) && (((buf.b[index + 4] == 0x73) || (buf.b[index + 4] == 0x53)) && (buf.b[index + 5] == 0x3d)))
             {
                 index += 5;
                 class4.Clear();
                 this.read_value_exact(buf, ref index, max, class4);
                 if (class4.len > 0)
                 {
                     flag = true;
                 }
             }
             if ((((buf.b[index] == 0x69) || (buf.b[index] == 0x49)) && ((buf.b[index + 1] == 100) || (buf.b[index + 1] == 0x44))) && (buf.b[index + 2] == 0x3d))
             {
                 index += 2;
                 class4.Clear();
                 this.read_value_exact(buf, ref index, max, class4);
                 if (class4.len > 0)
                 {
                     flag = true;
                 }
             }
             if (((((buf.b[index] == 0x76) || (buf.b[index] == 0x56)) && ((buf.b[index + 1] == 0x61) || (buf.b[index + 1] == 0x41))) && (((buf.b[index + 2] == 0x6c) || (buf.b[index + 2] == 0x4c)) && ((buf.b[index + 3] == 0x69) || (buf.b[index + 3] == 0x49)))) && ((((buf.b[index + 4] == 0x67) || (buf.b[index + 4] == 0x47)) && ((buf.b[index + 5] == 110) || (buf.b[index + 5] == 0x4e))) && (buf.b[index + 6] == 0x3d)))
             {
                 index += 7;
                 class5.Clear();
                 this.read_value_exact(buf, ref index, max, class5);
                 if ((class5.len > 0) && (valign != -1111))
                 {
                     if (class5.byteCmp("center") == 0)
                     {
                         valign = this.VALIGN_CENTER;
                     }
                     else if (class5.byteCmp("middle") == 0)
                     {
                         valign = this.VALIGN_CENTER;
                     }
                     else if (class5.byteCmp("bottom") == 0)
                     {
                         valign = this.VALIGN_BOTTOM;
                     }
                     else
                     {
                         valign = this.VALIGN_TOP;
                     }
                 }
                 continue;
             }
             if (((((buf.b[index] == 0x61) || (buf.b[index] == 0x41)) && ((buf.b[index + 1] == 0x6c) || (buf.b[index + 1] == 0x4c))) && (((buf.b[index + 2] == 0x69) || (buf.b[index + 2] == 0x49)) && ((buf.b[index + 3] == 0x67) || (buf.b[index + 3] == 0x47)))) && (((buf.b[index + 4] == 110) || (buf.b[index + 4] == 0x4e)) && (buf.b[index + 5] == 0x3d)))
             {
                 index += 6;
                 class5.Clear();
                 this.read_value_exact(buf, ref index, max, class5);
                 if ((class5.len > 0) && (align != -1111))
                 {
                     if (class5.byteCmp("center") == 0)
                     {
                         align = this.ALIGN_CENTER;
                     }
                     else if (class5.byteCmp("right") == 0)
                     {
                         align = this.ALIGN_RIGHT;
                     }
                 }
                 continue;
             }
             index++;
         }
     }
     if ((CSS_param != null) && flag)
     {
         flag = false;
         num2 = 0;
         while (num2 < CSS_param.styles)
         {
             if ((class4.byteCmp(((CSS_styles)CSS_param.CSS_style[num2]).name) == 0) && ((((CSS_styles)CSS_param.CSS_style[num2]).css_tag_type == CSS_tag_type.TD_CSS) || (((CSS_styles)CSS_param.CSS_style[num2]).css_tag_type == CSS_tag_type.UNKNOWN_CSS)))
             {
                 flag = true;
                 break;
             }
             num2++;
         }
         if (flag)
         {
             if ((((CSS_styles)CSS_param.CSS_style[num2]).ablaze.b[7] == 1) && (bgcolor != -1111))
             {
                 bgcolor = ((CSS_styles)CSS_param.CSS_style[num2]).background_color + 3;
             }
             if (((CSS_styles)CSS_param.CSS_style[num2]).ablaze.b[11] == 1)
             {
                 width = ((CSS_styles)CSS_param.CSS_style[num2]).width;
                 if (((CSS_styles)CSS_param.CSS_style[num2]).width_in_percent)
                 {
                     percent = 1;
                 }
             }
         }
     }
     return width;
 }
예제 #33
0
 private void CSS_analyse(CSS_params CSS_param, ByteClass buf, ArrayList font_list, ArrayList color_list)
 {
     int num3;
     int num2 = 0;
     int num4 = 0;
     int num5 = 0;
     int ct = 0;
     ByteClass class2 = new ByteClass();
     buf.ByteToString();
     int index = 0;
     CSS_param.styles = 0;
     while (index < buf.len)
     {
         if ((buf.b[index] == 0x7b) && (num2 == 0))
         {
             num2++;
             num3 = index;
             num5 = this.CSS_read_style_name(buf, ref num3, class2);
         }
         if ((buf.b[index] == 0x7d) && (num2 == 1))
         {
             if (num5 > 1)
             {
                 CSS_param.styles += num5;
             }
             else
             {
                 CSS_param.styles++;
             }
             num2 = 0;
             num5 = 0;
         }
         index++;
     }
     for (index = 0; index < CSS_param.styles; index++)
     {
         CSS_styles cSS = new CSS_styles();
         this.CSS_reset_style(cSS);
         CSS_param.CSS_style.Add(cSS);
     }
     int num7 = 0;
     for (num3 = 0; num3 < (buf.len - 1); num3++)
     {
         if ((buf.b[num3] == 0x2f) && (buf.b[num3 + 1] == 0x2a))
         {
             num7 = 0;
             while (num3 < (buf.len - 1))
             {
                 if ((buf.b[num3] == 0x2f) && (buf.b[num3 + 1] == 0x2a))
                 {
                     num7++;
                 }
                 if ((buf.b[num3] == 0x2a) && (buf.b[num3 + 1] == 0x2f))
                 {
                     num7--;
                     buf.b[num3] = 0x20;
                     buf.b[num3 + 1] = 0x20;
                     if (num7 <= 0)
                     {
                         break;
                     }
                 }
                 buf.b[num3] = 0x20;
                 num3++;
             }
         }
     }
     bool flag = false;
     num3 = 0;
     num4 = 0;
     while ((num3 < buf.len) && (num4 < CSS_param.styles))
     {
         if (buf.b[num3] == 0x7b)
         {
             num5 = this.CSS_read_style_name(buf, ref num3, ((CSS_styles)CSS_param.CSS_style[num4]).name);
             if (num5 > 0)
             {
                 if (num5 > 1)
                 {
                     this.CSS_read_second_name(buf, ref num3, CSS_param.buf_size, ((CSS_styles)CSS_param.CSS_style[num4]).name);
                     this.CSS_parse_name(((CSS_styles)CSS_param.CSS_style[num4]).name, (CSS_styles)CSS_param.CSS_style[num4]);
                     num5--;
                     ct = num3;
                     while ((buf.b[num3] != 0x7b) && (num3 < CSS_param.buf_size))
                     {
                         num3++;
                     }
                 }
                 this.CSS_parse_name(((CSS_styles)CSS_param.CSS_style[num4]).name, (CSS_styles)CSS_param.CSS_style[num4]);
                 if (((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x70) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 80)) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x2e))
                 {
                     CSS_param.p_tag = true;
                 }
                 if ((((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x65) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x45)) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x6d) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x4d))) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 0x2e))
                 {
                     CSS_param.em_tag = true;
                 }
                 if (((((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x62) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x42)) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x6f) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x4f))) && (((((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 100) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 0x44)) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[3] == 0x79) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[3] == 0x59)))) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[4] == 0))
                 {
                     if (CSS_param.body_tag)
                     {
                         flag = true;
                     }
                     else
                     {
                         CSS_param.body_tag = true;
                         CSS_param.body_tag_index = num4;
                     }
                 }
                 if (((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x70) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 80)) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0))
                 {
                     CSS_param.p_tag_only = true;
                     CSS_param.p_tag_only_index = num4;
                 }
                 this.CSS_read_style_params(buf, ref num3, CSS_param.buf_size, (CSS_styles)CSS_param.CSS_style[num4], CSS_param, font_list, color_list);
                 if (((flag && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x62) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x42))) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x6f) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x4f))) && ((((((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 100) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 0x44)) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[3] == 0x79) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[3] == 0x59))) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[4] == 0)))
                 {
                     this.CSSJoinStyles((CSS_styles)CSS_param.CSS_style[CSS_param.body_tag_index], (CSS_styles)CSS_param.CSS_style[num4]);
                 }
                 num4++;
             }
             if (num5 > 1)
             {
                 while (num5 != 0)
                 {
                     if (num4 < (CSS_param.styles - 1))
                     {
                         ((CSS_styles)CSS_param.CSS_style[num4 - 1]).CopyCSS_styles((CSS_styles)CSS_param.CSS_style[num4]);
                         this.CSS_read_second_name(buf, ref ct, CSS_param.buf_size, ((CSS_styles)CSS_param.CSS_style[num4]).name);
                         this.CSS_parse_name(((CSS_styles)CSS_param.CSS_style[num4]).name, (CSS_styles)CSS_param.CSS_style[num4]);
                         num4++;
                     }
                     num5--;
                 }
             }
         }
         num3++;
     }
 }
예제 #34
0
 private int get_width_img(ByteClass buf, int posStartBuf, int max, ByteClass img_folder)
 {
     int num5;
     int width = 0;
     bool flag = false;
     int num2 = 0;
     int index = posStartBuf + 1;
     int num4 = 1;
     ByteClass s = new ByteClass(0x20);
     while (index < max)
     {
         if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x62) || (buf.b[index + 3] == 0x42)) && ((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)))) && (((buf.b[index + 5] == 0x65) || (buf.b[index + 5] == 0x45)) && ((buf.b[index + 6] == 0x3e) || (buf.b[index + 6] == 0x20))))
         {
             index += 6;
             num4++;
             while ((num4 > 1) && (index < max))
             {
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x61) || (buf.b[index + 3] == 0x41))) && (((buf.b[index + 4] == 0x62) || (buf.b[index + 4] == 0x42)) && ((buf.b[index + 5] == 0x6c) || (buf.b[index + 5] == 0x4c)))) && (((buf.b[index + 6] == 0x65) || (buf.b[index + 6] == 0x45)) && (buf.b[index + 7] == 0x3e)))
                 {
                     num4--;
                     index += 6;
                 }
                 else if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x62) || (buf.b[index + 3] == 0x42)) && ((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)))) && (((buf.b[index + 5] == 0x65) || (buf.b[index + 5] == 0x45)) && ((buf.b[index + 6] == 0x3e) || (buf.b[index + 6] == 0x20))))
                 {
                     num4++;
                 }
                 index++;
             }
         }
         else if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x69) || (buf.b[index + 1] == 0x49))) && ((buf.b[index + 2] == 0x6d) || (buf.b[index + 2] == 0x4d))) && (((buf.b[index + 3] == 0x67) || (buf.b[index + 3] == 0x47)) && (buf.b[index + 4] == 0x20)))
         {
             flag = true;
             num2 = index;
             while ((buf.b[index] != 0x3e) && (index < max))
             {
                 if (((((buf.b[index] == 0x77) || (buf.b[index] == 0x57)) && ((buf.b[index + 1] == 0x69) || (buf.b[index + 1] == 0x49))) && (((buf.b[index + 2] == 100) || (buf.b[index + 2] == 0x44)) && ((buf.b[index + 3] == 0x74) || (buf.b[index + 3] == 0x54)))) && ((buf.b[index + 4] == 0x68) || (buf.b[index + 4] == 0x48)))
                 {
                     index += 4;
                     while ((buf.b[index] != 0x3d) && (buf.b[index] != 0x3a))
                     {
                         if (buf.b[index] == 0x3e)
                         {
                             return width;
                         }
                         index++;
                     }
                     while ((buf.b[index] < 0x30) || (buf.b[index] > 0x39))
                     {
                         if (buf.b[index] == 0x3e)
                         {
                             return width;
                         }
                         index++;
                     }
                     num5 = 0;
                     while ((buf.b[index] >= 0x30) && (buf.b[index] <= 0x39))
                     {
                         if (buf.b[index] == 0x3e)
                         {
                             return width;
                         }
                         num5++;
                         s.Add(buf.b[index]);
                         index++;
                     }
                     width = this.ToInt(s);
                 }
                 else
                 {
                     index++;
                 }
             }
         }
         else if (((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && (((buf.b[index + 3] == 100) || (buf.b[index + 3] == 0x44)) || ((buf.b[index + 3] == 0x68) || (buf.b[index + 3] == 0x48)))) && (buf.b[index + 4] == 0x3e))
         {
             break;
         }
         index++;
     }
     if (flag && (width == 0))
     {
         index = num2;
         bool cyr = false;
         ByteClass class3 = new ByteClass(0x20);
         ByteClass newb = new ByteClass();
         int num6 = 0;
         int len = 0;
         ByteClass folder = new ByteClass();
         if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x69) || (buf.b[index + 1] == 0x49))) && ((buf.b[index + 2] == 0x6d) || (buf.b[index + 2] == 0x4d))) && (((buf.b[index + 3] == 0x67) || (buf.b[index + 3] == 0x47)) && (buf.b[index + 4] == 0x20)))
         {
             while ((buf.b[index] != 0x3e) && (index < max))
             {
                 if ((((buf.b[index] == 0x73) || (buf.b[index] == 0x53)) && ((buf.b[index + 1] == 0x72) || (buf.b[index + 1] == 0x52))) && ((buf.b[index + 2] == 0x63) || (buf.b[index + 2] == 0x43)))
                 {
                     while ((buf.b[index] != 0x3e) && (index < max))
                     {
                         if (buf.b[index] == 0x3d)
                         {
                             while ((buf.b[index] != 0x3e) && (index < max))
                             {
                                 if ((buf.b[index] == 0x22) || (buf.b[index] == 0x27))
                                 {
                                     break;
                                 }
                                 if ((buf.b[index] == 0x20) && ((buf.b[index + 1] != 0x22) || (buf.b[index + 1] != 0x27)))
                                 {
                                     index++;
                                     break;
                                 }
                                 if (((buf.b[index + 1] != 0x20) && (buf.b[index + 1] != 0x22)) && (buf.b[index + 1] != 0x27))
                                 {
                                     index++;
                                     break;
                                 }
                                 index++;
                             }
                             break;
                         }
                         index++;
                     }
                     num5 = 0;
                     int num8 = 0;
                     if ((buf.b[index] != 0x22) && (buf.b[index] != 0x27))
                     {
                         goto Label_07CB;
                     }
                     num8 = buf.b[index];
                     index++;
                     while ((buf.b[index] != 0x3e) && (index < max))
                     {
                         if (buf.b[index] == num8)
                         {
                             break;
                         }
                         if (buf.b[index] == 0x26)
                         {
                             index += this.special_symbols_rtf(buf, index, max, class3, cyr);
                             newb.Add(class3);
                             num5 += class3.len;
                             index++;
                         }
                         else
                         {
                             newb.Add(buf.b[index]);
                             num5++;
                             index++;
                         }
                     }
                 }
                 goto Label_0802;
             Label_077B:
                 if (buf.b[index] == 0x26)
                 {
                     index += this.special_symbols_rtf(buf, index, max, class3, cyr);
                     newb.Add(class3);
                     num5 += class3.len;
                     index++;
                 }
                 else
                 {
                     newb.Add(buf.b[index]);
                     num5++;
                     index++;
                 }
         Label_07CB:
             if (((buf.b[index] != 0x3e) && (index < max)) && (((buf.b[index] != 0x22) && (buf.b[index] != 0x27)) && (buf.b[index] != 0x20)))
             {
                 goto Label_077B;
             }
     Label_0802:
         index++;
             }
             len = newb.len;
             for (num5 = 0; num5 < len; num5++)
             {
                 if (newb.b[num5] == 0x2f)
                 {
                     newb.b[num5] = 0x5c;
                 }
             }
             folder.Clear();
             folder.Add(img_folder);
             if (((newb.b[1] != 0x3a) && (newb.b[2] != 0x5c)) && ((newb.b[0] != 0x2e) && (newb.b[1] != 0x2e)))
             {
                 folder.Add(newb);
             }
             else
             {
                 this.combine_img_path(folder, newb);
             }
             num5 = 0;
             num6 = 0;
             while (folder.b[num5] != 0)
             {
                 if (folder.b[num5] == 0x5c)
                 {
                     if ((num6 > 0) && (newb.b[num6 - 1] != 0x5c))
                     {
                         newb.b[num6++] = folder.b[num5];
                     }
                 }
                 else
                 {
                     newb.b[num6++] = folder.b[num5];
                 }
                 num5++;
             }
             newb.b[num6] = 0;
             folder.Clear();
             folder.Add(newb);
             if (newb.ToByteCStartPos(newb.len - 3).byteCmpi("GIF") == 0)
             {
                 this.GIF_info(newb, ref width);
             }
             return (width * this.PX_TO_TWIPS);
         }
     }
     return (width * this.PX_TO_TWIPS);
 }
예제 #35
0
 public ByteClass ToByteCStartPos(int startPosition)
 {
     var class2 = new ByteClass(0x80);
     for (int i = startPosition; i < len; i++)
     {
         if (b[i] == 0)
         {
             return class2;
         }
         class2.Add(b[i]);
     }
     return class2;
 }
예제 #36
0
 private void GIF_info(ByteClass path, ref int width)
 {
     width = 0;
 }
예제 #37
0
 private bool CSS_read_style_params(ByteClass buf, ref int ct, int max, CSS_styles CSS_style, CSS_params CSS_param, ArrayList font_list, ArrayList color_list)
 {
     int num2;
     ByteClass class2 = new ByteClass();
     int index = ct;
     bool quote = false;
     while (ct < max)
     {
         if (buf.b[ct] == 0x7d)
         {
             max = ct;
             break;
         }
         ct++;
     }
     while (buf.b[index] == 0x7b)
     {
         index++;
     }
 Label_0F0F:
     while ((index < max) && (buf.b[index] != 0x7d))
     {
         bool flag2;
         double num3;
         this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
         if (index < (buf.len - 1))
         {
             while (((buf.b[index] == 0x3a) || (buf.b[index] == 0x3b)) || (((buf.b[index] >= 0) && (buf.b[index] <= 0x20)) && (index < (buf.len - 1))))
             {
                 index++;
             }
         }
         new ByteClass();
         if (class2.byteCmpi((string)CSS_param.names[0]) == 0)
         {
             this.read_value_CSS(buf, ref index, max, class2, -1111, true);
             num2 = 0;
             bool flag = false;
             while ((num2 < CSS_param.font_list_num) && (num2 < this.MAX_FONTS))
             {
                 if (class2.byteCmpi((string)font_list[num2]) == 0)
                 {
                     flag = true;
                     break;
                 }
                 num2++;
             }
             if (!flag)
             {
                 font_list.Add(class2.ByteToString());
                 CSS_style.ablaze.b[0] = 1;
                 CSS_style.font_family = (byte)CSS_param.font_list_num;
                 CSS_param.font_list_num++;
             }
             else
             {
                 CSS_style.ablaze.b[0] = 1;
                 CSS_style.font_family = (byte)num2;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[1]) == 0)
         {
             this.read_color(buf, ref index, max, class2);
             index += class2.len;
             num2 = 0;
             flag2 = false;
             while ((num2 < CSS_param.color_list_num) && (num2 < this.MAX_COLORS))
             {
                 if (class2.byteCmpi(color_list[num2].ToString()) == 0)
                 {
                     flag2 = true;
                     break;
                 }
                 num2++;
             }
             if (!flag2)
             {
                 color_list.Add(class2.ByteToString());
                 class2.Clear();
                 CSS_style.ablaze.b[1] = 1;
                 CSS_style.color = (byte)CSS_param.color_list_num;
                 CSS_param.color_list_num++;
             }
             else
             {
                 CSS_style.ablaze.b[1] = 1;
                 CSS_style.color = (byte)num2;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[2]) == 0)
         {
             this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
             if (class2.byteCmpi("bold") == 0)
             {
                 CSS_style.ablaze.b[2] = 1;
                 CSS_style.font_weight = 1;
             }
             if (class2.byteCmpi("normal") == 0)
             {
                 CSS_style.ablaze.b[2] = 1;
                 CSS_style.font_weight = 0;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[3]) == 0)
         {
             this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
             num3 = this.ToFloat(class2);
             if (class2.IndexOfBegin("px") != -1)
             {
                 num3 *= 0.75;
             }
             else if (class2.IndexOfBegin("em") != -1)
             {
                 num3 *= 12;
             }
             else if (class2.byteCmp("xx-small") == 0)
             {
                 num3 = 8;
             }
             else if (class2.byteCmp("x-small") == 0)
             {
                 num3 = 10;
             }
             else if (class2.byteCmp("small") == 0)
             {
                 num3 = 12;
             }
             else if (class2.byteCmp("medium") == 0)
             {
                 num3 = 14;
             }
             else if (class2.byteCmp("large") == 0)
             {
                 num3 = 18;
             }
             else if (class2.byteCmp("x-large") == 0)
             {
                 num3 = 24;
             }
             else if (class2.byteCmp("xx-large") == 0)
             {
                 num3 = 36;
             }
             else if (class2.IndexOfBegin("%") != -1)
             {
                 num3 = (num3 * 12) / 100;
             }
             if ((num3 > this.FONT_SIZE_MIN) && (num3 < this.FONT_SIZE_MAX))
             {
                 CSS_style.ablaze.b[3] = 1;
                 CSS_style.font_size = (byte)(num3 * 2);
             }
             continue;
         }
         if ((class2.byteCmpi((string)CSS_param.names[4]) == 0) || (class2.byteCmpi("align") == 0))
         {
             this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
             if (((class2.b[0] == 0x6c) || (class2.b[0] == 0x72)) || ((class2.b[0] == 0x63) || (class2.b[0] == 0x6a)))
             {
                 CSS_style.ablaze.b[4] = 1;
                 CSS_style.text_align = class2.b[0];
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[5]) == 0)
         {
             this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
             if (class2.byteCmpi("italic") == 0)
             {
                 CSS_style.ablaze.b[5] = 1;
                 CSS_style.font_style = 0x69;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[6]) == 0)
         {
             this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
             num3 = (int)(this.ToFloat(class2) * 20f);
             if (class2.IndexOfBegin("px") != 0)
             {
                 num3 = (int)(num3 / 1.333299994468689);
             }
             if ((num3 >= 0) && (num3 <= 250))
             {
                 CSS_style.ablaze.b[6] = 1;
                 CSS_style.margin_top = (byte)num3;
             }
             continue;
         }
         if ((class2.byteCmpi((string)CSS_param.names[7]) == 0) || (class2.byteCmpi("background") == 0))
         {
             if (!this.read_color(buf, ref index, max, class2))
             {
                 continue;
             }
             index += class2.len;
             num2 = 0;
             flag2 = false;
             while ((num2 < CSS_param.color_list_num) && (num2 < this.MAX_COLORS))
             {
                 if (class2.byteCmpi(color_list[num2].ToString()) == 0)
                 {
                     flag2 = true;
                     break;
                 }
                 num2++;
             }
             if (!flag2)
             {
                 color_list.Add(class2.ByteToString());
                 class2.Clear();
                 CSS_style.ablaze.b[7] = 1;
                 CSS_style.background_color = (byte)CSS_param.color_list_num;
                 CSS_param.color_list_num++;
             }
             else
             {
                 CSS_style.ablaze.b[7] = 1;
                 CSS_style.background_color = (byte)num2;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[8]) == 0)
         {
             int num4 = 1;
             int num5 = 1;
             for (int i = 0; ((num4 != 0) || (num5 != 0)) && (i < 10); i++)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 num4 = num5;
                 num5 = class2.b[0];
                 if (class2.byteCmpi("italic") == 0)
                 {
                     CSS_style.ablaze.b[5] = 1;
                     CSS_style.font_style = 0x69;
                 }
                 if (class2.byteCmpi("bold") == 0)
                 {
                     CSS_style.ablaze.b[2] = 1;
                     CSS_style.font_weight = 1;
                 }
                 if (class2.IndexOfBegin("px") != 0)
                 {
                     num3 = this.ToFloat(class2);
                     num3 = (int)(num3 * 0.75);
                     if ((num3 > this.FONT_SIZE_MIN) && (num3 < this.FONT_SIZE_MAX))
                     {
                         CSS_style.ablaze.b[3] = 1;
                         CSS_style.font_size = (byte)(num3 * 2);
                     }
                 }
                 if (class2.IndexOfBegin("pt") != 0)
                 {
                     num3 = this.ToFloat(class2);
                     if ((num3 > this.FONT_SIZE_MIN) && (num3 < this.FONT_SIZE_MAX))
                     {
                         CSS_style.ablaze.b[3] = 1;
                         CSS_style.font_size = (byte)(num3 * 2);
                     }
                 }
                 if (class2.byteCmpi((string)CSS_param.names[1]) == 0)
                 {
                     while ((buf.b[index] == 0x3a) || (buf.b[index] == 0x20))
                     {
                         index++;
                     }
                     this.read_color(buf, ref index, max, class2);
                     index += class2.len;
                     num2 = 0;
                     flag2 = false;
                     while ((num2 < CSS_param.color_list_num) && (num2 < this.MAX_COLORS))
                     {
                         if (class2.byteCmpi(color_list[num2].ToString()) == 0)
                         {
                             flag2 = true;
                             break;
                         }
                         num2++;
                     }
                     if (!flag2)
                     {
                         color_list.Add(class2.ByteToString());
                         class2.Clear();
                         CSS_style.ablaze.b[1] = 1;
                         CSS_style.color = (byte)CSS_param.color_list_num;
                         CSS_param.color_list_num++;
                     }
                     else
                     {
                         CSS_style.ablaze.b[1] = 1;
                         CSS_style.color = (byte)num2;
                     }
                 }
             }
         }
         else if (class2.byteCmpi((string)CSS_param.names[9]) == 0)
         {
             this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
             num3 = (int)this.ToFloat(class2);
             if (num3 > 0)
             {
                 CSS_style.ablaze.b[9] = 1;
                 CSS_style.top = (byte)num3;
             }
         }
         else
         {
             if (class2.byteCmpi((string)CSS_param.names[10]) == 0)
             {
                 this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
                 num3 = (int)this.ToFloat(class2);
                 if (num3 > 0)
                 {
                     CSS_style.ablaze.b[10] = 1;
                     CSS_style.left = (byte)num3;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[11]) == 0)
             {
                 this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
                 num3 = (int)this.ToFloat(class2);
                 if (num3 > 0)
                 {
                     CSS_style.ablaze.b[11] = 1;
                     CSS_style.width = (byte)num3;
                     if (class2.IndexOf("%") != -1)
                     {
                         CSS_style.width_in_percent = true;
                     }
                     else
                     {
                         CSS_style.width_in_percent = false;
                     }
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[12]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("underline") == 0)
                 {
                     CSS_style.ablaze.b[12] = 1;
                     CSS_style.text_decoration = 0x75;
                 }
                 if (class2.byteCmpi("none") == 0)
                 {
                     CSS_style.ablaze.b[12] = 1;
                     CSS_style.text_decoration = 110;
                 }
                 if (class2.byteCmpi("line-through") == 0)
                 {
                     CSS_style.ablaze.b[12] = 1;
                     CSS_style.text_decoration = 0x73;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[13]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("sub") == 0)
                 {
                     CSS_style.ablaze.b[13] = 1;
                     CSS_style.vertical_align = 0x62;
                 }
                 if (class2.byteCmpi("super") == 0)
                 {
                     CSS_style.ablaze.b[13] = 1;
                     CSS_style.vertical_align = 0x72;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[14]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("avoid") == 0)
                 {
                     CSS_style.ablaze.b[14] = 1;
                     CSS_style.page_break_before = 0;
                 }
                 else if (class2.len > 0)
                 {
                     CSS_style.ablaze.b[14] = 1;
                     CSS_style.page_break_before = 1;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[15]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("avoid") == 0)
                 {
                     CSS_style.ablaze.b[15] = 1;
                     CSS_style.page_break_after = 0;
                 }
                 else if (class2.len > 0)
                 {
                     CSS_style.ablaze.b[15] = 1;
                     CSS_style.page_break_after = 1;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[0x10]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("none") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 1;
                 }
                 else if (class2.byteCmpi("disc") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 2;
                 }
                 else if (class2.byteCmpi("circle") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 3;
                 }
                 else if (class2.byteCmpi("square") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 4;
                 }
                 else if (class2.byteCmpi("lower-roman") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 5;
                 }
                 else if (class2.byteCmpi("upper-roman") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 6;
                 }
                 else if (class2.byteCmpi("lower-alpha") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 7;
                 }
                 else if (class2.byteCmpi("upper-alpha") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 8;
                 }
                 else if (class2.byteCmpi("arabic") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 9;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[0x11]) == 0)
             {
                 this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
                 num3 = (int)(this.ToFloat(class2) * 20f);
                 if (class2.IndexOfBegin("px") != 0)
                 {
                     num3 = (int)(num3 / 1.3333);
                 }
                 if ((num3 >= 0) && (num3 <= 250))
                 {
                     CSS_style.ablaze.b[0x11] = 1;
                     CSS_style.margin_bottom = (byte)num3;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi("style") == 0)
             {
                 quote = true;
                 while ((((buf.b[index] == 0x3a) || (buf.b[index] == 0x20)) || (buf.b[index] == 0x3d)) && (index < max))
                 {
                     index++;
                 }
             }
         }
     }
 ct = index;
 for (num2 = 0; num2 < this.STYLES_KNOW; num2++)
 {
     if (CSS_style.ablaze.b[num2] == 1)
     {
         return true;
     }
 }
 return false;
 }
예제 #38
0
 private int CSS_close(ByteClass align_def, ByteClass align_j, ByteClass align, ByteClass buf, ref int p_count2, CSS_params CSS_param, ref bool font_color_default, ByteClass font_color_temp, ByteClass color_stack, ref int color_stack_num, ref bool may_use_space, ref bool font_size_default, ByteClass font_size_temp, int fontsize, CSS_tag_type css_tag_type)
 {
     int num = p_count2;
     int num2 = 0;
     int num3 = 0;
     bool flag = false;
     fontsize *= 2;
     if ((css_tag_type != CSS_tag_type.UNKNOWN_CSS) && this.CSS_del_from_stack_tag(ref num3, CSS_param, css_tag_type))
     {
         num2 = ((CSS_stack_element)CSS_param.stack_tag[num3]).style_index;
         if ((num2 >= 0) && (num2 < CSS_param.styles))
         {
             this.CSS_close_styles(((CSS_styles)CSS_param.CSS_style[num2]).ablaze, (CSS_styles)CSS_param.CSS_style[num2], CSS_param, align_def, align_j, align, buf, ref num, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, fontsize, css_tag_type, null, 0);
         }
         p_count2 = num;
     }
     if (CSS_param.style_str_stack_num > 0)
     {
         flag = false;
         num2 = CSS_param.style_str_stack_num - 1;
         while (num2 >= 0)
         {
             if (css_tag_type == ((CSS_styles)CSS_param.CSS_style_str_stack[num2]).css_tag_type)
             {
                 flag = true;
                 break;
             }
             num2--;
         }
     }
     if (flag)
     {
         for (int i = CSS_param.style_str_stack_num - 1; i > num2; i--)
         {
             this.CSS_close(align_def, align_j, align, buf, ref p_count2, CSS_param, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, fontsize, ((CSS_styles)CSS_param.CSS_style_str_stack[i]).css_tag_type);
         }
         this.CSS_close_styles(((CSS_styles)CSS_param.CSS_style_str_stack[num2]).ablaze, (CSS_styles)CSS_param.CSS_style_str_stack[num2], CSS_param, align_def, align_j, align, buf, ref num, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, fontsize, css_tag_type, null, 0);
         p_count2 = num;
         this.CSS_reset_style((CSS_styles)CSS_param.CSS_style_str_stack[num2]);
         this.CSS_del_from_style_str_stack(num2, CSS_param, css_tag_type);
     }
     if (css_tag_type == CSS_tag_type.SPAN_CSS)
     {
         if (CSS_param.span <= 0)
         {
             CSS_param.span = 0;
             return 0;
         }
         CSS_param.span--;
     }
     else if (css_tag_type == CSS_tag_type.DIV_CSS)
     {
         if (align != align_def)
         {
             align.Clear();
             align.Add(align_def);
             buf.Add(align);
             num += align.len;
             p_count2 = num;
         }
         if (CSS_param.div <= 0)
         {
             CSS_param.div = 0;
             return 0;
         }
         CSS_param.div--;
     }
     else if (css_tag_type == CSS_tag_type.P_CSS)
     {
         if (align != align_def)
         {
             align.Clear();
             align.Add(align_def);
             buf.Add(align);
             num += align.len;
             p_count2 = num;
         }
         if (CSS_param.p_tag_open <= 0)
         {
             CSS_param.p_tag_open = 0;
             return 0;
         }
         CSS_param.p_tag_open--;
     }
     else if (css_tag_type == CSS_tag_type.EM_CSS)
     {
         if (CSS_param.em_tag_open <= 0)
         {
             CSS_param.em_tag_open = 0;
             return 0;
         }
         CSS_param.em_tag_open--;
     }
     else if (css_tag_type == CSS_tag_type.FONT_CSS)
     {
         if (CSS_param.font_tag_open <= 0)
         {
             CSS_param.font_tag_open = 0;
             return 0;
         }
         CSS_param.font_tag_open--;
     }
     else if (css_tag_type != CSS_tag_type.TD_CSS)
     {
         return 0;
     }
     if (this.CSS_del_from_stack(ref num3, CSS_param, css_tag_type))
     {
         num2 = ((CSS_stack_element)CSS_param.stack[num3]).style_index;
         if ((num2 < 0) || (num2 > (CSS_param.styles - 1)))
         {
             return 0;
         }
         this.CSS_close_styles(((CSS_styles)CSS_param.CSS_style[num2]).ablaze, (CSS_styles)CSS_param.CSS_style[num2], CSS_param, align_def, align_j, align, buf, ref num, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, fontsize, css_tag_type, CSS_param.stack, CSS_param.stack_num);
         p_count2 = num;
     }
     return 0;
 }