public virtual void RenderImage(ImageRenderInfo renderInfo) { Matrix imageCtm = renderInfo.GetImageCTM(); Vector a = (new Vector(0, 0, 1)).Cross(imageCtm); Vector b = (new Vector(1, 0, 1)).Cross(imageCtm); Vector c = (new Vector(0, 1, 1)).Cross(imageCtm); Vector d = (new Vector(1, 1, 1)).Cross(imageCtm); LineSegment bottom = new LineSegment(a, b); LineSegment top = new LineSegment(c, d); if (textRectangle == null) { textRectangle = bottom.GetBoundingRectange(); } else { textRectangle.Add(bottom.GetBoundingRectange()); } textRectangle.Add(top.GetBoundingRectange()); }
//Called for each image public void RenderImage(iTextSharp.text.pdf.parser.ImageRenderInfo renderInfo) { //Get the basic image info var img = renderInfo.GetImage().GetDrawingImage(); var imgWidth = img.Width; var imgHeight = img.Height; img.Dispose(); //Get the current transformation matrix var ctm = renderInfo.GetImageCTM(); var ctmWidth = ctm[iTextSharp.text.pdf.parser.Matrix.I11]; var ctmHeight = ctm[iTextSharp.text.pdf.parser.Matrix.I22]; //Create new key for our page number if it doesn't exist already if (!this.Pages.ContainsKey(CurrentPage)) { this.Pages.Add(CurrentPage, new List <ImageScaleInfo>()); } //Add our image info to this page this.Pages[CurrentPage].Add(new ImageScaleInfo(imgWidth, imgHeight, ctmWidth, ctmHeight, this.CurrentPageUnits)); }