Пример #1
0
        private async Task <String> GetUgcPadContent()
        {
            String richText;

            #region Get RichEdit Raw Data

            this.RichBox.Document.GetText(TextGetOptions.FormatRtf, out richText);

            #endregion

            var structureBuilder = new RtfParserListenerStructureBuilder();
            var parser           = new RtfParser(structureBuilder);
            parser.IgnoreContentAfterRootGroup = true; // support WordPad documents

            parser.Parse(new RtfSource(richText));

            var rtfStructure = structureBuilder.StructureRoot;

            // image converter
            var imageAdapter         = new RtfVisualImageAdapter(ImageFormat.Jpeg);
            var imageConvertSettings = new RtfImageConvertSettings(imageAdapter);
            imageConvertSettings.ScaleImage = true; // scale images
            var imageConverter = new RtfImageConverter(imageConvertSettings);

            // rtf interpreter
            var interpreterSettings = new RtfInterpreterSettings();

            var rtfDocument = RtfInterpreterTool.BuildDoc(rtfStructure, interpreterSettings, imageConverter);

            var htmlSegments = await RtfToHtmlSegments(rtfDocument.VisualContent);

            return(htmlSegments);
        }
Пример #2
0
        private IRtfDocument InterpretRtf(IRtfGroup rtfStructure, RtfVisualImageAdapter imageAdapter)
        {
            IRtfDocument            rtfDocument          = null;
            RtfImageConverter       imageConverter       = null;
            RtfImageConvertSettings imageConvertSettings = new RtfImageConvertSettings(imageAdapter);

            imageConvertSettings.ImagesPath      = ImagePath;
            imageConvertSettings.BackgroundColor = null;
            imageConverter = new RtfImageConverter(imageConvertSettings);
            rtfDocument    = RtfInterpreterTool.BuildDoc(rtfStructure, null, imageConverter);
            return(rtfDocument);
        }
Пример #3
0
        private string ConvertHmtl(IRtfDocument rtfDocument, RtfVisualImageAdapter imageAdapter)
        {
            RtfHtmlConvertSettings htmlConvertSettings = new RtfHtmlConvertSettings(imageAdapter);

            htmlConvertSettings.Title                   = "Doc Title " + DateTime.Now.ToString("dd/MM/yyyy");
            htmlConvertSettings.ImagesPath              = ImagePath;
            htmlConvertSettings.IsShowHiddenText        = IsShowHiddenText;
            htmlConvertSettings.ConvertVisualHyperlinks = ConvertVisualHyperlinks;
            RtfHtmlConverter htmlConverter = new RtfHtmlConverter(rtfDocument, htmlConvertSettings);

            return(htmlConverter.Convert());
        }
Пример #4
0
        public string GetHTML(string rtfString)
        {
            ReportProgress(33);
            IRtfGroup             rtfStructure = ParseRtf(rtfString);
            RtfVisualImageAdapter imageAdapter = new RtfVisualImageAdapter(
                ImageFileNamePattern,
                ImageFormat.Jpeg);

            ReportProgress(33);
            IRtfDocument rtfDocument = InterpretRtf(rtfStructure, imageAdapter);

            ReportProgress(33);
            return(ConvertHmtl(rtfDocument, imageAdapter));
        }
Пример #5
0
        }         // ConvertRtf2Txt

        // ----------------------------------------------------------------------
        public string ConvertRtf2Html(string fileName)
        {
            // parser
            IRtfGroup rtfStructure = ParseRtf(fileName);

            if (rtfStructure == null)
            {
                return(string.Empty);
            }

            // interpreter logger
            RtfInterpreterListenerFileLogger interpreterLogger = null;

            if (!string.IsNullOrEmpty(InterpreterLogFileName))
            {
                interpreterLogger = new RtfInterpreterListenerFileLogger(InterpreterLogFileName);
            }

            // image converter
            RtfVisualImageAdapter   imageAdapter         = new RtfVisualImageAdapter(ImageFormat.Jpeg);
            RtfImageConvertSettings imageConvertSettings = new RtfImageConvertSettings(imageAdapter);

            imageConvertSettings.ScaleImage = true;             // scale images
            RtfImageConverter imageConverter = new RtfImageConverter(imageConvertSettings);

            // rtf interpreter
            RtfInterpreterSettings interpreterSettings = new RtfInterpreterSettings();
            IRtfDocument           rtfDocument         = RtfInterpreterTool.BuildDoc(rtfStructure, interpreterSettings, interpreterLogger, imageConverter);

            // html converter
            RtfHtmlConvertSettings htmlConvertSettings = new RtfHtmlConvertSettings();

            htmlConvertSettings.ConvertScope = RtfHtmlConvertScope.Content;
            RtfHtmlConverter htmlConverter = new RtfHtmlConverter(rtfDocument);

            return(htmlConverter.Convert());
        }         // ConvertRtf2Html
