public override int GetMatchStyleNo(HCStyle AStyle, int ACurStyleNo) { int Result = HCStyle.Null; if (AStyle.TextStyles[ACurStyleNo].BackColor == FColor) { Result = ACurStyleNo; return(Result); } HCTextStyle vTextStyle = new HCTextStyle(); try { vTextStyle.AssignEx(AStyle.TextStyles[ACurStyleNo]); // item当前的样式 vTextStyle.BackColor = FColor; if (this.OnTextStyle != null) { this.OnTextStyle(ACurStyleNo, ref vTextStyle); } Result = AStyle.GetStyleNo(vTextStyle, true); // 新样式编号 } finally { vTextStyle.Dispose(); } return(Result); }
protected void LoadItemFromStreamAlone(Stream aStream, ref HCCustomItem aItem) { string vFileExt = ""; ushort vFileVersion = 0; byte vLan = 0; aStream.Position = 0; HC._LoadFileFormatAndVersion(aStream, ref vFileExt, ref vFileVersion, ref vLan); // 文件格式和版本 if ((vFileExt != HC.HC_EXT) && (vFileExt != "cff.")) { throw new Exception("加载失败,不是" + HC.HC_EXT + "文件!"); } int vStyleNo = HCStyle.Null; byte[] vBuffer = BitConverter.GetBytes(vStyleNo); aStream.Read(vBuffer, 0, vBuffer.Length); vStyleNo = BitConverter.ToInt32(vBuffer, 0); if (aItem == null) { aItem = CreateItemByStyle(vStyleNo); } aItem.LoadFromStream(aStream, null, vFileVersion); if (vStyleNo > HCStyle.Null) { HCTextStyle vTextStyle = new HCTextStyle(); try { vTextStyle.LoadFromStream(aStream, vFileVersion); vStyleNo = Style.GetStyleNo(vTextStyle, true); aItem.StyleNo = vStyleNo; } finally { vTextStyle.Dispose(); } } int vParaNo = -1; HCParaStyle vParaStyle = new HCParaStyle(); try { vParaStyle.LoadFromStream(aStream, vFileVersion); vParaNo = Style.GetParaNo(vParaStyle, true); } finally { vParaStyle.Dispose(); } aItem.ParaNo = vParaNo; }
public override int GetMatchStyleNo(HCStyle AStyle, int ACurStyleNo) { int Result = HCStyle.Null; HCTextStyle vTextStyle = new HCTextStyle(); try { vTextStyle.AssignEx(AStyle.TextStyles[ACurStyleNo]); // item当前的样式 if (this.Append) { if (!vTextStyle.FontStyles.Contains((byte)FFontStyle)) { // 不能同时为上标和下标 if (FFontStyle == HCFontStyle.tsSuperscript) { vTextStyle.FontStyles.ExClude((byte)HCFontStyle.tsSubscript); } else if (FFontStyle == HCFontStyle.tsSubscript) { vTextStyle.FontStyles.ExClude((byte)HCFontStyle.tsSuperscript); } vTextStyle.FontStyles.InClude((byte)FFontStyle); } else { return(ACurStyleNo); } } else // 减去 { if (vTextStyle.FontStyles.Contains((byte)FFontStyle)) { vTextStyle.FontStyles.ExClude((byte)FFontStyle); } else { return(ACurStyleNo); } } if (this.OnTextStyle != null) { this.OnTextStyle(ACurStyleNo, ref vTextStyle); } Result = AStyle.GetStyleNo(vTextStyle, true); // 新样式编号 } finally { vTextStyle.Dispose(); } return(Result); }
public override bool StyleHasMatch(HCStyle AStyle, int ACurStyleNo) { bool Result = false; HCTextStyle vTextStyle = new HCTextStyle(); try { vTextStyle.AssignEx(AStyle.TextStyles[ACurStyleNo]); // item当前的样式 Result = vTextStyle.FontStyles.Contains((byte)FFontStyle); } finally { vTextStyle.Dispose(); } return(Result); }