예제 #1
0
        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();
            }
        }
예제 #3
0
 /// <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);
     }
 }
예제 #4
0
 /// <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);
     }
 }
예제 #5
0
        public override void addParagraphAnchor(string text, IFont font, string anchor)
        {
            RtfParagraph  par = fDocument.addParagraph();
            RtfCharFormat fmt = addParagraphChunk(par, text, font);

            fmt.Bookmark = anchor;
        }
예제 #6
0
        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");
        }
예제 #7
0
        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);
        }
예제 #10
0
            /// <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;
                }
            }
예제 #11
0
            /// <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);
            }
예제 #12
0
            /// <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);
            }
예제 #13
0
        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();
        }
예제 #15
0
        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;
            }
        }
예제 #16
0
        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");
        }
예제 #17
0
            /// <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();
            }
예제 #18
0
        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);
            }
        }
예제 #19
0
        public override void addParagraphChunkAnchor(string text, IFont font, string anchor)
        {
            RtfCharFormat fmt = addParagraphChunk(fParagraph, text, font);

            fmt.Bookmark = anchor;
        }
예제 #20
0
            /// <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);
            }
예제 #21
0
            /// <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;
                }
            }
예제 #22
0
        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));
        }
예제 #23
0
 /// <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);
     }
 }
예제 #24
0
 /// <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);
 }
예제 #25
0
 /// <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);
     }
 }
예제 #26
0
        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;
            }
        }
예제 #27
0
        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));
        }
예제 #28
0
            /// <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();
            }