Пример #6
0
        private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            String richText;

            this.RichBox.Document.GetText(TextGetOptions.FormatRtf, out richText);

            var structureBuilder = new RtfParserListenerStructureBuilder();
            var parser           = new RtfParser(structureBuilder);

            parser.IgnoreContentAfterRootGroup = true; // support WordPad documents

            parser.Parse(new RtfSource(richText));

            var rtfStructure = structureBuilder.StructureRoot;

            // image converter
            var imageAdapter         = new RtfVisualImageAdapter(ImageFormat.Jpeg);
            var imageConvertSettings = new RtfImageConvertSettings(imageAdapter);

            imageConvertSettings.ScaleImage = true; // scale images
            var imageConverter = new RtfImageConverter(imageConvertSettings);

            // rtf interpreter
            var interpreterSettings = new RtfInterpreterSettings();

            var rtfDocument = RtfInterpreterTool.BuildDoc(rtfStructure, interpreterSettings, imageConverter);

            var htmlSegments = await RtfToHtmlSegments(rtfDocument.VisualContent);

            var anonymited = this.Anonymity.IsChecked.HasValue && this.Anonymity.IsChecked.Value == true;

            this.Result = new UgcDialogResult(anonymited, htmlSegments);

            //var deferral = args.GetDeferral();

            //deferral.Complete();
        }
Пример #7
0
        }         // EnsureDestinationDirectory

        // ----------------------------------------------------------------------
        private string InterpretRtf(IRtfGroup rtfStructure)
        {
            string text = null;

            RtfInterpreterListenerFileLogger interpreterLogger = null;

            try
            {
                // logger
                if (settings.LogInterpreter)
                {
                    string logFileName = settings.BuildDestinationFileName(
                        settings.LogDirectory,
                        RtfInterpreterListenerFileLogger.DefaultLogFileExtension);
                    interpreterLogger = new RtfInterpreterListenerFileLogger(logFileName);
                }

                // text converter
                RtfTextConverter textConverter = null;
                if (settings.SaveText)
                {
                    RtfTextConvertSettings textConvertSettings = new RtfTextConvertSettings();
                    textConvertSettings.IsShowHiddenText = settings.ShowHiddenText;
                    textConverter = new RtfTextConverter(textConvertSettings);
                }

                // image converter
                RtfImageConverter imageConverter = null;
                if (settings.SaveImage)
                {
                    RtfVisualImageAdapter imageAdapter = new RtfVisualImageAdapter(
                        settings.ImageFileNamePattern,
                        settings.ImageFormat);
                    RtfImageConvertSettings imageConvertSettings = new RtfImageConvertSettings(imageAdapter);
                    imageConvertSettings.ImagesPath      = settings.DestinationDirectory;
                    imageConvertSettings.ScaleImage      = settings.ScaleImage;
                    imageConvertSettings.BackgroundColor = settings.ImageBackgroundColor;
                    imageConvertSettings.ScaleImage      = !settings.UnscaledImages;
                    if (settings.ExtendedImageScale)
                    {
                        imageConvertSettings.ScaleExtension = 0.5f;
                    }
                    imageConverter = new RtfImageConverter(imageConvertSettings);
                }

                // rtf interpreter
                RtfInterpreterSettings interpreterSettings = new RtfInterpreterSettings();
                interpreterSettings.IgnoreDuplicatedFonts = settings.IgnoreDuplicatedFonts;
                interpreterSettings.IgnoreUnknownFonts    = settings.IgnoreUnknownFonts;

                // interpret the rtf structure using the extractors
                RtfInterpreterTool.Interpret(rtfStructure, interpreterLogger, textConverter, imageConverter);

                // get the resulting text
                if (textConverter != null)
                {
                    text = textConverter.PlainText;
                }
            }
            catch (Exception e)
            {
                if (interpreterLogger != null)
                {
                    interpreterLogger.Dispose();
                }

                Console.WriteLine("error while interpreting rtf: " + e.Message);
                ExitCode = ProgramExitCode.InterpretRtf;
                return(null);
            }

            return(text);
        }         // InterpretRtf
