How to Set the Number of Copies When Printing in C#

Printing multiple copies of a document is a routine requirement — invoices that need an original and a duplicate, shipping labels printed in batches, or reports distributed to several departments. Rather than calling Print() inside a loop and creating separate print jobs for each copy, the correct approach is to set the copy count once and let the printer driver handle duplication in a single job.

IronPrint's PrintSettings.NumberOfCopies property accepts an integer and sends the specified number of copies to the printer in one operation. We cover installation, basic usage, async workflows, and combined settings below.

Quickstart: Set Number of Copies

  1. Install IronPrint via NuGet: Install-Package IronPrint
  2. Add using IronPrint; to the file
  3. Create a PrintSettings object
  4. Set NumberOfCopies to the desired count
  5. Pass settings to Printer.Print() with the file path
  1. Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint
  2. Copy and run this code snippet.

    using IronPrint;
    
    // Print 3 copies of a PDF in one print job
    PrintSettings settings = new PrintSettings();
    settings.NumberOfCopies = 3;
    Printer.Print("invoice.pdf", settings);
  3. Deploy to test on your live environment

    Start using IronPrint in your project today with a free trial

    arrow pointer

PrintSettings.NumberOfCopies NumberOfCopies 1 0 NumberOfCopies PrintSettings NumberOfCopies NumberOfCopies PrintSettings.NumberOfCopies

How Do I Set the Copy Count for Silent Printing?

Silent printing sends a document straight to the printer without displaying a dialog. We configure the copy count through PrintSettings.NumberOfCopies and pass the settings to Printer.Print():

:path=/static-assets/print/content-code-examples/how-to/set-number-of-copies/set-number-of-copies-silent-copies.cs
using IronPrint;

// Configure the print job for 5 copies
PrintSettings settings = new PrintSettings
{
    NumberOfCopies = 5
};

// Print the shipping label
Printer.Print("shipping-label.pdf", settings);
Imports IronPrint

' Configure the print job for 5 copies
Dim settings As New PrintSettings With {
    .NumberOfCopies = 5
}

' Print the shipping label
Printer.Print("shipping-label.pdf", settings)
$vbLabelText   $csharpLabel

The printer driver receives the copy instruction at the hardware level, which is faster and more reliable than queuing five individual jobs. This matters on shared network printers where separate jobs can be interleaved with other users' documents.

PrintSettings.NumberOfCopies defaults to 1 when not explicitly set. Any positive integer is accepted — setting it to 0 or a negative value has no practical effect and the driver falls back to a single copy.

How Do I Combine Copy Count with Other Print Settings?

PrintSettings.NumberOfCopies is one property on PrintSettings. We can combine it with paper margins, paper size, orientation, DPI, grayscale mode, and printer selection in a single configuration object:

:path=/static-assets/print/content-code-examples/how-to/set-number-of-copies/set-number-of-copies-combined-settings.cs
using IronPrint;

// Configure 3 copies with landscape A4 at 300 DPI
PrintSettings settings = new PrintSettings
{
    NumberOfCopies = 3,
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Landscape,
    Dpi = 300,
    PaperMargins = new Margins(15),
    Grayscale = false,
    PrinterName = "HP LaserJet Pro MFP M428"
};

// Print the Q4 report
Printer.Print("Q4-report.pdf", settings);
Imports IronPrint

' Configure 3 copies with landscape A4 at 300 DPI
Dim settings As New PrintSettings With {
    .NumberOfCopies = 3,
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Landscape,
    .Dpi = 300,
    .PaperMargins = New Margins(15),
    .Grayscale = False,
    .PrinterName = "HP LaserJet Pro MFP M428"
}

' Print the Q4 report
Printer.Print("Q4-report.pdf", settings)
$vbLabelText   $csharpLabel

For non-blocking workflows, pass the same PrintSettings to Printer.Print() instead.

Are There Platform Limitations on Copy Count?

On certain platforms, the printer driver may not reproduce the exact number specified in PrintSettings.NumberOfCopies. The IronPrint documentation notes that platform-specific limitations can cause the value to be ignored, resulting in a single copy. This is a driver-level constraint, not an IronPrint limitation.

On Windows desktop applications — the primary target for most printing workflows — PrintSettings.NumberOfCopies is reliably honored by both local and network printers. If you encounter a printer that consistently ignores the setting, verify that its driver supports collated multi-copy jobs through the Windows printer properties panel.

What Are My Next Steps?

We covered how to set the number of printed copies using PrintSettings.NumberOfCopies, demonstrated silent and async printing, combined copy count with other settings, and noted platform-specific caveats.

For further reading, explore these resources:

Get a free trial license to test every feature in a live environment, or view licensing options when you're ready to deploy.

Frequently Asked Questions

How can I print multiple copies using IronPrint in C#?

You can print multiple copies in C# by setting the 'NumberOfCopies' property in IronPrint, allowing for easy control over the quantity of printed documents.

Does IronPrint support silent printing?

Yes, IronPrint supports silent printing, enabling you to print documents without user interaction, ideal for automated workflows.

Can I use IronPrint for asynchronous printing in C#?

IronPrint offers support for async workflows, allowing you to print documents asynchronously, which helps in improving application performance.

Is it possible to combine different print settings using IronPrint?

IronPrint allows you to combine various printing settings, including the number of copies, paper size, and orientation, providing a flexible printing solution.

What are the benefits of using IronPrint for multiple copy printing?

Using IronPrint for multiple copy printing simplifies the process with a single property adjustment, supports silent and async printing, and offers customizable settings.

Do I need to install additional software to use IronPrint?

IronPrint is a .NET library that integrates directly into your C# application, requiring no additional software installations for printing tasks.

How does IronPrint handle large print jobs?

IronPrint efficiently manages large print jobs by supporting async operations, allowing your application to continue processing while printing is underway.

Is IronPrint compatible with different printer models?

IronPrint is designed to work with various printer models, offering a versatile solution for different printing environments.

Can I customize print quality using IronPrint?

Yes, IronPrint allows you to customize print quality settings, ensuring that you can tailor the output to meet specific requirements.

What programming knowledge is required to use IronPrint?

Basic knowledge of C# and .NET is recommended to effectively use IronPrint and implement its features in your applications.

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...

Read More
Ready to Get Started?
Nuget Downloads 40,390 | Version: 2026.5 just released
Still Scrolling Icon

Still Scrolling?

Want proof fast? PM > Install-Package IronPrint
run a sample watch your document hit the printer.