Ejemplo n.º 1
0
        public IList <PdfTextFragment> GetTextWithinRegion(PdfSourceRect markedRect, int firstPage, int lastPage)
        {
            IList <PdfTextFragment> containedFragments = new List <PdfTextFragment>();
            IList <int>             pageRange          = Enumerable.Range(firstPage, lastPage - firstPage + 1).ToList();

            //intersect the markedRect with the textFragments (transformed to canvas coordinates)
            foreach (int page in pageRange)
            {
                IList <PdfTextFragment> textFragments;
                try
                {
                    textFragments = documentManager.GetTextFragments(page);
                }
                catch (PdfRequestCanceledException)
                {
                    continue;
                }
                foreach (PdfTextFragment frag in textFragments)
                {
                    PdfSourceRect rectOnCanvas = frag.RectOnUnrotatedPage.CalculateRectOnCanvas(GetPageRect(page), Rotation);
                    if (markedRect.IsEmpty || rectOnCanvas.intersectsDouble(markedRect))
                    {
                        containedFragments.Add(frag);
                    }
                }
            }
            return(containedFragments);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Checks whether the bounding rectangle of this annotation is intersected by a rectangle.
        /// If OnIntersect is false the markedRect has to completly contain the bounding rectangle.
        /// </summary>
        /// <param name="markedRect"></param>
        /// <param name="onIntersect"></param>
        /// <returns></returns>
        public bool ContainsOrIntersectsWithRect(PdfSourceRect markedRect, bool onIntersect)
        {
            PdfSourceRect annotRect = new PdfSourceRect(Rect[0], Rect[1], Rect[2] - Rect[0], Rect[3] - Rect[1]);

            if (onIntersect)
            {
                return(markedRect.intersectsDouble(annotRect));
            }
            return(markedRect.contains(annotRect));
        }