Skip to footer content
PRODUCT COMPARISONS

Discover the Best Alternatives for QuestPDF Watermarking in .NET

Watermarks serve as an essential element in PDF documents, providing a visual indication of ownership, authenticity, or confidentiality. They can deter unauthorized use and help protect intellectual property, making them crucial for businesses and individuals alike. In this article, we will compare two powerful libraries—IronPDF and QuestPDF—focusing on their capabilities for adding watermarks to PDF files in C#.

Overview of IronPDF

Add from Pixabay

Key Features

IronPDF is a robust PDF library that enables developers to create, edit, and manipulate PDF documents seamlessly. Key features related to watermarking include:

  • Flexible Watermarking: Supports text and image watermarks, allowing for customization in terms of font, size, color, and transparency.
  • Easy Integration: Compatible with .NET applications, making it straightforward to implement in existing projects.
  • Rich Formatting Options: Offers extensive styling options for watermarks, enhancing the visual appeal of your documents.
  • Conversion Tools: Convert HTML, URL, images, and more into PDF formats.

Installation and Setup

To get started with IronPDF, follow these steps:

  1. Install the IronPDF NuGet package by running the following command in your Package Manager Console:

    Install-Package IronPdf
    Install-Package IronPdf
    SHELL
  2. Add necessary namespaces in your C# file:

    using IronPdf;
    using IronPdf;
    Imports IronPdf
    $vbLabelText   $csharpLabel

Adding Watermarks to a PDF Document with IronPDF

IronPDF makes use of HTML string and CSS styling to add fully customizable watermarks to your PDF documents. The watermark tool can take any HTML string, even if it contains assets such as images and CSS styling, and apply it to the PDF file as a watermark.

using IronPdf;

class Program
{
    static void Main()
    {
        // Load an existing PDF document.
        PdfDocument pdf = PdfDocument.FromFile("existing.pdf");

        // Define the watermark using HTML and CSS.
        string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'><h1 style='color:red;'>CONFIDENTIAL</h1>";

        // Apply the watermark with specified rotation and opacity.
        pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);

