Set Transparency for PDF Image in C#, VB.NET

This section aims at providing developers a detail solution to set transparency for image in PDF file with C#, VB.NET via this PDF api Spire.PDF for .NET.

Spire.PDF for .NET enables you to set transparency for PDF image directly by utilizing one core method: Spire.Pdf.PdfPageBase.Canvas.SetTransparency(float alphaPen, float alphaBrush, PdfBlendMode blendMode); There are three parameters passed in this method. The first parameter is the alpha value for pen operations; while the second parameter is the alpha value for brush operations; and the last parameter is the blend mode. Now, let us see how to set PDF transparency step by step.

Set Transparency Images in PDF File

Step1: Prepare an image file

In my solution, I need create a new PDF file and insert an existing image file to PDF. Finally set transparency for this PDF image. So I prepare an image as below:

Draw Transparency Images

Step2: Download and Install Spire.PDF for .NET

Spire.PDF for .NET is a PDF component that enables developers to generate, read, edit and handle PDF files without Adobe Acrobat. Here you can download Spire.PDF for .NET and install it on system.

Step3: Start a new project and Add references

We can create a project either in Console Application or in Windows Forms Application, either in C# or in VB.NET. Here I use C# Console Application. Since we will use Spire.PDF for .NET, we need add Spire.Pdf.dll as reference. The default path is “..\Spire.PDF\Bin\NET4.0\ Spire.Pdf.dll”

Step 4: Set PDF transparency for PDF image

In this step, first, I initialize a new instance of the class Spire.Pdf.PdfDocument and add a section in the newly created PDF. Then, load the image I have already prepared to the PDF and set the PDF image size. Finally set transparency for this PDF image. When I set transparency, I add a title for the transparency and set position and format for it. After I save the image in PDF by calling this method: PdfPageBase.Canvas.DrawImage(PdfImage image, float x, float y, float width, float height).Then, by using this method: PdfPageBase.Canvas.SetTransparency(float alphaPen, float alphaBrush, PdfBlendMode blendMode); I successfully set transparency for this PDF image. Here we can see the whole code:

[C#]
    //Initiate a new instance of PdfDocument 
    PdfDocument doc = new PdfDocument();
    //Add one section to the PDF document
    PdfSection section = doc.Sections.Add();
    //Open Image File
    PdfImage image = PdfImage.FromFile(@"..\016.png");
    //Set the Image size in PDF file
    float imageWidth = image.PhysicalDimension.Width / 2;
    float imageHeight = image.PhysicalDimension.Height / 2;

    //Set PDF granphic transparency 
    foreach (PdfBlendMode mode in Enum.GetValues(typeof(PdfBlendMode)))
    {
    PdfPageBase page = section.Pages.Add();
    float pageWidth = page.Canvas.ClientSize.Width;
    float y = 1;
    //Set transparency image title, title position and format
    y = y + 5;
    PdfBrush brush = new PdfSolidBrush(Color.Firebrick);
    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 16f, 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;
    //write and save the image loaded into PDF
    page.Canvas.DrawImage(image, 0, y, imageWidth, imageHeight);
    page.Canvas.Save();
    //set left and top distance between graphic images
    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);
        //set transparency to be alpha
        page.Canvas.SetTransparency(alpha, alpha, mode);
        //draw transparency images for the original PDF image
        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");
[VB.NET]
'Initiate a new instance of PdfDocument 
Dim doc As New PdfDocument()
'Add one section to the PDF document
Dim section As PdfSection = doc.Sections.Add()
'Open Image File
Dim image As PdfImage = PdfImage.FromFile("..\016.png")
'Set the Image size in PDF file
Dim imageWidth As Single = image.PhysicalDimension.Width / 2
Dim imageHeight As Single = image.PhysicalDimension.Height / 2

'Set PDF granphic transparency 
For Each mode As PdfBlendMode In [Enum].GetValues(GetType(PdfBlendMode))
	Dim page As PdfPageBase = section.Pages.Add()
	Dim pageWidth As Single = page.Canvas.ClientSize.Width
	Dim y As Single = 1
	'Set transparency image title, title position and format
	y = y + 5
	Dim brush As PdfBrush = New PdfSolidBrush(Color.Firebrick)
	Dim font As New PdfTrueTypeFont(New Font("Arial", 16F, 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
	'write and save the image loaded into PDF
	page.Canvas.DrawImage(image, 0, y, imageWidth, imageHeight)
	page.Canvas.Save()
	'set left and top distance between graphic images
	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 = 1F / 6 * (5 - i)
		'set transparency to be alpha
		page.Canvas.SetTransparency(alpha, alpha, mode)
		'draw transparency images for the original PDF image
		page.Canvas.DrawImage(image, x, y, imageWidth, imageHeight)
		x = x + d
		y = y + d / 2
	Next
	page.Canvas.Restore()
Next
'Save pdf file.
doc.SaveToFile("Transparency.pdf")
doc.Close()
'Launching the Pdf file.
System.Diagnostics.Process.Start("Transparency.pdf")

Result Task

After performing above code, we can see the result PDF document as below:

Draw Transparency Images

I have set transparency for PDF image by Spire.PDF for .NET. I sincerely wish it can help you. We e-iceblue team appreciate any kind of queries, comments and advice at E-iceblue Forum. Our professionals are ready to reply you as quick as possible.

Spire.PDF for .NET is a PDF library that meets customers need with fast speed and high efficiency.