Esempio n. 1
0
		/// <summary>
		/// Exports the content of a SyntaxDocument to a HTML formatted string
		/// </summary>
		/// <param name="doc">SyntaxDocument object to export from</param>
		/// <param name="BGColor">HTML color string to use as background color</param>
		/// <param name="ImagePath">File path tho the images to use in the HTML string</param>
		/// <param name="Style">HTML style string that should be applied to the output</param>
		/// <returns></returns>
		public string Export(SyntaxDocument doc,System.Drawing.Color BGColor,string ImagePath,string Style)
		{
			
			sb=new System.Text.StringBuilder ();
			doc.ParseAll (true);
			int i=0;
			
			string guid=DateTime.Now.Ticks.ToString ();
			
			//style=\"font-family:courier new;font-size:13px;\"
			if (BGColor.A ==0)
				Out("<table  ><tr><td nowrap><div style=\""+ Style +"\">");
			else
				Out("<table  style=\"background-color:" + GetHTMLColor (BGColor) + ";" + Style + "\"><tr><td nowrap><div>");
			foreach (Row r in doc)
			{
				i++;
				if (r.CanFold)
				{
					RenderCollapsed(r.VirtualCollapsedRow,r,i,ImagePath,guid);
					Out("<div style=\"display:block;\" id=\"open" + guid+"_"+i.ToString () + "\">");

					string img="minus.gif";
					try
					{
						if (r.Expansion_StartSegment.Parent.Parent  == null)
							img = "minusNoTopLine.gif";
					}
					catch
					{
					}
					Out ("<img src=\"" + ImagePath + img + "\" align=top onclick=\"open" + guid+"_"+i.ToString () +".style.display='none'; closed" + guid+"_"+i.ToString () +".style.display='block'; \">");
				}
				else
				{
					if (r.CanFoldEndPart)
					{
						Out ("<img src=\"" + ImagePath + "L.gif\"  align=top>");
					}
					else
					{
						if (r.HasExpansionLine)
						{
							Out ("<img src=\"" + ImagePath + "I.gif\"  align=top>");
						}
						else
						{
							Out ("<img src=\"" + ImagePath + "clear.gif\"  align=top>");
						}
					}
				}
				foreach (Word w in r)
				{
					write (w.Text,w.Style);
				}
				if (r.CanFoldEndPart)
					Out("</div>\n");
				else
					Out("<br>\n");				
			}
			Out("</div></td></tr></table>");

			return this.sb.ToString ();
		}