        // Save the watermarked document.
        pdf.SaveAs("watermarked.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main()
    {
        // Load an existing PDF document.
        PdfDocument pdf = PdfDocument.FromFile("existing.pdf");

        // Define the watermark using HTML and CSS.
        string watermark = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'><h1 style='color:red;'>CONFIDENTIAL</h1>";

        // Apply the watermark with specified rotation and opacity.
        pdf.ApplyWatermark(watermark, rotation: 45, opacity: 80);

        // Save the watermarked document.
        pdf.SaveAs("watermarked.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Load an existing PDF document.
		Dim pdf As PdfDocument = PdfDocument.FromFile("existing.pdf")

		' Define the watermark using HTML and CSS.
		Dim watermark As String = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'><h1 style='color:red;'>CONFIDENTIAL</h1>"

		' Apply the watermark with specified rotation and opacity.
		pdf.ApplyWatermark(watermark, rotation:= 45, opacity:= 80)

		' Save the watermarked document.
		pdf.SaveAs("watermarked.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Output PDF File

Add from Pixabay

As you can see, we have created a new string variable containing our watermark content. This is made up of an HTML string with a header and image. When we use the ApplyWatermark method, we are able to set a customized rotation and opacity.

If you want to see more advanced examples and other features IronPDF has to offer, be sure to check out the How-To Guides!

Overview of QuestPDF

Add from Pixabay

Key Features

QuestPDF is a modern PDF library that emphasizes ease of use and developer-friendly design. Key features related to watermarking include:

  • Declarative API: Uses a fluent API that allows developers to define watermarks in a clear and intuitive manner.
  • High Customizability: Supports various types of watermarks, including text, images, and shapes, with extensive customization options.
  • Performance Focus: Optimized for speed and efficiency, making it suitable for high-volume PDF generation.

Installation and Setup

To install QuestPDF, follow these steps:

  1. Install the QuestPDF NuGet package using the following command:

    Install-Package QuestPDF
    Install-Package QuestPDF
    SHELL
  2. Include the necessary namespace in your C# file:

    using QuestPDF;
    using QuestPDF;
    Imports QuestPDF
    $vbLabelText   $csharpLabel

Adding Watermarks with QuestPDF

QuestPDF has a different approach to apply watermarks to PDF files. With QuestPDF, this is done through watermark slots (on the background and foreground) which are used to add watermark content to a specific page or all pages of the PDF.

using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

public class WatermarkExample
{
    public static void Main()
    {
        // Set the license type to Community for QuestPDF.
        QuestPDF.Settings.License = LicenseType.Community;

        // Create a PDF document with a defined structure.
        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Margin(50);

                // Add a foreground watermark.
                page.Foreground().Element(watermark =>
                {
                    watermark.Text("DRAFT")
                        .FontSize(40)
                        .FontColor(Colors.Red.Medium)
                        .AlignLeft();
                });

                // Add the main content of the page.
                page.Content().Element(ComposeContent);
            });
        })
        .GeneratePdf("watermarked_document.pdf");
    }

    private static IContainer ComposeContent(IContainer container)
    {
        // Define the layout and content of the PDF.
        container.Column(column =>
        {
            column.Spacing(10);
            column.Item().Text("This is the main content of the PDF.");
            column.Item().Text("Add more content as needed.");
        });

        return container; // Return the container to maintain method signature.
    }
}
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

public class WatermarkExample
{
    public static void Main()
    {
        // Set the license type to Community for QuestPDF.
        QuestPDF.Settings.License = LicenseType.Community;

        // Create a PDF document with a defined structure.
        Document.Create(container =>
        {
            container.Page(page =>
            {
                page.Margin(50);

                // Add a foreground watermark.
                page.Foreground().Element(watermark =>
                {
                    watermark.Text("DRAFT")
                        .FontSize(40)
                        .FontColor(Colors.Red.Medium)
                        .AlignLeft();
                });

                // Add the main content of the page.
                page.Content().Element(ComposeContent);
            });
        })
        .GeneratePdf("watermarked_document.pdf");
    }

    private static IContainer ComposeContent(IContainer container)
    {
        // Define the layout and content of the PDF.
        container.Column(column =>
        {
            column.Spacing(10);
            column.Item().Text("This is the main content of the PDF.");
            column.Item().Text("Add more content as needed.");
        });

        return container; // Return the container to maintain method signature.
    }
}
Imports QuestPDF.Fluent
Imports QuestPDF.Helpers
Imports QuestPDF.Infrastructure

Public Class WatermarkExample
	Public Shared Sub Main()
		' Set the license type to Community for QuestPDF.
		QuestPDF.Settings.License = LicenseType.Community

		' Create a PDF document with a defined structure.
		Document.Create(Sub(container)
			container.Page(Sub(page)
				page.Margin(50)

				' Add a foreground watermark.
				page.Foreground().Element(Sub(watermark)
					watermark.Text("DRAFT").FontSize(40).FontColor(Colors.Red.Medium).AlignLeft()
				End Sub)

				' Add the main content of the page.
				page.Content().Element(AddressOf ComposeContent)
			End Sub)
		End Sub).GeneratePdf("watermarked_document.pdf")
	End Sub

	Private Shared Function ComposeContent(ByVal container As IContainer) As IContainer
		' Define the layout and content of the PDF.
		container.Column(Sub(column)
			column.Spacing(10)
			column.Item().Text("This is the main content of the PDF.")
			column.Item().Text("Add more content as needed.")
		End Sub)

