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

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/silent-copies.cs
using IronPrint;

// Print 5 copies silently to the default printer
PrintSettings settings = new PrintSettings
{
    NumberOfCopies = 5
};

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

' Print 5 copies silently to the default printer
Dim settings As New PrintSettings With {
    .NumberOfCopies = 5
}

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.

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?

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/combined-settings.cs
using IronPrint;

// Full configuration: 3 copies of a landscape A4 report 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"
};

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

' Full configuration: 3 copies of a landscape A4 report 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"
}

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

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

Are There Platform Limitations on Copy Count?

On certain platforms, the printer driver may not reproduce the exact number specified in 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 — 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.

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 37,845 | Version: 2026.3 just released
Still Scrolling Icon

Still Scrolling?

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