} // RtfImageConvertSettings

		// ----------------------------------------------------------------------
		public RtfImageConvertSettings( IRtfVisualImageAdapter imageAdapter )
		{
			if ( imageAdapter == null )
			{
				throw new ArgumentNullException( "imageAdapter" );
			}

			this.imageAdapter = imageAdapter;
		} // RtfImageConvertSettings
Example #2
0
        }         // RtfImageConvertSettings

        // ----------------------------------------------------------------------
        public RtfImageConvertSettings(IRtfVisualImageAdapter imageAdapter)
        {
            if (imageAdapter == null)
            {
                throw new ArgumentNullException("imageAdapter");
            }

            this.imageAdapter = imageAdapter;
        }         // RtfImageConvertSettings
Example #3
0
        } // RtfHtmlConvertSettings

        public RtfHtmlConvertSettings(IRtfVisualImageAdapter imageAdapter, RtfHtmlConvertScope convertScope)
        {
            if (imageAdapter == null)
            {
                throw new ArgumentNullException(nameof(imageAdapter));
            }

            ImageAdapter           = imageAdapter;
            ConvertScope           = convertScope;
            VisualHyperlinkPattern = DefaultVisualHyperlinkPattern;
        } // RtfHtmlConvertSettings
        // ----------------------------------------------------------------------
        public RtfHtmlConvertSettings( IRtfVisualImageAdapter imageAdapter, RtfHtmlConvertScope convertScope )
        {
            if ( imageAdapter == null )
            {
                throw new ArgumentNullException( "imageAdapter" );
            }

            this.imageAdapter = imageAdapter;
            this.convertScope = convertScope;
            visualHyperlinkPattern = DefaultVisualHyperlinkPattern;
        }
        }         // RtfHtmlConvertSettings

        // ----------------------------------------------------------------------
        public RtfHtmlConvertSettings(IRtfVisualImageAdapter imageAdapter, RtfHtmlConvertScope convertScope)
        {
            if (imageAdapter == null)
            {
                throw new ArgumentNullException("imageAdapter");
            }

            this.imageAdapter           = imageAdapter;
            this.convertScope           = convertScope;
            this.visualHyperlinkPattern = DefaultVisualHyperlinkPattern;
        }         // RtfHtmlConvertSettings