		Return container ' Return the container to maintain method signature.
	End Function
End Class
$vbLabelText   $csharpLabel

Output PDF Document

Add from Pixabay

In the Main method, we start by creating a document with a page that has a 50-unit margin. We then create the watermark we want to use, which is the simple text "DRAFT" in red, styled with a font size of 40 and aligned to the left. This approach to applying watermarks to PDF documents is more rigid and complex in setup compared to IronPDF's streamlined approach. With QuestPDF, you may have less control over the appearance and location of the watermark.

Comparison of Watermarking Capabilities

Ease of Use

IronPDF provides a straightforward approach with its rich documentation and examples, making it accessible for beginners. QuestPDF, with its declarative API, simplifies the process further by allowing for concise code, which can enhance productivity.

Customization Options

Both libraries offer extensive customization for watermarks. IronPDF allows for detailed styling of text and images, while QuestPDF provides a more flexible way to arrange elements and supports complex designs, making it suitable for creative applications.

Performance

In terms of performance, both libraries perform well, but QuestPDF may have the edge in speed due to its efficient design. Testing the libraries in real-world scenarios is advisable to determine which best fits your specific use case.

Licensing and Pricing

IronPDF Licensing Options

IronPDF operates on a commercial licensing model available.

QuestPDF Licensing Options

QuestPDF offers an open-source license with the option for commercial support. This makes it a cost-effective choice for developers looking for robust functionality without a significant financial commitment.

Conclusion

![Discover the Best Alternatives for QuestPDF Watermarking in .NET: Figure 5](/static-assets/pdf/blog/questpdf-add-watermark to-pdf-alternatives/questpdf-add-watermark to-pdf-alternatives-5.webp)

Both IronPDF and QuestPDF are powerful libraries for adding watermarks to PDFs in C#. IronPDF excels in its detailed customization options and user-friendly approach, making it ideal for users who require specific formatting. QuestPDF, on the other hand, stands out with its modern API design and performance efficiency, appealing to developers seeking a quick and intuitive solution.

For scenarios where extensive customization is needed, IronPDF may be the preferred choice. Conversely, QuestPDF is well-suited for projects prioritizing speed and ease of use.

🚀Try IronPDF out for yourself by downloading the free trial and exploring how it can take your C# PDF projects to the next level today!

Frequently Asked Questions

What are the main features of this PDF library for watermarking?

IronPDF offers flexible watermarking with text and image options, easy integration with .NET applications, rich formatting options, and conversion tools for various formats into PDFs.

How do you install this PDF library?

Install the IronPDF NuGet package by running 'Install-Package IronPdf' in your Package Manager Console and add the necessary namespaces in your C# file.

How can I add watermarks to a PDF using this PDF library?

IronPDF uses HTML string and CSS styling to add customizable watermarks to PDFs. You can define a watermark using HTML and apply it with specified rotation and opacity using the ApplyWatermark method.

What are the key features of QuestPDF for watermarking?

QuestPDF offers a declarative API, high customizability with text, images, and shapes, and a performance focus optimized for speed and efficiency.

How do you install QuestPDF?

Install the QuestPDF NuGet package by using the command 'Install-Package QuestPDF' and include the necessary namespace in your C# file.

How can I add watermarks with QuestPDF?

QuestPDF uses watermark slots to add content to specific pages or all pages of a PDF, allowing for text and other elements to be included as watermarks.

Which library offers better customization options for watermarks?

Both libraries offer extensive customization, but IronPDF allows detailed styling, whereas QuestPDF provides flexible element arrangement suitable for creative applications.

What are the licensing options for this PDF library?

IronPDF operates on a commercial licensing model, with options available for developers needing robust functionality.

What kind of license does QuestPDF offer?

QuestPDF offers an open-source license with commercial support options, making it a cost-effective choice for developers.

Which library is more suitable for projects prioritizing speed?

QuestPDF may have the edge in speed due to its efficient design, making it suitable for projects where performance is a priority.

Chipego
Software Engineer
Chipego has a natural skill for listening that helps him to comprehend customer issues, and offer intelligent solutions. He joined the Iron Software team in 2023, after studying a Bachelor of Science in Information Technology. IronPDF and IronOCR are the two products Chipego has been focusing on, but his knowledge of all products is growing daily, as he finds new ways to support customers. He enjoys how collaborative life is at Iron Software, with team members from across the company bringing their varied experience to contribute to effective, innovative solutions. When Chipego is away from his desk, he can often be found enjoying a good book or playing football.