EVO HTML to PDF Converter

Add Image Elements to a PDF Document

EVO PDF Client for .NET Documentation

EVO HTML to PDF Converter allows you to add images to a PDF document. An image element is represented in API by an EvoPdf.HtmlToPdfClientImageElement object.

You can draw unscaled images to a PDF document, scale images to fit a given box either preserving or not the aspect ratio and you can draw transparent images and rotated images in a PDF document.

Code Sample - Add Image Elements to a PDF Document

C#
protected void createPdf()
{
    // Get the server IP and port
    String serverIP = textBoxServerIP.Text;
    uint serverPort = uint.Parse(textBoxServerPort.Text);

    // Create a PDF document
    Document pdfDocument = null;
    if (radioButtonUseTcpService.Checked)
        pdfDocument = new Document(serverIP, serverPort);
    else
        pdfDocument = new Document(true, textBoxWebServiceUrl.Text);

    // Set optional service password
    if (textBoxServicePassword.Text.Length > 0)
        pdfDocument.ServicePassword = textBoxServicePassword.Text;

    // Set license key received after purchase to use the converter in licensed mode
    // Leave it not set to use the converter in demo mode
    pdfDocument.LicenseKey = "4W9+bn19bn5ue2B+bn1/YH98YHd3d3c=";

    // The titles font used to mark various sections of the PDF document
    PdfFont titleFont = new PdfFont("Times New Roman", 12, true);
    titleFont.Bold = true;
    PdfFont subtitleFont = new PdfFont("Times New Roman", 8, true);
    subtitleFont.Bold = true;

    // Create a PDF page in PDF document
    PdfPage pdfPage = pdfDocument.AddPage();

    // Add section title
    TextElement titleTextElement = new TextElement(5, 5, "Images Scaling", titleFont);
    titleTextElement.ForeColor = RgbColor.Black;
    pdfPage.AddElement(titleTextElement);

    // Add an unscaled image

    // Add section title
    TextElement subtitleTextElement = new TextElement(0, 0, "Unscaled small image with normal resolution", subtitleFont);
    subtitleTextElement.ForeColor = RgbColor.Navy;
    pdfDocument.AddElement(subtitleTextElement, 10);

    string imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/picture_small.jpg");
    ImageElement unscaledImageElement = new ImageElement(0, 0, imagePath);
    pdfDocument.AddElement(unscaledImageElement, 10);

    // Add a large image scaled down to same size in PDF

    // Add section title
    subtitleTextElement = new TextElement(0, 0, "Scaled down large image has higher resolution", subtitleFont);
    subtitleTextElement.ForeColor = RgbColor.Navy;
    pdfDocument.AddElement(subtitleTextElement, 10);

    imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/picture_large.jpg");
    ImageElement scaledDownImageElement = new ImageElement(0, 0, 50, imagePath);
    pdfDocument.AddElement(scaledDownImageElement, 10);

    // Add a border around the scaled down image
    RectangleElement borderElement = new RectangleElement(0, 0, 0, 0);
    pdfDocument.AddElement(borderElement);

    // Add an unscaled small image

    // Add section title
    subtitleTextElement = new TextElement(0, 0, "Unscaled small image", subtitleFont);
    subtitleTextElement.ForeColor = RgbColor.Navy;
    pdfDocument.AddElement(subtitleTextElement, 10);

    imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/picture_smaller.jpg");
    unscaledImageElement = new ImageElement(0, 0, imagePath);
    pdfDocument.AddElement(unscaledImageElement, 10);

    // Add an enlarged image

    // Add section title
    subtitleTextElement = new TextElement(0, 0, "Enlarged small image has lower resolution", subtitleFont);
    subtitleTextElement.ForeColor = RgbColor.Navy;
    pdfDocument.AddElement(subtitleTextElement, 10);

    imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/picture_smaller.jpg");
    ImageElement enlargedImageElement = new ImageElement(0, 0, 200, imagePath);
    // Allow the image to be enlarged
    enlargedImageElement.EnlargeEnabled = true;
    pdfDocument.AddElement(enlargedImageElement, 10);

    // Scale an image preserving the aspect ratio

    // Add section title
    subtitleTextElement = new TextElement(0, 0, "Scaled down image preserving aspect ratio", subtitleFont);
    subtitleTextElement.ForeColor = RgbColor.Navy;
    pdfDocument.AddElement(subtitleTextElement, 10);

    imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/landscape.jpg");
    ImageElement keepAspectImageElement = new ImageElement(0, 0, 80, 80, true, imagePath);
    pdfDocument.AddElement(keepAspectImageElement, 10);

    borderElement = new RectangleElement(0, 0, 0, 0);
    borderElement.ForeColor = RgbColor.Black;
    pdfDocument.AddElement(borderElement);

    // Scale an image without preserving aspect ratio
    // This can produce a distorted image

    // Add section title
    subtitleTextElement = new TextElement(0, 0, "Scaled down image without preserving aspect ratio", subtitleFont);
    subtitleTextElement.ForeColor = RgbColor.Navy;
    pdfDocument.AddElement(subtitleTextElement, 10);

    imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/landscape.jpg");
    ImageElement notKeepAspectImageElement = new ImageElement(0, 0, 80, 80, false, imagePath);
    pdfDocument.AddElement(notKeepAspectImageElement, 10);

    borderElement = new RectangleElement(0, 0, 0, 0);
    borderElement.ForeColor = RgbColor.Black;
    pdfDocument.AddElement(borderElement);

    // Add transparent images

    // Add section title
    titleTextElement = new TextElement(0, 0, "Transparent Images", titleFont);
    titleTextElement.ForeColor = RgbColor.Black;
    pdfDocument.AddElement(titleTextElement, 10);

    imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/transparent.png");
    ImageElement trasparentImageElement = new ImageElement(0, 0, 150, imagePath);
    pdfDocument.AddElement(trasparentImageElement, 10);

    imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/rose.png");
    trasparentImageElement = new ImageElement(0, 0, 150, imagePath);
    pdfDocument.AddElement(trasparentImageElement, 10);

    // Rotate images

    // Add a new page to document
    pdfPage = pdfDocument.AddPage();

    // Add section title
    titleTextElement = new TextElement(0, 0, "Rotated Images", titleFont);
    titleTextElement.ForeColor = RgbColor.Black;
    pdfPage.AddElement(titleTextElement);

    // Add a not rotated image
    imagePath = Server.MapPath("~/DemoAppFiles/Input/Images/compass.png");
    ImageElement noRotationImageElement = new ImageElement(0, 25, 125, imagePath);
    pdfPage.AddElement(noRotationImageElement);

    // The rotated coordinates system location
    float rotatedImageXLocation = 125;
    float rotatedImageYLocation = 175;

    // Add the image rotated 90 degrees
    ImageElement rotate90ImageElement = new ImageElement(0, 0, 125, imagePath);
    rotate90ImageElement.Translate(rotatedImageXLocation, rotatedImageYLocation);
    rotate90ImageElement.Rotate(90);
    pdfPage.AddElement(rotate90ImageElement);

    rotatedImageXLocation = 125;
    rotatedImageYLocation = 450;

    // Add the image rotated 180 degrees
    ImageElement rotate180ImageElement = new ImageElement(0, 0, 125, imagePath);
    rotate180ImageElement.Translate(rotatedImageXLocation, rotatedImageYLocation);
    rotate180ImageElement.Rotate(180);
    pdfPage.AddElement(rotate180ImageElement);

    rotatedImageXLocation = 0;
    rotatedImageYLocation = 600;

    // Add the image rotated 270 degrees
    ImageElement rotate270ImageElement = new ImageElement(0, 0, 125, imagePath);
    rotate270ImageElement.Translate(rotatedImageXLocation, rotatedImageYLocation);
    rotate270ImageElement.Rotate(270);
    pdfPage.AddElement(rotate270ImageElement);

    // Save the PDF document in a memory buffer
    byte[] outPdfBuffer = pdfDocument.Save();
}