IronPrint on macOS with .NET 8 (Apple Silicon)

IronPrint documents native cross-platform support for Windows, macOS, iOS, and Android via its IronSoftware.System.Drawing dependency. If you hit build or runtime errors running IronPrint in a .NET 8 console app on Apple Silicon macOS, verify your TargetFramework and print API usage against the guidance below before assuming a missing-library issue.

Solution

1. Target a UI-Capable Framework When Showing a Print Dialog

ShowPrintDialog/ShowPrintDialogAsync require a UI-capable target framework to render the dialog. If you only need to send a document to a printer without a dialog, Printer.Print/Printer.PrintAsync do not have this requirement.

<TargetFramework>net7.0-maccatalyst</TargetFramework>
<TargetFramework>net7.0-maccatalyst</TargetFramework>
XML

WarningA UI-capable target framework such as net7.0-macos or net7.0-maccatalyst is not part of the default console app templates. Install the corresponding workload or start from a macOS/Mac Catalyst app template to get preconfigured support. See ShowPrintDialog Behavior in IronPrint for the full list of supported target frameworks.

A complete project file looks like this:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0-maccatalyst</TargetFramework>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0-maccatalyst</TargetFramework>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>
XML

2. Use a Compatible Print API

On macOS, call Printer.ShowPrintDialogAsync(string, PrintSettings) (or the byte[] overload) rather than relying on Windows-only printing paths:

var settings = new PrintSettings();
await Printer.ShowPrintDialogAsync(filePath, settings);
var settings = new PrintSettings();
await Printer.ShowPrintDialogAsync(filePath, settings);
Dim settings As New PrintSettings()
Await Printer.ShowPrintDialogAsync(filePath, settings)
$vbLabelText   $csharpLabel
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 44,369 | Version: 2026.7 just released
Still Scrolling Icon

Still Scrolling?

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