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, and combined settings below.
- 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
-
1Install IronPrint with NuGet Package Manager
-
2Copy 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);C# -
3Deploy to test on your live environment
Start using IronPrint in your project today with a free trial
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():
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:
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.PrintAsync() 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 do I print multiple copies using IronPrint in C#?
To print multiple copies using IronPrint in C#, create a PrintSettings object and set the NumberOfCopies property to the desired count. Then, pass these settings to the Printer.Print() method along with the file path.
What is the benefit of using IronPrint's NumberOfCopies property?
Using IronPrint's NumberOfCopies property is efficient because it allows the printer driver to manage the duplication in one operation, avoiding the need to loop through multiple print jobs for each copy.
Can I use IronPrint to set the copy count for silent printing?
Yes, you can set the copy count for silent printing in IronPrint by configuring the PrintSettings.NumberOfCopies and passing the settings to Printer.Print().
How do I combine multiple printing settings using IronPrint?
IronPrint allows you to combine multiple settings such as NumberOfCopies, paper size, orientation, DPI, and printer selection within a single PrintSettings configuration object.
Are there any platform limitations when setting the number of copies with IronPrint?
Yes, certain platforms may not honor the specified NumberOfCopies due to printer driver limitations, especially if the driver does not support collated multi-copy jobs.
What happens if I set the NumberOfCopies to 0 or a negative value in IronPrint?
Setting NumberOfCopies to 0 or a negative value will not produce any practical effect as the printer driver defaults to a single copy.
How can I perform asynchronous printing with multiple copies in IronPrint?
You can achieve asynchronous printing by using the same PrintSettings object with the Printer.PrintAsync() method in IronPrint.
What operating systems are optimal for using IronPrint?
IronPrint integrates well with Windows desktop applications, where the NumberOfCopies property is reliably supported by both local and network printers.
How do I ensure my printer supports the multiple copies feature?
To ensure your printer supports the multiple copies feature, check its driver properties through the Windows printer properties panel for collated multi-copy jobs support.
Where can I find more detailed documentation and tutorials for IronPrint?
You can explore the IronPrint tutorials and API reference on the Iron Software website for detailed documentation and end-to-end printing walkthroughs.

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.