示例#1
0
        private void ParseAndHighlight(String input, String output, bool singleCharacters)
        {
            PdfReader  reader  = new PdfReader(input);
            FileStream fos     = new FileStream(output, FileMode.Create);
            PdfStamper stamper = new PdfStamper(reader, fos);

            PdfReaderContentParser parser           = new PdfReaderContentParser(reader);
            MyRenderListener       myRenderListener = singleCharacters ? new MyCharacterRenderListener() : new MyRenderListener();

            for (int pageNum = 1; pageNum <= reader.NumberOfPages; pageNum++)
            {
                List <Rectangle> rectangles = parser.ProcessContent(pageNum, myRenderListener).GetRectangles();
                PdfContentByte   canvas     = stamper.GetOverContent(pageNum);
                canvas.SetLineWidth(0.5f);
                canvas.SetColorStroke(BaseColor.RED);
                foreach (Rectangle rectangle in rectangles)
                {
                    canvas.Rectangle(rectangle.Left, rectangle.Bottom, rectangle.Width, rectangle.Height);
                    canvas.Stroke();
                }
            }
            stamper.Close();
            fos.Close();
            reader.Close();
        }
示例#2
0
        /// <summary>
        /// Parses a page of a PDF file resulting in a list of
        /// TextItem and ImageItem objects.
        /// </summary>
        /// <param name="reader">a PdfReader</param>
        /// <param name="page">the page number of the page that needs to be parsed</param>
        /// <param name="header_height">header_height the height of the top margin</param>
        /// <returns>a list of TextItem and ImageItem objects</returns>
        public List <MyItem> GetContentItems(PdfReader reader, int page, float header_height)
        {
            PdfReaderContentParser parser     = new PdfReaderContentParser(reader);
            Rectangle        pageSize         = reader.GetPageSize(page);
            MyRenderListener myRenderListener = new MyRenderListener(pageSize.Top - header_height);

            parser.ProcessContent(page, myRenderListener);
            return(myRenderListener.Items);
        }