Пример #1
0
        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;
        }