Ejemplo n.º 1
0
 public void AddParserListener(IRtfParserListener listener)
 {
     if (listener == null)
     {
         throw new ArgumentNullException(nameof(listener));
     }
     if (_listeners == null)
     {
         _listeners = new ArrayList();
     }
     if (!_listeners.Contains(listener))
     {
         _listeners.Add(listener);
     }
 } // AddParserListener
Ejemplo n.º 2
0
 // ----------------------------------------------------------------------
 public void AddParserListener( IRtfParserListener listener )
 {
     if ( listener == null )
     {
         throw new ArgumentNullException( "listener" );
     }
     if ( listeners == null )
     {
         listeners = new ArrayList();
     }
     if ( !listeners.Contains( listener ) )
     {
         listeners.Add( listener );
     }
 }
Ejemplo n.º 3
0
        }         // IgnoreContentAfterRootGroup

        // ----------------------------------------------------------------------
        public void AddParserListener(IRtfParserListener listener)
        {
            if (listener == null)
            {
                throw new ArgumentNullException("listener");
            }
            if (this.listeners == null)
            {
                this.listeners = new ArrayList();
            }
            if (!this.listeners.Contains(listener))
            {
                this.listeners.Add(listener);
            }
        }         // AddParserListener
Ejemplo n.º 4
0
        } // AddParserListener

        public void RemoveParserListener(IRtfParserListener listener)
        {
            if (listener == null)
            {
                throw new ArgumentNullException(nameof(listener));
            }
            if (_listeners != null)
            {
                if (_listeners.Contains(listener))
                {
                    _listeners.Remove(listener);
                }
                if (_listeners.Count == 0)
                {
                    _listeners = null;
                }
            }
        } // RemoveParserListener
Ejemplo n.º 5
0
		} // AddParserListener

		// ----------------------------------------------------------------------
		public void RemoveParserListener( IRtfParserListener listener )
		{
			if ( listener == null )
			{
				throw new ArgumentNullException( "listener" );
			}
			if ( this.listeners != null )
			{
				if ( this.listeners.Contains( listener ) )
				{
					this.listeners.Remove( listener );
				}
				if ( this.listeners.Count == 0 )
				{
					this.listeners = null;
				}
			}
		} // RemoveParserListener
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
0
 public RtfParser(TextReader reader, IRtfParserListener listener)
 {
     _reader   = reader;
     _listener = listener;
 }