} // RtfImageConvertSettings // ---------------------------------------------------------------------- public RtfImageConvertSettings( IRtfVisualImageAdapter imageAdapter ) { if ( imageAdapter == null ) { throw new ArgumentNullException( "imageAdapter" ); } this.imageAdapter = imageAdapter; } // RtfImageConvertSettings
} // RtfImageConvertSettings // ---------------------------------------------------------------------- public RtfImageConvertSettings(IRtfVisualImageAdapter imageAdapter) { if (imageAdapter == null) { throw new ArgumentNullException("imageAdapter"); } this.imageAdapter = imageAdapter; } // RtfImageConvertSettings
} // 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
} // 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
} // 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
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); }
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); }
} // 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
} // 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; }