Example #6
0
        }         // EnsureDestinationDirectory

        // ----------------------------------------------------------------------
        private IRtfDocument InterpretRtf(IRtfGroup rtfStructure, IRtfVisualImageAdapter imageAdapter)
        {
            IRtfDocument rtfDocument;
            RtfInterpreterListenerFileLogger interpreterLogger = null;

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

                // image converter
                RtfImageConverter imageConverter = null;
                if (settings.SaveImage)
                {
                    RtfImageConvertSettings imageConvertSettings = new RtfImageConvertSettings(imageAdapter);
                    imageConvertSettings.ImagesPath      = settings.DestinationDirectory;
                    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
                rtfDocument = RtfInterpreterTool.BuildDoc(rtfStructure, interpreterSettings, interpreterLogger, imageConverter);
            }
            catch (Exception e)
            {
                if (interpreterLogger != null)
                {
                    interpreterLogger.Dispose();
                }

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

            return(rtfDocument);
        }         // InterpretRtf
Example #7
0
        }         // EnsureDestinationDirectory

        // ----------------------------------------------------------------------
        private IRtfDocument InterpretRtf(IRtfGroup rtfStructure, IRtfVisualImageAdapter imageAdapter)
        {
            IRtfDocument rtfDocument;
            RtfInterpreterListenerFileLogger interpreterLogger = null;

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

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

                // rtf parser
                // interpret the rtf structure using the extractors
                rtfDocument = RtfInterpreterTool.BuildDoc(rtfStructure, interpreterLogger, imageConverter);
            }
            catch (Exception e)
            {
                if (interpreterLogger != null)
                {
                    interpreterLogger.Dispose();
                }

                MessageBox(IntPtr.Zero, "Error while interpreting RTF:\n" + e.Message, "Itenso.Rtf2Html", 0x010000);
                ExitCode = ProgramExitCode.InterpretRtf;
                return(null);
            }

            return(rtfDocument);
        }         // InterpretRtf
        }         // InterpretRtf

        // ----------------------------------------------------------------------
        private string ConvertHmtl(IRtfDocument rtfDocument, IRtfVisualImageAdapter imageAdapter)
        {
            string html;

            try
            {
                RtfHtmlConvertSettings htmlConvertSettings = new RtfHtmlConvertSettings(imageAdapter);
                if (settings.CharacterSet != null)
                {
                    htmlConvertSettings.CharacterSet = settings.CharacterSet;
                }
                htmlConvertSettings.Title                = settings.SourceFileNameWithoutExtension;
                htmlConvertSettings.ImagesPath           = settings.ImagesPath;
                htmlConvertSettings.IsShowHiddenText     = settings.ShowHiddenText;
                htmlConvertSettings.UseNonBreakingSpaces = settings.UseNonBreakingSpaces;
                if (settings.ConvertScope != RtfHtmlConvertScope.None)
                {
                    htmlConvertSettings.ConvertScope = settings.ConvertScope;
                }
                if (!string.IsNullOrEmpty(settings.StyleSheets))
                {
                    string[] styleSheets = settings.StyleSheets.Split(',');
                    htmlConvertSettings.StyleSheetLinks.AddRange(styleSheets);
                }
                htmlConvertSettings.ConvertVisualHyperlinks = settings.ConvertVisualHyperlinks;
                if (!string.IsNullOrEmpty(settings.VisualHyperlinkPattern))
                {
                    htmlConvertSettings.VisualHyperlinkPattern = settings.VisualHyperlinkPattern;
                }
                htmlConvertSettings.SpecialCharsRepresentation = settings.SpecialCharsRepresentation;

                RtfHtmlConverter htmlConverter = new RtfHtmlConverter(rtfDocument, htmlConvertSettings);
                if (!settings.UseInlineStyles)
                {
                    htmlConverter.StyleConverter = new RtfEmptyHtmlStyleConverter();
                }
                html = htmlConverter.Convert();
            }
            catch (Exception e)
            {
                Console.WriteLine("error while converting to html: " + e.Message);
                ExitCode = ProgramExitCode.ConvertHtml;
                return(null);
            }

            return(html);
        }         // ConvertHmtl
Example #9
0
        private static IRtfDocument InterpretRtf(IRtfGroup rtfStructure, IRtfVisualImageAdapter imageAdapter, string imageAdapterLogFile = null, RtfImageConvertSettings imageConvertSettings = null, bool throwOnError = false)
        {
            IRtfDocument rtfDocument;
            RtfInterpreterListenerFileLogger interpreterLogger = null;

            try
            {
                // logger
                if (imageAdapterLogFile != null)
                {
                    interpreterLogger = new RtfInterpreterListenerFileLogger(imageAdapterLogFile);
                }

                // image converter
                RtfImageConverter imageConverter = null;

                if (imageConvertSettings != null)
                {
                    imageConverter = new RtfImageConverter(imageConvertSettings);
                }

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

                // interpret the rtf structure using the extractors
                rtfDocument = RtfInterpreterTool.BuildDoc(rtfStructure, interpreterSettings, interpreterLogger, imageConverter);
            }
            catch (Exception e)
            {
                if (interpreterLogger != null)
                {
                    interpreterLogger.Dispose();
                }

                if (throwOnError)
                {
                    ThrowOnUnexpectedExitCode(e);
                }

                return(null);
            }

            return(rtfDocument);
        }
Example #10
0
        private static string ConvertHmtl(IRtfDocument rtfDocument, IRtfVisualImageAdapter imageAdapter, RtfHtmlConvertSettings htmlConvertSettings, bool throwOnError = false)
        {
            string html = null;

            try
            {
                var htmlConverter = new RtfHtmlConverter(rtfDocument, htmlConvertSettings);
                html = htmlConverter.Convert();
            }
            catch (Exception e)
            {
                if (throwOnError)
                {
                    ThrowOnUnexpectedExitCode(e);
                }
            }

            return(html);
        }
