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
- Install IronPrint via NuGet:
Install-Package IronPrint - Add
using IronPrint;to the file - Create a
PrintSettingsobject - Set
NumberOfCopiesto the desired count - Pass settings to
Printer.Print()with the file path
-
Install IronPrint with NuGet Package Manager
PM > Install-Package IronPrint -
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); -
Deploy to test on your live environment
Start using IronPrint in your project today with a free trial
PrintSettings.NumberOfCopies
NumberOfCopies
1
0
NumberOfCopies
PrintSettings
NumberOfCopies
NumberOfCopies
PrintSettings.NumberOfCopies
Minimal Workflow (5 steps)
- Install the IronPrint C# printing library
- Create a
PrintSettingsobject - Set
NumberOfCopiesto the desired count - Pass settings to
Printer.Print() - Verify the printer produces the correct number of copies
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)
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)
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:
- IronPrint Tutorials — Print Document for end-to-end printing walkthroughs.
- Print Settings How-To for margins, DPI, orientation, and more.
- PrintSettings Class API Reference for complete property documentation.
- Printer Class API Reference for all static printing methods.
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.

