But the problem is,the saved image is blurry.
Expand|Select|Wrap|Line Numbers
- else if (content is it.stefanochizzolini.clown.documents.contents.objects.GraphicsObject)
- {
- /*=============================================================================
- * TO EXTRACT THE GRAPHICAL OBJECT WITHIN THE PDF
- =============================================================================*/
- ContentScanner.GraphicsObjectWrapper objectWrapper = level.CurrentWrapper;
- if (objectWrapper == null)
- {
- continue;
- }
- /*
- NOTE: Images can be represented on a page either as
- external objects (XObject) or inline objects.
- */
- SizeF? imageSize = null; // Image native size.
- /*if (objectWrapper is PdfDataObject)
- {
- ContentScanner.GraphicsObjectWrapper gobjectwrapper=(ContentScanner.GraphicsObjectWrapper)gobjectwrapper;
- it.stefanochizzolini.clown.objects.PdfDataObject pdobjt=gobjectwrapper
- }*/
- //if(objectWrapper is Image)
- //{
- // }
- if (objectWrapper is ContentScanner.XObjectWrapper)
- {
- ContentScanner.XObjectWrapper xObjectWrapper = (ContentScanner.XObjectWrapper)objectWrapper;
- it.stefanochizzolini.clown.documents.contents.xObjects.XObject Xobject = xObjectWrapper.XObject;
- // Is the external object an image?
- if (Xobject is it.stefanochizzolini.clown.documents.contents.xObjects.ImageXObject)
- {
- txtOutput.Text = txtOutput.Text + Environment.NewLine +
- "External Image '" + xObjectWrapper.Name + "' (" + Xobject.BaseObject + ")"; // Image key and indirect reference.
- imageSize = Xobject.Size; // Image native size.
- PdfDataObject dataObject = Xobject.BaseDataObject;
- ;
- PdfDictionary header = ((PdfStream)dataObject).Header;
- if (header.ContainsKey(PdfName.Type) && header[PdfName.Type].Equals(PdfName.XObject) && header[PdfName.Subtype].Equals(PdfName.Image))
- {
- if (header[PdfName.Filter].Equals(PdfName.DCTDecode)) // JPEG image.
- {
- // Get the image data (keeping it encoded)!
- IBuffer body1 = ((PdfStream)dataObject).GetBody(false);
- // Export the image!
- ExportImage(
- body1,
- txtOutputPath.Text + System.IO.Path.DirectorySeparatorChar + "Image_" + (index++) + ".bmp"
- );
- }
- }
- }
- private void ExportImage(IBuffer data, string outputPath)
- {
- FileStream outputStream;
- try
- { outputStream = new FileStream(outputPath, FileMode.CreateNew); }
- catch (Exception e)
- { throw new Exception(outputPath + " file couldn't be created.", e); }
- try
- {
- BinaryWriter writer = new BinaryWriter(outputStream);
- writer.Write(data.ToByteArray());
- writer.Close();
- outputStream.Close();
- }
- catch (Exception e)
- { throw new Exception(outputPath + " file writing has failed.", e); }
- Console.WriteLine("Output: " + outputPath);
- }