PDF Graphics Transparency in C#, VB.NET

  • Demo
  • C# source
  • VB.Net source

The sample shows the different modes of transparency.

Download Transparency.pdf

using System;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace Transparency
{
    class Program
    {
        static void Main(string[] args)
        {

            //Create a pdf document.
            PdfDocument doc = new PdfDocument();

            // Create one section
            PdfSection section = doc.Sections.Add();

            //Load image
            PdfImage image = PdfImage.FromFile("SalesReportChart.png");
            float imageWidth = image.PhysicalDimension.Width / 2;
            float imageHeight = image.PhysicalDimension.Height / 2;
            foreach (PdfBlendMode mode in Enum.GetValues(typeof(PdfBlendMode)))
            {
                PdfPageBase page = section.Pages.Add();
                float pageWidth = page.Canvas.ClientSize.Width;
                float y = 0;

                //title
                y = y + 5;
                PdfBrush brush = new PdfSolidBrush(Color.OrangeRed);
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 12f, FontStyle.Bold));
                PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);
                String text = String.Format("Transparency Blend Mode: {0}", mode);
                page.Canvas.DrawString(text, font, brush, pageWidth / 2, y, format);
                SizeF size = font.MeasureString(text, format);
                y = y + size.Height + 6;

                page.Canvas.DrawImage(image, 0, y, imageWidth, imageHeight);
                page.Canvas.Save();
                float d = (page.Canvas.ClientSize.Width - imageWidth) / 5;
                float x = d;
                y = y + d / 2;
                for (int i = 0; i < 5; i++)
                {
                    float alpha = 1.0f / 6 * (5 - i);
                    page.Canvas.SetTransparency(alpha, alpha, mode);
                    page.Canvas.DrawImage(image, x, y, imageWidth, imageHeight);
                    x = x + d;
                    y = y + d / 2;
                }
                page.Canvas.Restore();
            }

            //Save pdf file.
            doc.SaveToFile("Transparency.pdf");
            doc.Close();

            //Launching the Pdf file.
            System.Diagnostics.Process.Start("Transparency.pdf");
        }
    }
}

Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics

Namespace Transparency
    Friend Class Program
        Shared Sub Main(ByVal args() As String)

            'Create a pdf document.
            Dim doc As New PdfDocument()

            ' Create one section
            Dim section As PdfSection = doc.Sections.Add()

            'Load image
            Dim image As PdfImage = PdfImage.FromFile("SalesReportChart.png")
            Dim imageWidth As Single = image.PhysicalDimension.Width \ 2
            Dim imageHeight As Single = image.PhysicalDimension.Height \ 2
            For Each mode As PdfBlendMode In System.Enum.GetValues(GetType(PdfBlendMode))
                Dim page As PdfPageBase = section.Pages.Add()
                Dim pageWidth As Single = page.Canvas.ClientSize.Width
                Dim y As Single = 0

                'title
                y = y + 5
                Dim brush As PdfBrush = New PdfSolidBrush(Color.OrangeRed)
                Dim font As New PdfTrueTypeFont(New Font("Arial", 12.0F, FontStyle.Bold))
                Dim format As New PdfStringFormat(PdfTextAlignment.Center)
                Dim text As String = String.Format("Transparency Blend Mode: {0}", mode)
                page.Canvas.DrawString(text, font, brush, pageWidth / 2, y, format)
                Dim size As SizeF = font.MeasureString(text, format)
                y = y + size.Height + 6

                page.Canvas.DrawImage(image, 0, y, imageWidth, imageHeight)
                page.Canvas.Save()
                Dim d As Single = (page.Canvas.ClientSize.Width - imageWidth) / 5
                Dim x As Single = d
                y = y + d / 2
                For i As Integer = 0 To 4
                    Dim alpha As Single = 1.0F / 6 * (5 - i)
                    page.Canvas.SetTransparency(alpha, alpha, mode)
                    page.Canvas.DrawImage(image, x, y, imageWidth, imageHeight)
                    x = x + d
                    y = y + d / 2
                Next i
                page.Canvas.Restore()
            Next mode

            'Save pdf file.
            doc.SaveToFile("Transparency.pdf")
            doc.Close()

            'Launching the Pdf file.
            Process.Start("Transparency.pdf")
        End Sub
    End Class
End Namespace