Tech Specs
How-to C#
How to Start Convert PDF Read PDF Build PDF Work with PDF Modules PDF Document PDF Pages Text Image Graph & Path Annotation, Markup & Drawing Redaction Security Digital Signature Forms Watermark Bookmark Link File Attachment File Metadata Printing Work with Other SDKs Barcode read Barcode create OCR Twain

C# PDF Image Editor Library
How to add image (png) to existing PDF file using c# .net

How to Use XDoc.PDF SDK for .NET to Insert & Add Image, Picture or Logo on PDF Page in C#.NET

  • An advanced PDF image processing SDK library allows users to insert images to adobe PDF document in C#.NET Class
  • Support .NET WinForms, ASP.NET MVC in IIS, ASP.NET Ajax, Azure cloud service, DNN (DotNetNuke), SharePoint
  • Free evaluation components for inserting images to PDF file in Visual C# .NET WinForms and ASP.NET web application
  • Free online C# source code for PDF image adding in Visual Studio .NET framework program
  • Create high resolution PDF file without image quality losing .NET console application
  • Add multiple images to multipage PDF document in .NET WinForms
  • Support various image formats, like Jpeg or Jpg, Png, Gif, Bmp, Tiff and other bitmap images
  • Import graphic picture, digital photo, signature and logo into PDF document
  • Ability to put image into specified PDF page position and save existing PDF file or output a new PDF file
  • An independent .NET view control supports preview PDF in ASPX webpage
  • Able to zoom and crop image and achieve image resizing
  • Insert images into PDF form field

How to insert and add image, picture, digital photo, scanned signature or logo into PDF document page in C#.NET class application? To help you solve this technical problem, we provide this C#.NET PDF image adding control, XDoc.PDF for .NET.

Similar to other toolkits from RasterEdge.com, this C#.NET PDF image adding control is also completely developed in .NET developing platform and compatible with .NET Framework 2.0 and later versions. Using this C# .NET image adding library control for PDF document, you can easily and quickly add an image, picture or logo to any position of specified PDF document file page.

Add an image to a PDF page with the specified position

It is an easy job to add, insert an image to the existing pdf file. To add an image to an existing PDF file:

  1. Create a Bitmap object from an image resource
  2. Get the PDF page you want to add an image to.
  3. Add the Bitmap object to the PDF page with specified position

String inputFilePath = Program.RootPath + "\\" + "1.pdf";
String outputFilePath = Program.RootPath + "\\" + "output.pdf";

//  load a sample image
Bitmap anImage = new Bitmap(Program.RootPath + "\\" + "1.png");

//  open the document
PDFDocument doc = new PDFDocument(inputFilePath);
//  get the first page
PDFPage page = (PDFPage)doc.GetPage(0);
//  set image position in the page: X = 100F, Y = 400F
PointF position = new PointF(100F, 400F);

//  add image to the page
PDFImageHandler.AddImage(page, anImage, position);

//  output the new document

Add a scaled Bitmap image to a page with aspect ratio

//  load a sample image
Bitmap bitmap = new Bitmap(Program.RootPath + "\\" + "1.png");

int width = bitmap.Width;
int height = = bitmap.Height;

int scaledWidth = 400;
int scaledHeight = scaledWidth * height / width;

//  set image item option
PDFItemOptions ops = new PDFItemOptions();

//  set target page region to add the image.
ops.Position = new PointF(10F, 10F);
ops.Width = scaledWidth;
ops.Height = scaledHeight;
//  open the document
PDFDocument doc = new PDFDocument(inputFilePath);
int pageIndex = 0;

//  add image to the target page
PDFImageHandler.AddImage(doc, pageIndex, bitmap, ops);

//  output the new document

Retrieve color space information of an image in the document

If you need know an image color space information inside pdf file, you can try the following c# source code.

String inputFilePath = @"C:\1.pdf";

//  Open file
PDFDocument doc = new PDFDocument(inputFilePath);
//  Get all images in the document
List<PDFImage> imgs = PDFImageHandler.ExtractImages(doc);
foreach (PDFImage img in imgs)
    if (!img.IsInlineImage && !img.IsForm)
        //  Get color space name of the image. Eg.: DeviceGray, DeviceRGB, Indexed etc.
        Console.WriteLine("Color Space: {0}", img.GetColorSpaceName());
        //  Indicate if the image is in color (RGB).
        Console.WriteLine("Is RGB:      {0}", img.IsRGB);
        //  Indicate if the image is in grayscale.
        Console.WriteLine("Is Gray:     {0}", img.IsGray);

Image quality control

When you add multiple images to a single PDF file, you want to control all images' quality, and make sure all images in the same PDF page are using the same compression mode. You can try the following code.

String inputFilePath = Program.RootPath + "\\" + "2.pdf";
String outputFilePath = Program.RootPath + "\\" + "output2.pdf";

PDFDocument doc = new PDFDocument(inputFilePath);

PDFPage page = (PDFPage)doc.GetPage(0);

List<PDFImage> images = PDFImageHandler.ExtractImages(page);

PDFImageHandler.ReduceImageSize(doc, images[0], 2F);