Example #1
0
            private static void ExtractImages()
            {
                RtfTree tree = new RtfTree();

                tree.LoadRtfFile("..\\..\\testdocs\\test-doc.rtf");

                RtfNodeCollection imageNodes = tree.RootNode.SelectNodes("pict");

                Console.WriteLine("Extracting images...");

                int i = 1;

                foreach (RtfTreeNode node in imageNodes)
                {
                    ImageNode imageNode = new ImageNode(node.ParentNode);

                    if (imageNode.ImageFormat == ImageFormat.Png)
                    {
                        imageNode.SaveImage("..\\..\\testdocs\\image" + i + ".png");

                        Console.WriteLine("File '" + "image" + i + ".png" + "' created.");

                        i++;
                    }
                }

                Console.WriteLine("");
            }
Example #2
0
        private void button6_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            //Se establecen las propiedades del cuadro de diálogo "Abrir"
            openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.Filter           = "Archivos RTF (*.rtf)|*.rtf|Todos los archivos (*.*)|*.*";
            openFileDialog1.FilterIndex      = 1;
            openFileDialog1.RestoreDirectory = true;

            //Se muestra el cuadro de diálogo Abrir y se espera a que se seleccione un fichero RTF.
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //Se crea un árbol RTF
                RtfTree arbol = new RtfTree();

                //Se carga el documento seleccionado (Este método parsea el documento y crea la estructura de árbol interna)
                arbol.LoadRtfFile(openFileDialog1.FileName);

                //Busca el primer nodo de tipo objeto.
                RtfTreeNode node = arbol.RootNode.SelectSingleNode("object");

                //Se crea un nodo RTF especializado en imágenes
                ObjectNode objectNode = new ObjectNode(node.ParentNode);

                //Se escriben al cuadro de texto superior algunos datos del objeto
                txtArbol.Text += "Object type: " + objectNode.ObjectType + "\r\n";
                txtArbol.Text += "Object class: " + objectNode.ObjectClass + "\r\n";

                //Se extrae la imagen insertada como representación del objeto

                //Se obtiene el nodo "\result" del objeto (representación externa del objeto en el documento RTF)
                RtfTreeNode resultNode = objectNode.ResultNode;

                RtfTreeNode auxNode = null;

                //Si existe un nodo imagen en el grupo "\result" la extraemos a un fichero y mostramos algunas características en
                //el cuadro de texto superior de la ventana.
                if ((auxNode = resultNode.SelectSingleNode("pict")) != null)
                {
                    //Creamos el nodo especializado de tipo Imagen
                    ImageNode imageNode = new ImageNode(auxNode.ParentNode);

                    //Mostramos algunas características de la imagen
                    txtArbol.Text += "Image width: " + imageNode.Width / 20 + "\r\n";
                    txtArbol.Text += "Image heigh: " + imageNode.Height / 20 + "\r\n";
                    txtArbol.Text += "Image format: " + imageNode.ImageFormat + "\r\n";

                    //Se guarda la imagen a fichero
                    MessageBox.Show("Se va a crear el fichero: image-example3." + getExtension(imageNode.ImageFormat));
                    imageNode.SaveImage("image-example3." + getExtension(imageNode.ImageFormat));
                }
                else
                {
                    MessageBox.Show("El grupo '\result' del objeto no contiene imágenes!");
                }
            }
        }
Example #3
0
        public void ImageBinData()
        {
            RtfTree tree = new RtfTree();
            tree.LoadRtfFile("..\\..\\testdocs\\testdoc3.rtf");

            RtfTreeNode pictNode = tree.MainGroup.SelectNodes("pict")[2].ParentNode;

            ImageNode imgNode = new ImageNode(pictNode);

            imgNode.SaveImage("..\\..\\testdocs\\img-result.png", ImageFormat.Jpeg);

            Stream fs1 = new FileStream("..\\..\\testdocs\\img-result.jpg", FileMode.Open);
            Stream fs2 = new FileStream("..\\..\\testdocs\\image1.jpg", FileMode.Open);

            Assert.That(fs1, Is.EqualTo(fs2));
        }
Example #4
0
        public void ImageBinData()
        {
            RtfTree tree = new RtfTree();

            tree.LoadRtfFile("..\\..\\testdocs\\testdoc3.rtf");

            RtfTreeNode pictNode = tree.MainGroup.SelectNodes("pict")[2].ParentNode;

            ImageNode imgNode = new ImageNode(pictNode);

            imgNode.SaveImage("..\\..\\testdocs\\img-result.png", ImageFormat.Jpeg);

            Stream fs1 = new FileStream("..\\..\\testdocs\\img-result.jpg", FileMode.Open);
            Stream fs2 = new FileStream("..\\..\\testdocs\\image1.jpg", FileMode.Open);

            Assert.That(fs1, Is.EqualTo(fs2));
        }
Example #5
0
        private void button5_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            //Se establecen las propiedades del cuadro de diálogo "Abrir"
            openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.Filter           = "Archivos RTF (*.rtf)|*.rtf|Todos los archivos (*.*)|*.*";
            openFileDialog1.FilterIndex      = 1;
            openFileDialog1.RestoreDirectory = true;

            //Se muestra el cuadro de diálogo Abrir y se espera a que se seleccione un fichero RTF.
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //Se crea un árbol RTF
                RtfTree arbol = new RtfTree();

                //Se carga el documento seleccionado (Este método parsea el documento y crea la estructura de árbol interna)
                arbol.LoadRtfFile(openFileDialog1.FileName);

                //Busca todos los nodos de tipo "\pict" (Imagen)
                RtfNodeCollection imageNodes = arbol.RootNode.SelectNodes("pict");

                //Se recorren los nodos encontrados
                int i = 1;
                foreach (RtfTreeNode node in imageNodes)
                {
                    //Se crea un nodo RTF especializado en imágenes
                    ImageNode imageNode = new ImageNode(node.ParentNode);

                    //Se guarda el contenido de la imagen a un fichero con el formato original con el que se almacenó en el documento.
                    imageNode.SaveImage("image" + i + "." + getExtension(imageNode.ImageFormat));

                    i++;
                }
            }
        }
Example #6
0
            private static void ExtractImages()
            {
                RtfTree tree = new RtfTree();
                tree.LoadRtfFile("..\\..\\testdocs\\test-doc.rtf");

                RtfNodeCollection imageNodes = tree.RootNode.SelectNodes("pict");

                Console.WriteLine("Extracting images...");

                int i = 1;
                foreach (RtfTreeNode node in imageNodes)
                {
                    ImageNode imageNode = new ImageNode(node.ParentNode);

                    if (imageNode.ImageFormat == ImageFormat.Png)
                    {
                        imageNode.SaveImage("..\\..\\testdocs\\image" + i + ".png");

                        Console.WriteLine("File '" + "image" + i + ".png" + "' created.");

                        i++;
                    }
                }

                Console.WriteLine("");
            }