Пример #8
0
        }         // ExitCode

        // ----------------------------------------------------------------------
        public void Execute()
        {
            Console.WriteLine(string.Concat(
                                  ApplicationInfo.ShortCaption,
                                  ", ",
                                  ApplicationInfo.Copyright));

            // program settings
            if (ValidateProgramSettings() == false)
            {
                return;
            }

            // parse rtf
            IRtfGroup rtfStructure = ParseRtf();

            if (ExitCode != ProgramExitCode.Successfully)
            {
                return;
            }

            // destination directory
            EnsureDestinationDirectory();
            if (ExitCode != ProgramExitCode.Successfully)
            {
                return;
            }

            // image handling
            RtfVisualImageAdapter imageAdapter = new RtfVisualImageAdapter(
                settings.ImageFileNamePattern,
                settings.ImageFormat);

            // interpret rtf
            IRtfDocument rtfDocument = InterpretRtf(rtfStructure, imageAdapter);

            if (ExitCode != ProgramExitCode.Successfully)
            {
                return;
            }

            // convert to hmtl
            string html = ConvertHmtl(rtfDocument, imageAdapter);

            if (ExitCode != ProgramExitCode.Successfully)
            {
                return;
            }

            // save html
            string fileName = SaveHmtl(html);

            if (ExitCode != ProgramExitCode.Successfully)
            {
                return;
            }

            // open html file
            OpenHtmlFile(fileName);
            if (ExitCode != ProgramExitCode.Successfully)
            {
                return;
            }

            // display html text
            DisplayHtmlText(html);
            if (ExitCode != ProgramExitCode.Successfully)
            {
                return;
            }

            Console.WriteLine("successfully converted RTF to HTML in " + settings.DestinationDirectory);
        }         // Execute
