# IronPrint > IronPrint is a .NET library for managing and automating printing tasks in C# applications, including printing PDFs, images, and documents. ## Code Examples - [Flatten PDFs](https://ironsoftware.com/csharp/print/examples/flatten-pdfs/): Enable the Flatten property on PrintSettings to merge interactive PDF elements into the printed output, preserving form data and annotations. - [Get Printer Names](https://ironsoftware.com/csharp/print/examples/get-printer-names/): This page provides a C# code example demonstrating how to use the GetPrinterNames method to retrieve and display a list of printer names connected to a machine using IronPrint. - [Grayscale Printing](https://ironsoftware.com/csharp/print/examples/grayscale-printing/): Set the Grayscale property to true on PrintSettings to print any document in black and white, reducing ink consumption without modifying the source file. - [Print Settings](https://ironsoftware.com/csharp/print/examples/print-settings/): This web page provides code examples and guides for customizing print settings using IronPrint in C# applications. - [Print with Dialog](https://ironsoftware.com/csharp/print/examples/print-with-dialog/): This page provides a C# code example demonstrating how to use the ShowPrintDialog method with IronPrint to display a print settings dialog before printing a document, allowing users to configure their printing preferences. - [Print](https://ironsoftware.com/csharp/print/examples/print/): This web page provides a code example for printing documents using IronPrint, offering seamless cross-platform printing solutions for developers. - [Set Number of Copies](https://ironsoftware.com/csharp/print/examples/set-number-of-copies/): Set the NumberOfCopies property on PrintSettings to produce multiple identical copies of a document in one print operation without looping. - [Set Paper Margins](https://ironsoftware.com/csharp/print/examples/set-paper-margins/): Assign a Margins object to the PaperMargins property on PrintSettings to control the blank space surrounding printed content on every edge of the page. - [Set Paper Orientation](https://ironsoftware.com/csharp/print/examples/set-paper-orientation/): Configure the PaperOrientation property on PrintSettings to print documents in landscape or portrait mode, optimizing layout for wide or tall content. - [Set Paper Size](https://ironsoftware.com/csharp/print/examples/set-paper-size/): Use the PaperSize property on PrintSettings to select from built-in paper sizes like A4, Letter, or Legal, ensuring documents print at the correct dimensions. - [Set the DPI](https://ironsoftware.com/csharp/print/examples/set-the-dpi/): Configure the Dpi property on PrintSettings to specify the dots-per-inch resolution for a print job, balancing quality against speed and file size. - [Specify Printer Name](https://ironsoftware.com/csharp/print/examples/specify-printer-name/): Assign the PrinterName property on PrintSettings to direct a print job to a named printer instead of the system default. ## Product Features - [Features](https://ironsoftware.com/csharp/print/features/): This web page provides an overview of the features and capabilities of IronPrint, highlighting functions such as print control, custom print settings, and printer information retrieval to improve application performance. - [Get Printer Information](https://ironsoftware.com/csharp/print/features/information/): This web page provides detailed information on IronPrint's features that enable users to retrieve local printer names and manage printing tasks on Windows, iOS, and Android devices. - [Print Your Documents](https://ironsoftware.com/csharp/print/features/print/): This web page provides an overview of IronPrint's features, enabling users to take control of their document printing processes with options for automated and dialog-based printing solutions. - [Apply Custom Print Settings](https://ironsoftware.com/csharp/print/features/settings/): This page provides an overview of the features available in IronPrint for applying custom print settings, including options for adjusting paper size, orientation, margins, DPI, number of copies, printer selection, and more, with simple code implementations. ## Documentation ### Getting Started - [Using License Keys](https://ironsoftware.com/csharp/print/get-started/license-keys/): This web page provides detailed instructions on applying IronPrint software license keys in C# projects, highlighting license costs and support details. ### How-To Guides - [ASP.NET Web App Framework](https://ironsoftware.com/csharp/print/how-to/aspnet-web-application-framework/): This page provides a tutorial on implementing asynchronous PDF printing in ASP.NET Framework web applications using IronPrint's C# library, demonstrating how to use the PrintAsync method to enable non-blocking document printing that keeps web applications responsive while processing print requests. - [Flatten PDFs](https://ironsoftware.com/csharp/print/how-to/flatten-pdfs/): This guide demonstrates how to flatten PDFs before printing in C# using IronPrint's PrintSettings.Flatten property. Unlike traditional approaches that require a separate PDF manipulation library to flatten form fields and save a new file, IronPrint performs flattening in memory during the print pipeline — the source file remains unchanged on disk. The Flatten property accepts a boolean value: set it to true to merge all interactive form fields, annotations, and image layers into static page content before the document reaches the printer. - [Grayscale Printing](https://ironsoftware.com/csharp/print/how-to/grayscale-printing/): This how-to guide explains how to print documents in grayscale from C# using the IronPrint .NET library. Developers learn to enable monochrome output by setting the PrintSettings.Grayscale property to true, which instructs the printer driver to convert color content to black-and-white at print time without modifying the source file. The article covers silent grayscale printing, asynchronous printing with Printer.PrintAsync(), and combining the grayscale flag with other PrintSettings properties. - [Print Settings](https://ironsoftware.com/csharp/print/how-to/print-settings/): A comprehensive guide on how to configure print settings in C# using IronPrint's PrintSettings class, covering paper size, orientation, DPI, margins, copies, and other print parameters with code examples. - [Print with Dialog](https://ironsoftware.com/csharp/print/how-to/print-with-dialog/): This how-to guide demonstrates how to display a print dialog in C# using IronPrint, a .NET printing library from Iron Software. The print dialog allows users to select a printer, configure copies, set page ranges, and choose paper options before printing. The guide covers installing IronPrint via NuGet, using Printer.ShowPrintDialog() to display the native OS print dialog with a single method call, pre-configuring dialog defaults by passing a PrintSettings object, using the async variant Printer.ShowPrintDialogAsync() for non-blocking UI scenarios, and choosing between dialog-based and silent printing. - [Retrieve Printer Names](https://ironsoftware.com/csharp/print/how-to/retrieve-printer-names/): This how-to guide explains how to retrieve the names of all installed printers on a Windows machine using the IronPrint .NET library. Developers learn to call Printer.GetPrinterNames() for a synchronous list of printer names returned as List, and Printer.GetPrinterNamesAsync() for non-blocking retrieval in WPF, MAUI, or ASP.NET applications. The article walks through NuGet installation, iterating over the returned printer list, and feeding a selected printer name into a PrintSettings object to route a print job to a specific device. - [Set Number of Copies](https://ironsoftware.com/csharp/print/how-to/set-number-of-copies/): This how-to guide explains how to set the number of copies when printing a document in C# using the IronPrint .NET library. Developers learn to configure the PrintSettings.NumberOfCopies property, which sends the specified number of copies to the printer in a single job rather than queuing multiple separate jobs. The article covers NuGet installation, silent printing with a set copy count, asynchronous printing with Printer.PrintAsync(), and combining the copy count with other PrintSettings properties. - [Set Paper Margins](https://ironsoftware.com/csharp/print/how-to/set-paper-margins/): This how-to guide explains how to set paper margins for printing in C# using the IronPrint .NET library. Developers learn to configure margins through the PrintSettings.PaperMargins property using IronPrint's Margins class, which accepts values in millimeters. The article covers three constructor overloads: Margins(int) for uniform margins on all sides, Margins(int, int) for horizontal and vertical shorthand, and Margins(int, int, int, int) for independent left, top, right, and bottom values. A dedicated section demonstrates Margins.Zero for borderless printing scenarios. - [Set Paper Orientation](https://ironsoftware.com/csharp/print/how-to/set-paper-orientation/): This how-to guide demonstrates how to set paper orientation when printing documents in C# using IronPrint's PrintSettings class. Paper orientation controls whether output prints in portrait (vertical) or landscape (horizontal) mode. The guide covers setting the PaperOrientation property to Portrait, Landscape, or Automatic, combining orientation with other PrintSettings properties, pre-configuring orientation defaults before showing the print dialog, and using the async variant for non-blocking UI. - [Set Paper Size](https://ironsoftware.com/csharp/print/how-to/set-paper-size/): This guide demonstrates how to set paper size programmatically when printing documents from C# using IronPrint. The IronPrint library provides a PaperSize enum with twelve predefined values — including ISO standards (A0 through A5, B4, B5) and US formats (Letter, Legal, Executive) — plus a PrinterDefault option that defers to the system printer's configuration. Developers assign a PaperSize value to the PrintSettings.PaperSize property and pass the settings object to Printer.Print or Printer.PrintAsync. - [Set Print DPI](https://ironsoftware.com/csharp/print/how-to/set-the-dpi/): This how-to guide demonstrates how to set print DPI (dots per inch) in C# using IronPrint's PrintSettings class. DPI controls the resolution of printed output — higher values produce sharper text and smoother images while lower values print faster with less toner usage. The guide covers setting the Dpi integer property to any positive value (default 300), choosing the right DPI for different print jobs, combining DPI with other PrintSettings properties, and pre-configuring DPI before showing the print dialog. - [Silent Printing](https://ironsoftware.com/csharp/print/how-to/silent-printing/): This how-to guide demonstrates how to implement silent printing in C# using IronPrint, a .NET printing library from Iron Software. Silent printing sends documents to a printer programmatically without displaying dialog boxes or requiring user interaction — essential for automated workflows, batch processing, kiosk applications, and Windows Service background jobs. The guide covers installing IronPrint via NuGet, using the Printer.Print() method for one-line silent output, configuring PrintSettings for printer selection, DPI, paper size, margins, copies, and duplex mode, enumerating available printers with Printer.GetPrinterNames(), batch printing across multiple files with error handling, and non-blocking async printing with Printer.PrintAsync(). - [Specify Printer Name](https://ironsoftware.com/csharp/print/how-to/specify-printer-name/): This guide demonstrates how to specify the printer name programmatically in C# using IronPrint. The IronPrint library provides a PrinterName property on the PrintSettings class that accepts a string matching the exact name of the target printer. Developers can discover available printers at runtime using the Printer.GetPrinterNames() method. The article covers setting a printer name directly, discovering printers dynamically, combining printer name with other PrintSettings properties, and async printer discovery and printing. ### Product Updates - [Changelog](https://ironsoftware.com/csharp/print/product-updates/changelog/): This webpage provides detailed updates and release notes for IronPrint, highlighting the latest features and fixes to enhance print management in C# applications. ### Troubleshooting Guides - [Engineering Request​ - IronPrint](https://ironsoftware.com/csharp/print/troubleshooting/engineering-request-print/): This web page provides guidance on submitting engineering support requests for IronPrint, detailing the necessary steps and information required to efficiently resolve technical issues in C# printing projects with the Iron Software team. - [Setting License Key in Web.config](https://ironsoftware.com/csharp/print/troubleshooting/license-key-web.config/): This page provides troubleshooting guidance for embedding the IronPrint license key into ASP.NET’s web.config file to resolve common setup errors, specifically addressing issues in versions before IronPrint 2024.3.6. ### Tutorials - [Print Document](https://ironsoftware.com/csharp/print/tutorials/print-document/): This webpage offers a comprehensive tutorial for integrating IronPrint's printing capabilities into .NET C# applications, covering usage across multiple platforms, silent and dialog-based printing, applying print settings, and retrieving printer information. ### API Reference - [API Reference](https://ironsoftware.com/csharp/print/object-reference/api/): Official index of classes, methods, and properties of the IronPrint library (namespace: `IronPrint`) ## Licensing - [Extensions](https://ironsoftware.com/csharp/print/licensing/extensions/): This web page provides information on upgrading or renewing IronPrint licenses to enhance capabilities for larger print jobs, advanced settings, and multi-user environments. - [Licensing](https://ironsoftware.com/csharp/print/licensing/): This page provides detailed information on IronPrint's licensing options, highlighting its advanced print features and technical support for .NET developers. - [Upgrades](https://ironsoftware.com/csharp/print/licensing/upgrades/): This webpage provides detailed information on upgrading an IronPrint .NET Print Library license, including options for expanding coverage to additional locations, developers, and projects.