public DomImage() { Format = new DocumentFormatInfo(); ScaleY = 100; ScaleX = 100; PicType = RtfPictureType.Jpegblip; Height = 0; Width = 0; DesiredHeight = 0; DesiredWidth = 0; Data = null; Id = null; }
public DomTableRow() { Width = 0; PaddingBottom = int.MinValue; PaddingRight = int.MinValue; PaddingTop = int.MinValue; PaddingLeft = int.MinValue; Height = 0; Header = false; IsLastRow = false; RowIndex = 0; Level = 1; Format = new DocumentFormatInfo(); CellSettings = new ArrayList(); }
/// <summary> /// Write formatted string. Call WriteStartString before this method /// </summary> /// <param name="text">text</param> /// <param name="info">format</param> public void WriteString(string text, DocumentFormatInfo info) { if (CollectionInfo) { FontTable.Add(info.FontName); ColorTable.Add(info.TextColor); ColorTable.Add(info.BackColor); } else { WriteStartString(info); if (info.Multiline) { if (text != null) { text = text.Replace("\n", ""); var reader = new StringReader(text); var strLine = reader.ReadLine(); var count = 0; while (strLine != null) { if (count > 0) { Writer.WriteKeyword("line"); } count++; Writer.WriteText(strLine); strLine = reader.ReadLine(); } reader.Close(); } } else { Writer.WriteText(text); } WriteEndString(info); } }
// ReSharper disable once MemberCanBePrivate.Global /// <summary> /// End writing of a formatted string. WriteStartString and WriteString have to be called before this method /// </summary> /// <param name="info"></param> public void WriteEndString(DocumentFormatInfo info) { if (CollectionInfo) { return; } if (info.Subscript) { Writer.WriteKeyword("sub0"); } if (info.Superscript) { Writer.WriteKeyword("super0"); } if (info.Bold) { Writer.WriteKeyword("b0"); } if (info.Italic) { Writer.WriteKeyword("i0"); } if (info.Underline) { Writer.WriteKeyword("ul0"); } if (info.Strikeout) { Writer.WriteKeyword("strike0"); } if (!string.IsNullOrEmpty(info.Link)) { Writer.WriteEndGroup(); Writer.WriteEndGroup(); Writer.WriteEndGroup(); } }
public bool EqualsSettings(DocumentFormatInfo format) { if (format == this) { return(true); } if (format == null) { return(false); } if (Align != format.Align) { return(false); } if (BackColor != format.BackColor) { return(false); } if (Bold != format.Bold) { return(false); } if (BorderColor != format.BorderColor) { return(false); } if (LeftBorder != format.LeftBorder) { return(false); } if (TopBorder != format.TopBorder) { return(false); } if (RightBorder != format.RightBorder) { return(false); } if (BottomBorder != format.BottomBorder) { return(false); } if (BorderStyle != format.BorderStyle) { return(false); } if (BorderThickness != format.BorderThickness) { return(false); } if (BorderSpacing != format.BorderSpacing) { return(false); } if (ListId != format.ListId) { return(false); } if (FontName != format.FontName) { return(false); } // ReSharper disable once CompareOfFloatsByEqualityOperator if (FontSize != format.FontSize) { return(false); } if (Italic != format.Italic) { return(false); } if (Hidden != format.Hidden) { return(false); } if (LeftIndent != format.LeftIndent) { return(false); } if (LineSpacing != format.LineSpacing) { return(false); } if (Link != format.Link) { return(false); } if (Multiline != format.Multiline) { return(false); } if (NoWwrap != format.NoWwrap) { return(false); } if (ParagraphFirstLineIndent != format.ParagraphFirstLineIndent) { return(false); } if (Spacing != format.Spacing) { return(false); } if (StandTabWidth != format.StandTabWidth) { return(false); } if (Strikeout != format.Strikeout) { return(false); } if (Subscript != format.Subscript) { return(false); } if (Superscript != format.Superscript) { return(false); } if (TextColor != format.TextColor) { return(false); } if (Underline != format.Underline) { return(false); } if (ReadText != format.ReadText) { return(false); } return(true); }
public DomParagraph() { Format = new DocumentFormatInfo(); IsTemplateGenerated = false; }
/// <summary> /// Initialize instance /// </summary> public DomText() { Format = new DocumentFormatInfo(); // Text element can not contains any child element Locked = true; }
/// <summary> /// Start write of formatted text /// </summary> /// <param name="info">format</param> /// <remarks> /// This function must assort with WriteEndString /// </remarks> // ReSharper disable once MemberCanBePrivate.Global public void WriteStartString(DocumentFormatInfo info) { if (CollectionInfo) { FontTable.Add(info.FontName); ColorTable.Add(info.TextColor); ColorTable.Add(info.BackColor); if (info.BorderColor.A != 0) { ColorTable.Add(info.BorderColor); } return; } if (!string.IsNullOrEmpty(info.Link)) { Writer.WriteStartGroup(); Writer.WriteKeyword("field"); Writer.WriteStartGroup(); Writer.WriteKeyword("fldinst", true); Writer.WriteStartGroup(); Writer.WriteKeyword("hich"); Writer.WriteText(" HYPERLINK \"" + info.Link + "\""); Writer.WriteEndGroup(); Writer.WriteEndGroup(); Writer.WriteStartGroup(); Writer.WriteKeyword("fldrslt"); Writer.WriteStartGroup(); } switch (info.Align) { case RtfAlignment.Left: Writer.WriteKeyword("ql"); break; case RtfAlignment.Center: Writer.WriteKeyword("qc"); break; case RtfAlignment.Right: Writer.WriteKeyword("qr"); break; case RtfAlignment.Justify: Writer.WriteKeyword("qj"); break; } Writer.WriteKeyword("plain"); int index = FontTable.IndexOf(info.FontName); if (index >= 0) { Writer.WriteKeyword("f" + index); } if (info.Bold) { Writer.WriteKeyword("b"); } if (info.Italic) { Writer.WriteKeyword("i"); } if (info.Underline) { Writer.WriteKeyword("ul"); } if (info.Strikeout) { Writer.WriteKeyword("strike"); } Writer.WriteKeyword("fs" + Convert.ToInt32(info.FontSize * 2)); // Back color index = ColorTable.IndexOf(info.BackColor); if (index >= 0) { Writer.WriteKeyword("chcbpat" + Convert.ToString(index + 1)); } index = ColorTable.IndexOf(info.TextColor); if (index >= 0) { Writer.WriteKeyword("cf" + Convert.ToString(index + 1)); } if (info.Subscript) { Writer.WriteKeyword("sub"); } if (info.Superscript) { Writer.WriteKeyword("super"); } if (info.NoWwrap) { Writer.WriteKeyword("nowwrap"); } if (info.LeftBorder || info.TopBorder || info.RightBorder || info.BottomBorder) { // Border color if (info.BorderColor.A != 0) { Writer.WriteKeyword("chbrdr"); Writer.WriteKeyword("brdrs"); Writer.WriteKeyword("brdrw10"); index = ColorTable.IndexOf(info.BorderColor); if (index >= 0) { Writer.WriteKeyword("brdrcf" + Convert.ToString(index + 1)); } } } }
/// <summary> /// Write end of paragraph /// </summary> /// <param name="info">format</param> // ReSharper disable once MemberCanBePrivate.Global public void WriteStartParagraph(DocumentFormatInfo info) { if (CollectionInfo) { //myFontTable.Add("Wingdings"); } else { if (_firstParagraph) { _firstParagraph = false; Writer.WriteRaw(Environment.NewLine); //myWriter.WriteKeyword("par"); } else { Writer.WriteKeyword("par"); } if (info.ListId >= 0) { Writer.WriteKeyword("pard"); Writer.WriteKeyword("ls" + info.ListId); if (_lastParagraphInfo != null) { if (_lastParagraphInfo.ListId >= 0) { Writer.WriteKeyword("pard"); } } } switch (info.Align) { case RtfAlignment.Left: Writer.WriteKeyword("ql"); break; case RtfAlignment.Center: Writer.WriteKeyword("qc"); break; case RtfAlignment.Right: Writer.WriteKeyword("qr"); break; case RtfAlignment.Justify: Writer.WriteKeyword("qj"); break; } if (info.ParagraphFirstLineIndent != 0) { Writer.WriteKeyword("fi" + Convert.ToInt32( info.ParagraphFirstLineIndent * 400 / info.StandTabWidth)); } else { Writer.WriteKeyword("fi0"); } if (info.LeftIndent != 0) { Writer.WriteKeyword("li" + Convert.ToInt32( info.LeftIndent * 400 / info.StandTabWidth)); } else { Writer.WriteKeyword("li0"); } Writer.WriteKeyword("plain"); } _lastParagraphInfo = info; }
/// <summary> /// Write the start of the document /// </summary> public void WriteStartDocument() { _lastParagraphInfo = null; _firstParagraph = true; if (CollectionInfo) { Info.Clear(); FontTable.Clear(); ColorTable.Clear(); FontTable.Add(Control.DefaultFont.Name); } else { Writer.WriteStartGroup(); Writer.WriteKeyword(Consts.Rtf); Writer.WriteKeyword("ansi"); Writer.WriteKeyword("ansicpg" + Writer.Encoding.CodePage); // Write document information if (Info.Count > 0) { Writer.WriteStartGroup(); Writer.WriteKeyword("info"); foreach (string key in Info.Keys) { Writer.WriteStartGroup(); var value = Info[key]; if (value is string) { Writer.WriteKeyword(key); Writer.WriteText((string)value); } else if (value is int) { Writer.WriteKeyword(key + value); } else if (value is DateTime) { var dateTime = (DateTime)value; Writer.WriteKeyword(key); Writer.WriteKeyword("yr" + dateTime.Year); Writer.WriteKeyword("mo" + dateTime.Month); Writer.WriteKeyword("dy" + dateTime.Day); Writer.WriteKeyword("hr" + dateTime.Hour); Writer.WriteKeyword("min" + dateTime.Minute); Writer.WriteKeyword("sec" + dateTime.Second); } else { Writer.WriteKeyword(key); } Writer.WriteEndGroup(); } Writer.WriteEndGroup(); } // Write font table Writer.WriteStartGroup(); Writer.WriteKeyword(Consts.Fonttbl); for (var count = 0; count < FontTable.Count; count++) { //string f = myFontTable[ count ] ; Writer.WriteStartGroup(); Writer.WriteKeyword("f" + count); var f = FontTable[count]; Writer.WriteText(f.Name); if (f.Charset != 1) { Writer.WriteKeyword("fcharset" + f.Charset); } Writer.WriteEndGroup(); } Writer.WriteEndGroup(); // Write color table Writer.WriteStartGroup(); Writer.WriteKeyword(Consts.Colortbl); Writer.WriteRaw(";"); for (var count = 0; count < ColorTable.Count; count++) { var colorTable = ColorTable[count]; Writer.WriteKeyword("red" + colorTable.R); Writer.WriteKeyword("green" + colorTable.G); Writer.WriteKeyword("blue" + colorTable.B); Writer.WriteRaw(";"); } Writer.WriteEndGroup(); // Write list table if (ListTable != null && ListTable.Count > 0) { if (DebugMode) { Writer.WriteRaw(Environment.NewLine); } Writer.WriteStartGroup(); Writer.WriteKeyword("listtable", true); foreach (var list in ListTable) { if (DebugMode) { Writer.WriteRaw(Environment.NewLine); } Writer.WriteStartGroup(); Writer.WriteKeyword("list"); Writer.WriteKeyword("listtemplateid" + list.ListTemplateId); if (list.ListHybrid) { Writer.WriteKeyword("listhybrid"); } if (DebugMode) { Writer.WriteRaw(Environment.NewLine); } Writer.WriteStartGroup(); Writer.WriteKeyword("listlevel"); Writer.WriteKeyword("levelfollow" + list.LevelFollow); Writer.WriteKeyword("leveljc" + list.LevelJc); Writer.WriteKeyword("levelstartat" + list.LevelStartAt); Writer.WriteKeyword("levelnfc" + Convert.ToInt32(list.LevelNfc)); Writer.WriteKeyword("levelnfcn" + Convert.ToInt32(list.LevelNfc)); Writer.WriteKeyword("leveljc" + list.LevelJc); if (string.IsNullOrEmpty(list.LevelText) == false) { Writer.WriteStartGroup(); Writer.WriteKeyword("leveltext"); Writer.WriteKeyword("'0" + list.LevelText.Length); if (list.LevelNfc == RtfLevelNumberType.Bullet) { Writer.WriteUnicodeText(list.LevelText); } else { Writer.WriteText(list.LevelText, false); } Writer.WriteEndGroup(); if (list.LevelNfc == RtfLevelNumberType.Bullet) { var f = FontTable["Wingdings"]; if (f != null) { Writer.WriteKeyword("f" + f.Index); } } else { Writer.WriteStartGroup(); Writer.WriteKeyword("levelnumbers"); Writer.WriteKeyword("'01"); Writer.WriteEndGroup(); } } Writer.WriteEndGroup(); Writer.WriteKeyword("listid" + list.ListId); Writer.WriteEndGroup(); } Writer.WriteEndGroup(); } // Write list overried table if (ListOverrideTable != null && ListOverrideTable.Count > 0) { if (DebugMode) { Writer.WriteRaw(Environment.NewLine); } Writer.WriteStartGroup(); Writer.WriteKeyword("listoverridetable"); foreach (var listOverride in ListOverrideTable) { if (DebugMode) { Writer.WriteRaw(Environment.NewLine); } Writer.WriteStartGroup(); Writer.WriteKeyword("listoverride"); Writer.WriteKeyword("listid" + listOverride.ListId); Writer.WriteKeyword("listoverridecount" + listOverride.ListOverrideCount); Writer.WriteKeyword("ls" + listOverride.Id); Writer.WriteEndGroup(); } Writer.WriteEndGroup(); } if (DebugMode) { Writer.WriteRaw(Environment.NewLine); } Writer.WriteKeyword("viewkind1"); } }