private static RtfCharFormat addParagraphChunk(RtfParagraph par, string text, IFont font) { FontStruct fntStr = ((FontHandler)font).Handle; par.DefaultCharFormat.Font = fntStr.FD; int beg = par.Text.Length; par.Text.Append(text); int end = par.Text.Length - 1; RtfCharFormat fmt = par.addCharFormat(beg, end); fmt.Font = fntStr.FD; fmt.FgColor = fntStr.Color; fmt.FontSize = fntStr.Size; if (fntStr.Bold) { fmt.FontStyle.addStyle(FontStyleFlag.Bold); } if (fntStr.Underline) { fmt.FontStyle.addStyle(FontStyleFlag.Underline); } return(fmt); }
protected override void Write(string weaponnames, Info weapon) { RtfParagraph paragraphWeaponName = _document.addParagraph(); RtfCharFormat formatWeaponName = paragraphWeaponName.addCharFormat(); formatWeaponName.FontStyle.addStyle(FontStyleFlag.Bold); paragraphWeaponName.Text.Append(weaponnames); RtfParagraph paragraph = _document.addParagraph(); RtfCharFormat format = paragraph.addCharFormat(); paragraph.Text.AppendLine(weapon.info); if (weapon.additionalFields == null) { return; } foreach (KeyValuePair <string, string> pair in weapon.additionalFields) { paragraph.Text.Append(pair.Key); paragraph.Text.Append(": "); paragraph.Text.Append(pair.Value); paragraph.Text.AppendLine(); } }
/// <summary> /// Actualiza la tabla de colores con un nuevo color si es necesario. /// </summary> /// <param name="format"></param> private void UpdateColorTable(RtfCharFormat format) { if (colorTable.IndexOf(format.Color) == -1) { colorTable.AddColor(format.Color); } }
/// <summary> /// Actualiza la tabla de fuentes con una nueva fuente si es necesario. /// </summary> /// <param name="format"></param> private void UpdateFontTable(RtfCharFormat format) { if (fontTable.IndexOf(format.Font) == -1) { fontTable.AddFont(format.Font); } }
public override void addParagraphAnchor(string text, IFont font, string anchor) { RtfParagraph par = fDocument.addParagraph(); RtfCharFormat fmt = addParagraphChunk(par, text, font); fmt.Bookmark = anchor; }
public static void Create() { RtfDocument doc = new RtfDocument(System.Text.Encoding.UTF8); RtfCharFormat format = new RtfCharFormat(); format.Size = 20; format.Bold = true; format.Underline = true; format.Color = System.Drawing.Color.Red; doc.AddText("Title", format); doc.AddNewLine(); doc.AddNewLine(); format.Size = 12; format.Bold = false; format.Underline = false; doc.AddText("This is a test.", format); doc.AddText("This is a text."); doc.AddNewLine(); // doc.AddImage("test.png", 50, 50); doc.Save(@"D:\rtfdoc.rtf"); }
public override void addParagraphLink(string text, IFont font, string link, IFont linkFont) { RtfParagraph par = fDocument.addParagraph(); RtfCharFormat fmt = addParagraphChunk(par, text, font); fmt.LocalHyperlink = link; }
protected override void WriteClass(string text) { RtfParagraph paragraph = _document.addParagraph(); RtfCharFormat format = paragraph.addCharFormat(); format.FontStyle.addStyle(FontStyleFlag.Bold | FontStyleFlag.Underline); paragraph.Text.AppendLine(text); }
protected override void WriteSlot(string text) { RtfParagraph paragraph = _document.addParagraph(); RtfCharFormat format = paragraph.addCharFormat(); format.FontStyle.addStyle(FontStyleFlag.Italic); paragraph.Text.AppendLine(text); }
/// <summary> /// Actualiza los valores de las propiedades de formato de texto y párrafo. /// </summary> /// <param name="format">Formato de texto a insertar.</param> public void UpdateCharFormat(RtfCharFormat format) { if (currentFormat != null) { SetFormatColor(format.Color); SetFormatSize(format.Size); SetFormatFont(format.Font); SetFormatBold(format.Bold); SetFormatItalic(format.Italic); SetFormatUnderline(format.Underline); } else //currentFormat == null { int indColor = colorTable.IndexOf(format.Color); if (indColor == -1) { colorTable.AddColor(format.Color); indColor = colorTable.IndexOf(format.Color); } int indFont = fontTable.IndexOf(format.Font); if (indFont == -1) { fontTable.AddFont(format.Font); indFont = fontTable.IndexOf(format.Font); } mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "cf", true, indColor)); mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "fs", true, format.Size * 2)); mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "f", true, indFont)); if (format.Bold) { mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "b", false, 0)); } if (format.Italic) { mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "i", false, 0)); } if (format.Underline) { mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "ul", false, 0)); } currentFormat = new RtfCharFormat(); currentFormat.Color = format.Color; currentFormat.Size = format.Size; currentFormat.Font = format.Font; currentFormat.Bold = format.Bold; currentFormat.Italic = format.Italic; currentFormat.Underline = format.Underline; } }
/// <summary> /// Inserta un fragmento de texto en el documento con un formato de texto determinado. /// </summary> /// <param name="text">Texto a insertar.</param> /// <param name="format">Formato del texto a insertar.</param> public void AddText(string text, RtfCharFormat format) { UpdateFontTable(format); UpdateColorTable(format); UpdateCharFormat(format); InsertText(text); }
/// <summary> /// Inserta un fragmento de texto en el documento con un formato de texto determinado. /// </summary> /// <param name="parent">Nodo padre del fragmento de texto</param> /// <param name="text">Texto a insertar.</param> /// <param name="format">Formato del texto a insertar.</param> /// <param name="highlight">Resaltar el texto?</param> public void AddText(RtfTreeNode parent, string text, RtfCharFormat format, bool highlight = false) { UpdateFontTable(format); UpdateColorTable(format); UpdateCharFormat(format); InsertText(parent, text, highlight); }
public override void addParagraphChunkLink(string text, IFont font, string link, IFont linkFont, bool sup) { RtfCharFormat fmt = addParagraphChunk(fParagraph, text, font); if (sup) { fmt.FontStyle.addStyle(FontStyleFlag.Super); } fmt.LocalHyperlink = link; }
protected override void Write(RebalanceInfo weapon) { RtfParagraph paragraphWeaponName = _document.addParagraph(); RtfCharFormat formatWeaponName = paragraphWeaponName.addCharFormat(); formatWeaponName.FontStyle.addStyle(FontStyleFlag.Bold); paragraphWeaponName.Text.AppendLine(weapon.name); RtfParagraph paragraph = _document.addParagraph(); RtfCharFormat format = paragraph.addCharFormat(); paragraph.Text.AppendLine(weapon.info); paragraph.Text.AppendLine(); }
public override void addListItemLink(string text, IFont font, string link, IFont linkFont) { RtfParagraph par = fDocument.addParagraph(); FontStruct fntStr = ((FontHandler)font).Handle; var symFont = CreateFont("Symbol", fntStr.Size, fntStr.Bold, fntStr.Underline, fntStr.OriginalColor); addParagraphChunk(par, "\t· ", symFont); addParagraphChunk(par, text, font); if (!string.IsNullOrEmpty(link)) { RtfCharFormat fmt = addParagraphChunk(par, link, linkFont); fmt.LocalHyperlink = link; } }
public static void Append() { RtfDocument doc = new RtfDocument(@"D:\rtfdoc.rtf", System.Text.Encoding.UTF8); RtfCharFormat format = new RtfCharFormat(); format.Size = 12; format.Bold = false; format.Underline = false; format.Color = System.Drawing.Color.Blue; doc.AddText("This is a test.", format); doc.AddText("This is a {bad} text."); doc.Save(@"D:\rtfdoc1.rtf"); }
/// <summary> /// Constructor de la clase RtfDocument. /// </summary> /// <param name="enc">Codificación del documento a generar.</param> public RtfDocument(Encoding enc) { encoding = enc; fontTable = new RtfFontTable(); fontTable.AddFont("Arial"); //Default font colorTable = new RtfColorTable(); colorTable.AddColor(Color.Black); //Default color currentFormat = null; currentParFormat = new RtfParFormat(); docFormat = new RtfDocumentFormat(); mainGroup = new RtfTreeNode(RtfNodeType.Group); InitializeTree(); }
private static void AddParagraphChunk(RtfParagraph par, string text, FontStruct fntStr) { par.DefaultCharFormat.Font = fntStr.FD; int beg = par.Text.Length; par.Text.Append(text); int end = par.Text.Length - 1; RtfCharFormat fmt = par.addCharFormat(beg, end); fmt.Font = fntStr.FD; fmt.FgColor = fntStr.Color; fmt.FontSize = fntStr.Size; if (fntStr.Bold) { fmt.FontStyle.addStyle(FontStyleFlag.Bold); } if (fntStr.Underline) { fmt.FontStyle.addStyle(FontStyleFlag.Underline); } }
public override void addParagraphChunkAnchor(string text, IFont font, string anchor) { RtfCharFormat fmt = addParagraphChunk(fParagraph, text, font); fmt.Bookmark = anchor; }
/// <summary> /// Actualiza los valores de las propiedades de formato de texto y párrafo. /// </summary> /// <param name="format">Formato de texto a insertar.</param> public void UpdateCharFormat(RtfCharFormat format) { if (currentFormat != null) { SetFormatColor(format.Color); SetFormatSize(format.Size); SetFormatFont(format.Font); SetFormatBold(format.Bold); SetFormatItalic(format.Italic); SetFormatUnderline(format.Underline); } else //currentFormat == null { int indColor = colorTable.IndexOf(format.Color); if (indColor == -1) { colorTable.AddColor(format.Color); indColor = colorTable.IndexOf(format.Color); } int indFont = fontTable.IndexOf(format.Font); if (indFont == -1) { fontTable.AddFont(format.Font); indFont = fontTable.IndexOf(format.Font); } mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "cf", true, indColor)); mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "fs", true, format.Size * 2)); mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "f", true, indFont)); if (format.Bold) mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "b", false, 0)); if (format.Italic) mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "i", false, 0)); if (format.Underline) mainGroup.AppendChild(new RtfTreeNode(RtfNodeType.Keyword, "ul", false, 0)); currentFormat = new RtfCharFormat(); currentFormat.Color = format.Color; currentFormat.Size = format.Size; currentFormat.Font = format.Font; currentFormat.Bold = format.Bold; currentFormat.Italic = format.Italic; currentFormat.Underline = format.Underline; } }
public void CreateSimpleDocument() { RtfDocument doc = new RtfDocument(); RtfCharFormat charFormat = new RtfCharFormat(); charFormat.Color = Color.DarkBlue; charFormat.Underline = true; charFormat.Bold = true; doc.UpdateCharFormat(charFormat); RtfParFormat parFormat = new RtfParFormat(); parFormat.Alignment = TextAlignment.Justified; doc.UpdateParFormat(parFormat); doc.AddText("First Paragraph"); doc.AddNewParagraph(2); doc.SetFormatBold(false); doc.SetFormatUnderline(false); doc.SetFormatColor(Color.Red); doc.AddText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer quis eros at tortor pharetra laoreet. Donec tortor diam, imperdiet ut porta quis, congue eu justo."); doc.AddText("Quisque viverra tellus id mauris tincidunt luctus. Fusce in interdum ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."); doc.AddText("Donec ac leo justo, vitae rutrum elit. Nulla tellus elit, imperdiet luctus porta vel, consectetur quis turpis. Nam purus odio, dictum vitae sollicitudin nec, tempor eget mi."); doc.AddText("Etiam vitae porttitor enim. Aenean molestie facilisis magna, quis tincidunt leo placerat in. Maecenas malesuada eleifend nunc vitae cursus."); doc.AddNewParagraph(2); doc.Save("..\\..\\testdocs\\rtfdocument1.rtf"); string text1 = doc.Text; string rtfcode1 = doc.Rtf; doc.AddText("Second Paragraph", charFormat); doc.AddNewParagraph(2); charFormat.Font = "Courier New"; charFormat.Color = Color.Green; charFormat.Bold = false; charFormat.Underline = false; doc.UpdateCharFormat(charFormat); doc.SetAlignment(TextAlignment.Left); doc.SetLeftIndentation(2); doc.SetRightIndentation(2); doc.AddText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer quis eros at tortor pharetra laoreet. Donec tortor diam, imperdiet ut porta quis, congue eu justo."); doc.AddText("Quisque viverra tellus id mauris tincidunt luctus. Fusce in interdum ipsum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."); doc.AddText("Donec ac leo justo, vitae rutrum elit. Nulla tellus elit, imperdiet luctus porta vel, consectetur quis turpis. Nam purus odio, dictum vitae sollicitudin nec, tempor eget mi."); doc.AddText("Etiam vitae porttitor enim. Aenean molestie facilisis magna, quis tincidunt leo placerat in. Maecenas malesuada eleifend nunc vitae cursus."); doc.AddNewParagraph(2); doc.UpdateCharFormat(charFormat); doc.SetFormatUnderline(false); doc.SetFormatItalic(true); doc.SetFormatColor(Color.DarkBlue); doc.SetLeftIndentation(0); doc.AddText("Test Doc. Петяв ñáéíó\n"); doc.AddNewLine(1); doc.AddText("\tStop."); string text2 = doc.Text; string rtfcode2 = doc.Rtf; doc.Save("..\\..\\testdocs\\rtfdocument2.rtf"); StreamReader sr = null; sr = new StreamReader("..\\..\\testdocs\\rtfdocument1.rtf"); string rtf1 = sr.ReadToEnd(); sr.Close(); sr = null; sr = new StreamReader("..\\..\\testdocs\\rtfdocument2.rtf"); string rtf2 = sr.ReadToEnd(); sr.Close(); sr = new StreamReader("..\\..\\testdocs\\rtf4.txt"); string rtf4 = sr.ReadToEnd(); sr.Close(); sr = new StreamReader("..\\..\\testdocs\\rtf6.txt"); string rtf6 = sr.ReadToEnd(); sr.Close(); sr = new StreamReader("..\\..\\testdocs\\doctext1.txt"); string doctext1 = sr.ReadToEnd(); sr.Close(); sr = new StreamReader("..\\..\\testdocs\\doctext2.txt"); string doctext2 = sr.ReadToEnd() + " Петяв ñáéíó\r\n\r\n\tStop.\r\n"; sr.Close(); //Se adapta el lenguaje al del PC donde se ejecutan los tests int deflangInd = rtf4.IndexOf("\\deflang3082"); rtf4 = rtf4.Substring(0, deflangInd) + "\\deflang" + CultureInfo.CurrentCulture.LCID + rtf4.Substring(deflangInd + 8 + CultureInfo.CurrentCulture.LCID.ToString().Length); //Se adapta el lenguaje al del PC donde se ejecutan los tests int deflangInd2 = rtf6.IndexOf("\\deflang3082"); rtf6 = rtf6.Substring(0, deflangInd2) + "\\deflang" + CultureInfo.CurrentCulture.LCID + rtf6.Substring(deflangInd2 + 8 + CultureInfo.CurrentCulture.LCID.ToString().Length); Assert.That(rtf1, Is.EqualTo(rtf6)); Assert.That(rtf2, Is.EqualTo(rtf4)); Assert.That(text1, Is.EqualTo(doctext1)); Assert.That(text2, Is.EqualTo(doctext2)); }
/// <summary> /// Inserta un fragmento de texto en el documento con un formato de texto determinado. /// </summary> /// <param name="text">Texto a insertar.</param> /// <param name="format">Formato del texto a insertar.</param> /// <param name="highlight">Resaltar el texto?</param> public void AddText(string text, RtfCharFormat format, bool highlight = false) { AddText(this.mainGroup, text, format, highlight); }
public void Exportar(System.Windows.Controls.DataGrid dg) { try { List <Object> itens = new List <object>((IEnumerable <object>)dg.ItemsSource); if (itens != null && itens.Count > 0) { Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = "dadosLista"; dlg.DefaultExt = ".rtf"; dlg.Filter = "Arquivo RTF (.rtf)|*.rtf"; Nullable <bool> result = dlg.ShowDialog(); if (result == true) { FileStream fs = new FileStream(dlg.FileName, FileMode.Create, FileAccess.ReadWrite); fs.Close(); RtfDocument rtfDoc = new RtfDocument(dlg.FileName); StringBuilder sb = new StringBuilder(); foreach (DataGridColumn coluna in dg.Columns) { sb.Append(coluna.Header.ToString()); sb.Append("\t"); } RtfCharFormat rtfCharFormat = new RtfCharFormat(); rtfCharFormat.Bold = true; rtfCharFormat.Size = 14; rtfDoc.AddText(sb.ToString(), rtfCharFormat); rtfDoc.AddNewLine(); rtfDoc.ResetCharFormat(); sb.Clear(); foreach (Object item in itens) { foreach (DataGridColumn coluna in dg.Columns) { Binding binding = (Binding)((DataGridBoundColumn)coluna).Binding; string path = binding.Path.Path; string[] hierarquiaObj = path.Split('.'); Object itemAux = item; for (int i = 0; i < hierarquiaObj.Length - 1; i++) { itemAux = itemAux.GetType().GetProperty(hierarquiaObj[i]).GetValue(itemAux, null); } string prop = hierarquiaObj[hierarquiaObj.Length - 1]; string conteudo = ""; if (itemAux.GetType().GetProperty(prop).GetValue(itemAux, null) != null) { conteudo = itemAux.GetType().GetProperty(prop).GetValue(itemAux, null).ToString(); } sb.Append(conteudo); sb.Append("\t"); } rtfDoc.AddText(sb.ToString()); rtfDoc.AddNewLine(); sb.Clear(); } rtfDoc.Close(); } } } catch (Exception ex) { throw ex; } }