public void Write(RTFWriter writer) { writer.WriteStartGroup( ); writer.WriteKeyword("info"); foreach (string strKey in myInfo.Keys) { writer.WriteStartGroup(); if (strKey == "edmins" || strKey == "vern" || strKey == "nofpages" || strKey == "nofwords" || strKey == "nofchars" || strKey == "nofcharsws" || strKey == "id") { writer.WriteKeyword(strKey + myInfo[strKey]); } else { writer.WriteKeyword(strKey); writer.WriteText(myInfo[strKey]); } writer.WriteEndGroup(); } writer.WriteStartGroup(); WriteTime(writer, "creatim", dtmCreatim); WriteTime(writer, "revtim", dtmRevtim); WriteTime(writer, "printim", dtmPrintim); WriteTime(writer, "buptim", dtmBuptim); writer.WriteEndGroup(); }
/// <summary> /// Test to generate a little rtf document /// </summary> /// <param name="w">RTF text writer</param> private static void TestBuildRTF(RTFWriter w) { w.Encoding = System.Text.Encoding.GetEncoding(936); // write header w.WriteStartGroup(); w.WriteKeyword("rtf1"); w.WriteKeyword("ansi"); w.WriteKeyword("ansicpg" + w.Encoding.CodePage); // wirte font table w.WriteStartGroup(); w.WriteKeyword("fonttbl"); w.WriteStartGroup(); w.WriteKeyword("f0"); w.WriteText("Arial;"); w.WriteEndGroup(); w.WriteStartGroup(); w.WriteKeyword("f1"); w.WriteText("Times New Roman;"); w.WriteEndGroup(); w.WriteEndGroup(); // write color table w.WriteStartGroup(); w.WriteKeyword("colortbl"); w.WriteText(";"); w.WriteKeyword("red0"); w.WriteKeyword("green0"); w.WriteKeyword("blue255"); w.WriteText(";"); w.WriteEndGroup(); // write content w.WriteKeyword("qc"); // set alignment center w.WriteKeyword("f0"); // set font w.WriteKeyword("fs30"); // set font size w.WriteText("This is the first paragraph text "); w.WriteKeyword("cf1"); // set text color w.WriteText("Arial "); w.WriteKeyword("cf0"); // set default color w.WriteKeyword("f1"); // set font w.WriteText("Align center ABC12345"); w.WriteKeyword("par"); // new paragraph w.WriteKeyword("pard"); // clear format w.WriteKeyword("f1"); // set font w.WriteKeyword("fs20"); // set font size w.WriteKeyword("cf1"); w.WriteText("This is the secend paragraph Arial left alignment ABC12345"); // finish w.WriteEndGroup(); }
/// <summary> /// Write font table rtf /// </summary> /// <param name="writer">rtf text writer</param> public void Write(RTFWriter writer) { writer.WriteStartGroup(); writer.WriteKeyword(RTFConsts._fonttbl); foreach (RTFFont item in this) { writer.WriteStartGroup(); writer.WriteKeyword("f" + item.Index); if (item.Charset != 0) { writer.WriteKeyword("fcharset" + item.Charset); } writer.WriteText(item.Name); writer.WriteEndGroup(); } writer.WriteEndGroup(); }
/// <summary> /// write to rtf document /// </summary> /// <param name="writer">RTF text writer</param> public virtual void Write(RTFWriter writer) { if (intType == RTFNodeType.Control || intType == RTFNodeType.Keyword || intType == RTFNodeType.ExtKeyword) { if (this.bolHasParameter) { writer.WriteKeyword( this.strKeyword + this.intParameter, this.intType == RTFNodeType.ExtKeyword); } else { writer.WriteKeyword( this.strKeyword, this.intType == RTFNodeType.ExtKeyword); } } else if (intType == RTFNodeType.Text) { writer.WriteText(this.strKeyword); } }
/// <summary> /// write to rtf document /// </summary> /// <param name="writer">RTF text writer</param> public virtual void Write( RTFWriter writer ) { if( intType == RTFNodeType.Control || intType == RTFNodeType.Keyword || intType == RTFNodeType.ExtKeyword ) { if (this.bolHasParameter) { writer.WriteKeyword( this.strKeyword + this.intParameter, this.intType == RTFNodeType.ExtKeyword); } else { writer.WriteKeyword( this.strKeyword, this.intType == RTFNodeType.ExtKeyword); } } else if (intType == RTFNodeType.Text) { writer.WriteText(this.strKeyword); } }
/// <summary> /// start write document /// </summary> public void WriteStartDocument() { this.myLastParagraphInfo = null; this.bolFirstParagraph = true; if (bolCollectionInfo) { myInfo.Clear(); myFontTable.Clear(); myColorTable.Clear(); myFontTable.Add(System.Windows.Forms.Control.DefaultFont.Name); } else { myWriter.WriteStartGroup(); myWriter.WriteKeyword(RTFConsts._rtf); myWriter.WriteKeyword("ansi"); myWriter.WriteKeyword("ansicpg" + myWriter.Encoding.CodePage); // write document information if (myInfo.Count > 0) { myWriter.WriteStartGroup(); myWriter.WriteKeyword("info"); foreach (string strKey in myInfo.Keys) { myWriter.WriteStartGroup(); object v = myInfo[strKey]; if (v is string) { myWriter.WriteKeyword(strKey); myWriter.WriteText(( string )v); } else if (v is int) { myWriter.WriteKeyword(strKey + v); } else if (v is DateTime) { DateTime dtm = ( DateTime )v; myWriter.WriteKeyword(strKey); myWriter.WriteKeyword("yr" + dtm.Year); myWriter.WriteKeyword("mo" + dtm.Month); myWriter.WriteKeyword("dy" + dtm.Day); myWriter.WriteKeyword("hr" + dtm.Hour); myWriter.WriteKeyword("min" + dtm.Minute); myWriter.WriteKeyword("sec" + dtm.Second); } else { myWriter.WriteKeyword(strKey); } myWriter.WriteEndGroup(); } myWriter.WriteEndGroup(); } // writing font table myWriter.WriteStartGroup(); myWriter.WriteKeyword(RTFConsts._fonttbl); for (int iCount = 0; iCount < myFontTable.Count; iCount++) { //string f = myFontTable[ iCount ] ; myWriter.WriteStartGroup(); myWriter.WriteKeyword("f" + iCount); RTFFont f = myFontTable[iCount]; myWriter.WriteText(f.Name); if (f.Charset != 1) { myWriter.WriteKeyword("fcharset" + f.Charset); } myWriter.WriteEndGroup(); } myWriter.WriteEndGroup(); // write color table myWriter.WriteStartGroup(); myWriter.WriteKeyword(RTFConsts._colortbl); myWriter.WriteRaw(";"); for (int iCount = 0; iCount < myColorTable.Count; iCount++) { System.Drawing.Color c = myColorTable[iCount]; myWriter.WriteKeyword("red" + c.R); myWriter.WriteKeyword("green" + c.G); myWriter.WriteKeyword("blue" + c.B); myWriter.WriteRaw(";"); } myWriter.WriteEndGroup(); // write list table if (this.ListTable != null && this.ListTable.Count > 0) { if (this.DebugMode) { myWriter.WriteRaw(Environment.NewLine); } myWriter.WriteStartGroup(); myWriter.WriteKeyword("listtable", true); foreach (RTFList list in this.ListTable) { if (this.DebugMode) { myWriter.WriteRaw(Environment.NewLine); } myWriter.WriteStartGroup(); myWriter.WriteKeyword("list"); myWriter.WriteKeyword("listtemplateid" + list.ListTemplateID); if (list.ListHybrid) { myWriter.WriteKeyword("listhybrid"); } if (this.DebugMode) { myWriter.WriteRaw(Environment.NewLine); } myWriter.WriteStartGroup(); myWriter.WriteKeyword("listlevel"); myWriter.WriteKeyword("levelfollow" + list.LevelFollow); myWriter.WriteKeyword("leveljc" + list.LevelJc); myWriter.WriteKeyword("levelstartat" + list.LevelStartAt); myWriter.WriteKeyword("levelnfc" + Convert.ToInt32(list.LevelNfc)); myWriter.WriteKeyword("levelnfcn" + Convert.ToInt32(list.LevelNfc)); myWriter.WriteKeyword("leveljc" + list.LevelJc); //if (list.LevelNfc == LevelNumberType.Bullet) { if (string.IsNullOrEmpty(list.LevelText) == false) { myWriter.WriteStartGroup(); myWriter.WriteKeyword("leveltext"); myWriter.WriteKeyword("'0" + list.LevelText.Length); if (list.LevelNfc == LevelNumberType.Bullet) { myWriter.WriteUnicodeText(list.LevelText); } else { myWriter.WriteText(list.LevelText, false); } //myWriter.WriteStartGroup(); //myWriter.WriteKeyword("uc1"); //int v = (int)list.LevelText[0]; //short uv = (short)v; //myWriter.WriteKeyword("u" + uv); //myWriter.WriteRaw(" ?"); //myWriter.WriteEndGroup(); //myWriter.WriteRaw(";"); myWriter.WriteEndGroup(); if (list.LevelNfc == LevelNumberType.Bullet) { RTFFont f = this.FontTable["Wingdings"]; if (f != null) { myWriter.WriteKeyword("f" + f.Index); } } else { myWriter.WriteStartGroup(); myWriter.WriteKeyword("levelnumbers"); myWriter.WriteKeyword("'01"); myWriter.WriteEndGroup(); } } } myWriter.WriteEndGroup(); myWriter.WriteKeyword("listid" + list.ListID); myWriter.WriteEndGroup(); } myWriter.WriteEndGroup(); } // write list overried table if (this.ListOverrideTable != null && this.ListOverrideTable.Count > 0) { if (this.DebugMode) { myWriter.WriteRaw(Environment.NewLine); } myWriter.WriteStartGroup(); myWriter.WriteKeyword("listoverridetable"); foreach (RTFListOverride lo in this.ListOverrideTable) { if (this.DebugMode) { myWriter.WriteRaw(Environment.NewLine); } myWriter.WriteStartGroup(); myWriter.WriteKeyword("listoverride"); myWriter.WriteKeyword("listid" + lo.ListID); myWriter.WriteKeyword("listoverridecount" + lo.ListOverriedCount); myWriter.WriteKeyword("ls" + lo.ID); myWriter.WriteEndGroup(); } myWriter.WriteEndGroup(); } if (this.DebugMode) { myWriter.WriteRaw(Environment.NewLine); } myWriter.WriteKeyword("viewkind1"); } }
/// <summary> /// Write font table rtf /// </summary> /// <param name="writer">rtf text writer</param> public void Write( RTFWriter writer ) { writer.WriteStartGroup(); writer.WriteKeyword( RTFConsts._fonttbl ); foreach( RTFFont item in this ) { writer.WriteStartGroup(); writer.WriteKeyword( "f" + item.Index ); if (item.Charset != 0) { writer.WriteKeyword("fcharset" + item.Charset); } writer.WriteText( item.Name ); writer.WriteEndGroup(); } writer.WriteEndGroup(); }
/// <summary> /// Test to generate a little rtf document /// </summary> /// <param name="w">RTF text writer</param> private static void TestBuildRTF( RTFWriter w ) { w.Encoding = System.Text.Encoding.GetEncoding( 936 ); // write header w.WriteStartGroup(); w.WriteKeyword("rtf1"); w.WriteKeyword("ansi"); w.WriteKeyword("ansicpg" + w.Encoding.CodePage ); // wirte font table w.WriteStartGroup(); w.WriteKeyword("fonttbl"); w.WriteStartGroup(); w.WriteKeyword("f0"); w.WriteText("Arial;"); w.WriteEndGroup(); w.WriteStartGroup(); w.WriteKeyword("f1"); w.WriteText("Times New Roman;"); w.WriteEndGroup(); w.WriteEndGroup(); // write color table w.WriteStartGroup(); w.WriteKeyword("colortbl"); w.WriteText(";"); w.WriteKeyword("red0"); w.WriteKeyword("green0"); w.WriteKeyword("blue255"); w.WriteText(";"); w.WriteEndGroup(); // write content w.WriteKeyword("qc"); // set alignment center w.WriteKeyword("f0"); // set font w.WriteKeyword("fs30"); // set font size w.WriteText("This is the first paragraph text "); w.WriteKeyword("cf1"); // set text color w.WriteText("Arial "); w.WriteKeyword("cf0"); // set default color w.WriteKeyword("f1"); // set font w.WriteText("Align center ABC12345"); w.WriteKeyword("par"); // new paragraph w.WriteKeyword("pard"); // clear format w.WriteKeyword("f1"); // set font w.WriteKeyword("fs20"); // set font size w.WriteKeyword("cf1"); w.WriteText("This is the secend paragraph Arial left alignment ABC12345"); // finish w.WriteEndGroup(); }
public void Write(RTFWriter writer) { writer.WriteStartGroup( ); writer.WriteKeyword("info"); foreach( string strKey in myInfo.Keys ) { writer.WriteStartGroup(); if (strKey == "edmins" || strKey == "vern" || strKey == "nofpages" || strKey == "nofwords" || strKey == "nofchars" || strKey == "nofcharsws" || strKey == "id") { writer.WriteKeyword(strKey + myInfo[strKey]); } else { writer.WriteKeyword(strKey); writer.WriteText(myInfo[strKey]); } writer.WriteEndGroup(); } writer.WriteStartGroup(); WriteTime( writer , "creatim" , dtmCreatim ); WriteTime( writer , "revtim" , dtmRevtim ); WriteTime( writer , "printim" , dtmPrintim ); WriteTime( writer , "buptim" , dtmBuptim ); writer.WriteEndGroup(); }