// TODO refactor into interface /// <summary> /// Parses a stream into a /// <see cref="CssRuleSetParser"/> /// . /// </summary> /// <param name="stream">the stream</param> /// <param name="baseUrl">the base url</param> /// <returns> /// the resulting /// <see cref="iText.StyledXmlParser.Css.CssStyleSheet"/> /// </returns> /// <exception cref="System.IO.IOException">Signals that an I/O exception has occurred.</exception> public static CssStyleSheet Parse(Stream stream, String baseUrl) { CssParserStateController controller = new CssParserStateController(baseUrl); TextReader br = PortUtil.WrapInBufferedReader(new StreamReader(stream, Encoding.UTF8)); // TODO determine charset correctly DEVSIX-1458 char[] buffer = new char[8192]; int length; while ((length = br.Read(buffer, 0, buffer.Length)) > 0) { for (int i = 0; i < length; i++) { controller.Process(buffer[i]); } } return(controller.GetParsingResult()); }