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); }
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; }
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); }
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); }
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; }
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; } }
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; }
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; } }
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; }
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; }
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; }
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(">"); }
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; }
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; }
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++; } }
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; }
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; }
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; }
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; }
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; }
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); }
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(" "); 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; }
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; }
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(); } }
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); }
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; }
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; }
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++; } }
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); }
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; }
private void GIF_info(ByteClass path, ref int width) { width = 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; }
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; }