public void RenderImage(ImageRenderInfo renderInfo) { PdfImageObject image = null; // renderInfo.GetImage(); try { image = renderInfo.GetImage(); if (image == null) { return; } ImageNames.Add(string.Format( "Image{0}.{1}", renderInfo.GetRef().Number, image.GetFileType() )); using (MemoryStream ms = new MemoryStream(image.GetImageAsBytes())) { Images.Add(ms.ToArray()); } } catch (Exception ie) { /* * pass-through; image type not supported by iText[Sharp]; e.g. jbig2 */ WFLogger.NLogger.ErrorException("ERROR: RenderImage failed!", ie); } }
public void RenderImage(ImageRenderInfo renderInfo) { PdfImageObject image = renderInfo.GetImage(); try { image = renderInfo.GetImage(); if (image == null) { return; } ImageNames.Add(string.Format( "Image{0}.{1}", renderInfo.GetRef().Number, image.GetFileType() )); using (MemoryStream ms = new MemoryStream(image.GetImageAsBytes())) { Images.Add(ms.ToArray()); } } catch (IOException ex) { throw ex; } }
private string GetStreamType(PdfObject obj) { if (obj == null) { return("unknown"); } if (obj.IsStream()) { var stream = (PRStream)obj; try { var pdfImage = new PdfImageObject(stream); var drawingImage = pdfImage.GetDrawingImage(); if (pdfImage != null) { return($"{drawingImage.Width}x{drawingImage.Height} {pdfImage.GetFileType()} Image"); } } catch (Exception ex) { var sb = new StringBuilder(); foreach (var item in stream.Keys) { var streamKeyValue = stream.Get(item); sb.Append(item + ":" + streamKeyValue + " "); } return(sb.ToString()); } } return(string.Empty); }
public void RenderImage(ImageRenderInfo renderInfo) { PdfImageObject image = null; try { image = renderInfo.GetImage(); if (image == null) { return; } ImageNames.Add(string.Format( "qrcode.{0}", image.GetFileType() )); using (MemoryStream ms = new MemoryStream(image.GetImageAsBytes())) { Images.Add(ms.ToArray()); } } catch (IOException ie) { throw ie; } }
// --------------------------------------------------------------------------- /** * @see com.itextpdf.text.pdf.parser.RenderListener#renderImage( * com.itextpdf.text.pdf.parser.ImageRenderInfo) */ public void RenderImage(ImageRenderInfo renderInfo) { try { PdfImageObject image = renderInfo.GetImage(); if (image == null /* * do not attempt to parse => jbig2 decoder not fully implemented. * THE JAVA EXAMPLE INCORRECTLY CREATES A CORRUPT JBIG2 IMAGE * BECAUSE THERE IS NO EXPLICIT CHECK. I POSTED TWICE TO THE MAILING * LIST, SINCE VERSION 5.1.3 BUT THE ERROR HAS NOT BEEN CORRECTED. */ || image.GetImageBytesType() == PdfImageObject.ImageBytesType.JBIG2 ) { return; } _imageNames.Add(string.Format( "Image{0}.{1}", renderInfo.GetRef().Number, image.GetFileType() )); _myImages.Add(image.GetImageAsBytes()); } catch { // pass through any other unsupported image types } }
private ImgFileType _GetFileType() { ImgFileType result = new ImgFileType(); result = ImgFileType.Unknown; PdfImageObject imageObject = null; try { imageObject = IsMask ? new PdfImageObject(_maskStream) : new PdfImageObject(_stream); } catch (UnsupportedPdfException) { return(ImgFileType.Bmp); } string fileType = imageObject.GetFileType().ToUpper(); switch (fileType) { case "PNG": result = ImgFileType.PNG; break; case "JBIG2": result = ImgFileType.JBIG2; break; case "JP2": result = ImgFileType.JP2; break; case "JPG": result = ImgFileType.JPG; break; case "TIF": result = ImgFileType.TIF; break; } if (result == ImgFileType.Unknown && (PixelFormat == PixelFormat.Format1bppIndexed || PixelFormat == PixelFormat.Format4bppIndexed)) { result = ImgFileType.Bmp; } if (result == ImgFileType.Unknown) { throw new Exception("Cant Get FileType"); } return(result); }
public void RenderImageOrg(ImageRenderInfo renderInfo) { PdfImageObject pdfimage = renderInfo.GetImage(); string imgtp = pdfimage.GetFileType(); String imageFileName = String.Format("{0}_{1:000}_{2}.{3}", _imgname, _currentPage, _imgNo, imgtp); imageFileName = _outputFolder + "\\" + imageFileName; var imageRawBytes = pdfimage.GetImageAsBytes(); File.WriteAllBytes(imageFileName, imageRawBytes); _imgNo++; }
public void RenderImage(ImageRenderInfo renderInfo) { PdfImageObject image = renderInfo.GetImage(); string fileType = image.GetFileType(); if (images.ContainsKey(fileType)) { images[fileType] = images[fileType] + 1; } else { images.Add(fileType, 1); } }
public void RenderImage(ImageRenderInfo renderInfo) { imageNumber++; expectingTitle = true; PdfImageObject imageObject = renderInfo.GetImage(); if (imageObject == null) { Console.WriteLine("Image {0} could not be read.", imageNumber); } else { File.WriteAllBytes(string.Format(format, imageNumber, imageObject.GetFileType()), imageObject.GetImageAsBytes()); } }
public void RenderImage(ImageRenderInfo renderInfo) { PdfImageObject pdfimage = renderInfo.GetImage(); string pp = pdfimage.GetImageBytesType().FileExtension; string imgtp = pdfimage.GetFileType(); if ("jpg".Equals(imgtp, StringComparison.OrdinalIgnoreCase) || "png".Equals(imgtp, StringComparison.OrdinalIgnoreCase) || "gif".Equals(imgtp, StringComparison.OrdinalIgnoreCase)) { } else { imgtp = pp; imgtp = "png"; } String imageFileName = String.Format("{0}_{1:000}_{2}.{3}", _imgname, _currentPage, _imgNo, imgtp); // imageFileName= _outputFolder+"\\"+_imgname+_currentPage.ToString("_000")+"_"+_imgNo+".png"; imageFileName = _outputFolder + "\\" + imageFileName; try{ using (Image dotnetImg = pdfimage.GetDrawingImage()) { if (dotnetImg != null) { if (_pageRotation == 270) { dotnetImg.RotateFlip(RotateFlipType.Rotate270FlipNone); } else if (_pageRotation == 90) { dotnetImg.RotateFlip(RotateFlipType.Rotate90FlipNone); } else if (_pageRotation == 180) { dotnetImg.RotateFlip(RotateFlipType.Rotate180FlipNone); } dotnetImg.Save(imageFileName); } } }catch (Exception ee) { System.Diagnostics.Debug.WriteLine(ee.StackTrace); } _imgNo++; }
public override void RenderImage(ImageRenderInfo renderInfo) { PdfImageObject image = renderInfo.GetImage(); if (image == null) { return; } int number = counter++; String filename = name + "-" + number + "." + image.GetFileType(); File.WriteAllBytes(outputPath + filename, image.GetImageAsBytes()); LineSegment segment = UNIT_LINE.TransformBy(renderInfo.GetImageCTM()); TextChunk location = new TextChunk("[" + filename + "]", segment.GetStartPoint(), segment.GetEndPoint(), 0f); List <TextChunk> locationalResult = (List <TextChunk>)field.GetValue(this); locationalResult.Add(location); }
public void RenderImage(ImageRenderInfo info) { PdfImageObject image = info.GetImage(); var fileType = image.GetFileType(); var imgBytes = image.GetImageAsBytes(); var imgDict = image.GetDictionary(); var imgInfo = "Unknown"; var filter = image.Get(PdfName.FILTER); if (filter != null) { imgInfo = filter.ToString().Replace(',', ' '); } var ctm = info.GetImageCTM(); var ctmWidth = ctm[Matrix.I11]; var ctmHeight = ctm[Matrix.I22]; int imgWidth = -1; int imgHeight = -1; int imgResolution = -1; PixelFormat imgFormat = PixelFormat.Undefined; if (imgInfo != "/JBIG2Decode" && imgInfo != "/JPXDecode") { var img = image.GetDrawingImage(); imgWidth = img.Width; imgHeight = img.Height; imgFormat = img.PixelFormat; imgResolution = Convert.ToInt32(img.VerticalResolution); img.Dispose(); } Images.Add(new PDFImageInfo() { ImageBytes = imgBytes.Length, ImageFormat = imgFormat.ToString(), ImageHeight = imgHeight, ImageWidth = imgWidth, ImageResolution = imgResolution, ImageInfo = imgInfo, ImageType = fileType }); }
public void RenderImage(ImageRenderInfo renderInfo) { PdfImageObject image = renderInfo.GetImage(); try { image = renderInfo.GetImage(); if (image == null) { return; } using (MemoryStream ms = new MemoryStream(image.GetImageAsBytes())) { Images.Add(ms.ToArray()); ImageExt.Add(image.GetFileType()); } } catch (IOException ie) { /* * pass-through; image type not supported by iText[Sharp]; e.g. jbig2 */ } }
public void RenderImage(ImageRenderInfo renderInfo) { try { PdfImageObject image = renderInfo.GetImage(); if (image == null || image.GetImageBytesType() == PdfImageObject.ImageBytesType.JBIG2) { return; } _imageNames.Add(string.Format("Image{0}.{1}", renderInfo.GetRef().Number, image.GetFileType())); _myImages.Add(image.GetImageAsBytes()); } catch { } }
private static void FindImages(string source, string target) { using (var pdf = new PdfReader(source)) { for (int pageNumber = 1, imageNumber = 1; pageNumber <= pdf.NumberOfPages; pageNumber++, imageNumber = 1) { FindPageImages(pdf.GetPageN(pageNumber), obj => { if (obj == null) { return; } var pdfObj = pdf.GetPdfObject(((PRIndirectReference)obj).Number); if (pdfObj == null || !pdfObj.IsStream()) { return; } var stream = (PdfStream)pdfObj; var subtype = stream.Get(PdfName.SUBTYPE); if (subtype == null || !subtype.Equals(PdfName.IMAGE)) { return; } var imageObj = new PdfImageObject((PRStream)stream); using (var image = imageObj.GetDrawingImage()) { image.Save(Path.Combine(target, $"Image {pageNumber} - {imageNumber++}.{imageObj.GetFileType()}")); } }); } } }
private void btnRemoveObject_Click(object sender, EventArgs e) { foreach (var item in lstSelectedImages.SelectedItems) { if (item is KeyValuePair <string, object> ) { var thisItem = (KeyValuePair <string, object>)item; var obj = thisItem.Value as PdfObject; if (obj != null && obj.IsStream()) { var stream = (PRStream)obj; byte[] b; try { b = PdfReader.GetStreamBytes(stream); } catch (Exception ex1) { b = PdfReader.GetStreamBytesRaw(stream); } var bytes = b; try { var pdfImage = new PdfImageObject(stream); picImage.Image = pdfImage.GetDrawingImage(); picImage.Image.Save(Path.GetDirectoryName(fileName) + "\\output\\" + DateTime.Now.Ticks.ToString() + "." + pdfImage.GetFileType()); PdfImage image = new PdfImage(MakeBlankImg(), "", null); ReplaceStream(stream, image); } catch (Exception ex) { tsMessage.Text = ex.Message; } } } SaveReaderToOutput(); } }