Example #11
0
        } // EnsureDestinationDirectory

        // ----------------------------------------------------------------------
        private IRtfDocument InterpretRtf(IRtfGroup rtfStructure, IRtfVisualImageAdapter imageAdapter)
        {
            IRtfDocument rtfDocument;

            try
            {
                // image converter
                RtfImageConverter imageConverter = null;
                if (settings.SaveImage)
                {
                    RtfImageConvertSettings imageConvertSettings = new RtfImageConvertSettings(imageAdapter);
                    imageConvertSettings.ImagesPath = settings.DestinationDirectory;
                    if (settings.ImageBackgroundColor.HasValue)
                    {
                        imageConvertSettings.BackgroundColor = new Model.RtfColor(settings.ImageBackgroundColor.Value.R
                                                                                  , settings.ImageBackgroundColor.Value.G, settings.ImageBackgroundColor.Value.B);
                    }
                    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
                rtfDocument = RtfInterpreterTool.BuildDoc(rtfStructure, interpreterSettings, imageConverter);
            }
            catch (Exception e)
            {
                Console.WriteLine("error while interpreting rtf: " + e.Message);
                ExitCode = ProgramExitCode.InterpretRtf;
                return(null);
            }

            return(rtfDocument);
        } // InterpretRtf
Example #12
0
        } // RtfHtmlConvertSettings

        public RtfHtmlConvertSettings(IRtfVisualImageAdapter imageAdapter) :
            this(imageAdapter, RtfHtmlConvertScope.All)
        {
        } // RtfHtmlConvertSettings
 // ----------------------------------------------------------------------
 public RtfHtmlConvertSettings( IRtfVisualImageAdapter imageAdapter )
     : this(imageAdapter, RtfHtmlConvertScope.All)
 {
 }
        // ----------------------------------------------------------------------
        private IRtfDocument InterpretRtf( IRtfGroup rtfStructure, IRtfVisualImageAdapter imageAdapter )
        {
            IRtfDocument rtfDocument;
            RtfInterpreterListenerFileLogger interpreterLogger = null;
            try
            {
                // logger
                if ( settings.LogInterpreter )
                {
                    string logFileName = settings.BuildDestinationFileName(
                        settings.LogDirectory,
                        RtfInterpreterListenerFileLogger.DefaultLogFileExtension );
                    interpreterLogger = new RtfInterpreterListenerFileLogger( logFileName );
                }

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

                // rtf parser
                // interpret the rtf structure using the extractors
                rtfDocument = RtfInterpreterTool.BuildDoc( rtfStructure, interpreterLogger, imageConverter );

            }
            catch ( Exception e )
            {
                if ( interpreterLogger != null )
                {
                    interpreterLogger.Dispose();
                }

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

            return rtfDocument;
        }
        // ----------------------------------------------------------------------
        private string ConvertHmtl( IRtfDocument rtfDocument, IRtfVisualImageAdapter imageAdapter )
        {
            string html;

            try
            {
                RtfHtmlConvertSettings htmlConvertSettings = new RtfHtmlConvertSettings( imageAdapter );
                if ( settings.CharacterSet != null )
                {
                    htmlConvertSettings.CharacterSet = settings.CharacterSet;
                }
                htmlConvertSettings.Title = settings.SourceFileNameWithoutExtension;
                htmlConvertSettings.ImagesPath = settings.ImagesPath;
                htmlConvertSettings.IsShowHiddenText = settings.ShowHiddenText;
                htmlConvertSettings.UseNonBreakingSpaces = settings.UseNonBreakingSpaces;
                if ( settings.ConvertScope != RtfHtmlConvertScope.None )
                {
                    htmlConvertSettings.ConvertScope = settings.ConvertScope;
                }
                if ( !string.IsNullOrEmpty( settings.StyleSheets ) )
                {
                    string[] styleSheets = settings.StyleSheets.Split( ',' );
                    htmlConvertSettings.StyleSheetLinks.AddRange( styleSheets );
                }
                htmlConvertSettings.ConvertVisualHyperlinks = settings.ConvertVisualHyperlinks;
                if ( !string.IsNullOrEmpty( settings.VisualHyperlinkPattern ) )
                {
                    htmlConvertSettings.VisualHyperlinkPattern = settings.VisualHyperlinkPattern;
                }
                htmlConvertSettings.SpecialCharsRepresentation = settings.SpecialCharsRepresentation;

                RtfHtmlConverter htmlConverter = new RtfHtmlConverter( rtfDocument, htmlConvertSettings );
                html = htmlConverter.Convert();
            }
            catch ( Exception e )
            {
                Console.WriteLine( "error while converting to html: " + e.Message );
                ExitCode = ProgramExitCode.ConvertHtml;
                return null;
            }

            return html;
        }