예제 #1
0
        private IPartFilter GetSlidePartFilter(PartInfo rel, DocumentProcessingActions action, bool bBlockHiddenSlides)
        {
            int iSlideNumber = 0;
            if (m_ppf != null)
                iSlideNumber = m_ppf.GetSlidePositionFromRelId(rel.Id);

            PptxSlidePartFilter spf = new PptxSlidePartFilter(m_commonNamespaces, iSlideNumber);
            spf.Triggers.AddRange(PptxMetadataDefinitions.ParagraphText);

            if (AreWeInterestedIn(ContentType.Comment))
            {
                spf.Triggers.AddRange(PptxMetadataDefinitions.PostItNoteComment);
                spf.ListShapeWithPostItNoteComment = GetListOfSlideShapesWithPostItNoteComment(iSlideNumber);
            }

            if (AreWeInterestedIn(ContentType.TextBox))
                spf.Triggers.AddRange(PptxMetadataDefinitions.TextBoxes);

            if (AreWeInterestedIn(ContentType.HiddenSlide))
            {
                spf.Triggers.AddRange(PptxMetadataDefinitions.HiddenSlide(iSlideNumber));
                if (bBlockHiddenSlides &&
                    ActionIncludesCleaning(action) &&
                    IsSlideHidden(iSlideNumber))
                {
                    spf.BlockFilter = true;
                }
            }
            if (AreWeInterestedIn(ContentType.Hyperlink))
                spf.Triggers.AddRange(PptxMetadataDefinitions.Hyperlink);

            if (AreWeInterestedIn(ContentType.Field))
            {
                spf.Triggers.AddRange(PptxMetadataDefinitions.ActiveXControls);
                spf.Triggers.AddRange(PptxMetadataDefinitions.EmbeddedObjects);
                spf.ListGraphicFrameHasOLEObject = GetListOfSlideOLEObjectsInGraphicFrames(iSlideNumber);
            }
            if (AreWeInterestedIn(ContentType.Footer))
            {
                spf.Triggers.AddRange(PptxMetadataDefinitions.Footer);
                spf.Triggers.AddRange(PptxMetadataDefinitions.FooterOnSlide);
            }

            return spf as IPartFilter;
        }
예제 #2
0
        private void CollectPreProcessResultsForSlidePart(PartInfo rel, PptxSlidePartFilter pf)
        {
            if (pf != null && pf.SlideNumber != 0)
            {
                m_dictHiddenSlides.Add(pf.SlideNumber, pf.HiddenSlide);
                m_dictSlideTargets.Add(rel.Target, pf.SlideNumber);

                if (pf.SlideNumber > m_iMaxSlideNumber)
                    m_iMaxSlideNumber = pf.SlideNumber;

                m_dictSlideShapesWithPostItNoteComment.Add(pf.SlideNumber, pf.ListShapeWithPostItNoteComment);
                m_dictSlideOLEObjectsInGraphicFrames.Add(pf.SlideNumber, pf.ListGraphicFrameHasOLEObject);
            }
        }