Пример #9
0
        public static string RtfToHtml(this string str, RtfHtmlConvertSettings htmlConvertSettings, bool throwOnError = false, IRtfParserListener listener = null, string destinationDirectory = null, RtfVisualImageAdapter imageAdapter = null, string imageAdapterLogFile = null, RtfImageConvertSettings imageConvertSettings = null)
        {
            IRtfGroup    rtfStructure;
            IRtfDocument rtfDocument = null;

            try
            {
                using (var stream = str.ToStream())
                {
                    // parse the rtf structure
                    var           structureBuilder = new RtfParserListenerStructureBuilder();
                    var           parser           = new RtfParser(structureBuilder);
                    DirectoryInfo destination;

                    if (destinationDirectory != null)
                    {
                        destination = new DirectoryInfo(destinationDirectory);
                    }

                    parser.IgnoreContentAfterRootGroup = true; // support WordPad documents

                    if (listener != null)
                    {
                        parser.AddParserListener(listener);
                    }

                    parser.Parse(new RtfSource(stream));
                    rtfStructure = structureBuilder.StructureRoot;

                    ThrowOnUnexpectedExitCode();

                    rtfDocument = InterpretRtf(rtfStructure, imageAdapter, imageAdapterLogFile, imageConvertSettings, throwOnError);

                    if (throwOnError)
                    {
                        ThrowOnUnexpectedExitCode();
                    }

                    // convert to hmtl

                    string html = ConvertHmtl(rtfDocument, imageAdapter, htmlConvertSettings, throwOnError);

                    if (throwOnError)
                    {
                        ThrowOnUnexpectedExitCode();
                    }

                    return(html);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine("RtfToHtml parser failed with error: {0}", e.Message);
            }

            return(null);
        }
        public static string ConvertRtf2Html(string text, int slideID)
        {
            // parser
            text = text.Replace("\\tab", "$$$$$$$$");
            text = text.Replace("li240", "$$$$$$$$$$$$$$$$");
            text = text.Replace("li480", "$$$$$$$$$$$");
            text = text.Replace("ri480", "$$$$$$$$$$$");
            text = text.Replace("li720", "$$$$$$$$$$$$$$");



            IRtfGroup rtfStructure = ParseRtf(text);

            if (rtfStructure == null)
            {
                return(string.Empty);
            }

            // image converter

            RtfVisualImageAdapter imageAdapter = new RtfVisualImageAdapter(
                Path.GetFileNameWithoutExtension(Form1.currentFile) + "\\Slide" + slideID + "_{0}{1}", ImageFormat.Jpeg);
            RtfImageConvertSettings imageConvertSettings = new RtfImageConvertSettings(imageAdapter);

            imageConvertSettings.ScaleImage = true; // scale images'

            string filePath      = Path.GetDirectoryName(Form1.currentFile);
            string folder        = Path.GetFileNameWithoutExtension(Form1.currentFile);
            string directoryPath = filePath + "\\" + folder;

            //string directoryPath = @"C:\Users\Knwal\Documents\Presentation Tool\Presentation Tool\Preview\";

            imageConvertSettings.ImagesPath = directoryPath;
            RtfImageConverter      imageConverter      = new RtfImageConverter(imageConvertSettings);
            Stream                 st                  = GenerateStreamFromString(text);
            RtfInterpreterSettings interpreterSettings = new RtfInterpreterSettings();
            IRtfDocument           rtfDocument         = RtfInterpreterTool.BuildDoc(rtfStructure, interpreterSettings, null, imageConverter);

            // html converter

            RtfHtmlConvertSettings htmlConvertSettings = new RtfHtmlConvertSettings(imageAdapter);

            htmlConvertSettings.StyleSheetLinks.Add("default.css");
            htmlConvertSettings.ConvertScope = RtfHtmlConvertScope.Content;
            //htmlConvertSettings.GetImageUrl();

            RtfHtmlConverter htmlConverter = new RtfHtmlConverter(rtfDocument, htmlConvertSettings);
            string           str           = htmlConverter.Convert();

            str = str.Replace("  ", "&nbsp;&nbsp;");
            str = str.Replace("$$$$$$$$", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
            str = str.Replace("$$$", "&nbsp;&nbsp;&nbsp;");
            //str= str.Replace("#1#","");
            //str = str.Replace("#2#", "");
            //str = str.Replace("#3#", "");
            //str = str.Replace("#4#", "");
            //str = str.Replace("#5#", "");
            //str = str.Replace("#6#", "");
            //str = str.Replace("#7#", "");
            //str = str.Replace("#8#", "");
            //str = str.Replace("#9#", "");


            return(str);
        } // ConvertRtf2Html
Пример #11
0
        }         // ExitCode

        // ----------------------------------------------------------------------
        public bool Execute()
        {
            // program settings
            if (ValidateProgramSettings() == false)
            {
                return(false);
            }

            // parse rtf
            IRtfGroup rtfStructure = ParseRtf();

            if (ExitCode != ProgramExitCode.Successfully)
            {
                return(false);
            }

            // destination directory
            EnsureDestinationDirectory();
            if (ExitCode != ProgramExitCode.Successfully)
            {
                return(false);
            }

            // image handling
            RtfVisualImageAdapter imageAdapter = new RtfVisualImageAdapter(
                this.settings.ImageFileNamePattern,
                this.settings.ImageFormat);

            // interpret rtf
            IRtfDocument rtfDocument = InterpretRtf(rtfStructure, imageAdapter);

            if (ExitCode != ProgramExitCode.Successfully)
            {
                return(false);
            }

            // convert to hmtl
            string html = ConvertHmtl(rtfDocument, imageAdapter);

            if (ExitCode != ProgramExitCode.Successfully)
            {
                return(false);
            }

            // save html
            string fileName = SaveHmtl(html);

            if (ExitCode != ProgramExitCode.Successfully)
            {
                return(false);
            }

            // open html file
            OpenHtmlFile(fileName);
            if (ExitCode != ProgramExitCode.Successfully)
            {
                return(false);
            }

            // display html text
            DisplayHtmlText(html);
            if (ExitCode != ProgramExitCode.Successfully)
            {
                return(false);
            }

            return(true);
        }         // Execute