protected static bool ReadContent(IDocumentReader reader, FCS.Lite.Base.DocumentReader docReader) { using (docReader) { FCS.Lite.Base.DocumentText docText; try { docText = docReader.Read(); } catch (FileNotFoundException) { Logger.LogInfo("The reader has failed. The most likely reason is that this is an unknown file type."); return false; } if (docText == null) return false; // nothing we can do here - our reader failed List<FCS.Lite.Base.IAbstractTextType>.Enumerator enumer = docText.TextTypeEnumerator(); while (enumer.MoveNext()) { switch (enumer.Current.GetContentType()) { case Workshare.FCS.Lite.Base.ContentType.Paragraph: ProcessTextType(reader, "Paragraph", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Header: ProcessTextType(reader, "Header", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Footer: ProcessTextType(reader, "Footer", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Comment: ProcessTextType(reader, "Comment", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Footnote: ProcessTextType(reader, "Footnote", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Endnote: ProcessTextType(reader, "Endnote", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.TrackChange: ProcessTextType(reader, "TrackChange", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.TextBox: ProcessTextType(reader, "TextBox", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Reviewer: ProcessTextType(reader, "Reviewer", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.HiddenText: ProcessTextType(reader, "HiddenText", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.SmallText: ProcessTextType(reader, "SmallText", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.WhiteText: ProcessTextType(reader, "WhiteText", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.AttachedTemplate: ProcessTextType(reader, "AttachedTemplate", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.SmartTag: ProcessTextType(reader, "SmartTag", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Version: ProcessTextType(reader, "Version", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.AutoVersion: ProcessTextType(reader, "AutoVersion", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Field: ProcessTextType(reader, "Field", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Hyperlink: ProcessTextType(reader, "Hyperlink", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.RoutingSlip: ProcessTextType(reader, "RoutingSlip", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Variable: ProcessTextType(reader, "Variable", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.HiddenSlide: ProcessTextType(reader, "HiddenSlide", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.SpeakerNote: ProcessTextType(reader, "SpeakerNote", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Links: ProcessTextType(reader, "Link", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.HiddenSheet: ProcessTextType(reader, "HiddenSheet", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.HiddenRow: ProcessTextType(reader, "HiddenRow", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.HiddenColumn: ProcessTextType(reader, "HiddenColumn", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.CellText: ProcessTextType(reader, "CellText", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.CustomProperty: ProcessCustomProperties(reader, enumer.Current); // For additional info... ProcessTextType(reader, "CustomProperty", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.WorkshareProperty: ProcessCustomProperties(reader, enumer.Current); // For additional info... ProcessTextType(reader, "WorkshareProperty", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.Macro: ProcessTextType(reader, "Macro", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.RedactedText: ProcessTextType(reader, "RedactedText", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.BuiltInProperty: ProcessTextType(reader, "BuiltInProperty", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.DocumentStatistic: ProcessTextType(reader, "DocumentStatistic", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.InkAnnotation: ProcessTextType(reader, "InkAnnotation", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.PDFProperties: ProcessTextType(reader, "Properties", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.PDFMarkups: ProcessTextType(reader, "Markups", enumer.Current); break; case Workshare.FCS.Lite.Base.ContentType.WorkshareStyle: { if (OptionsHelper.DetectWorkshareStyles) { ProcessTextType(reader, "WorkshareStyle", enumer.Current); } break; } default: throw new ApplicationException("Invalid Content Type in DocumentText! Enums out of date."); } } } return true; }