Migrate mail printing to WinUI print preview

This commit is contained in:
Burak Kaan Köse
2026-04-11 15:07:22 +02:00
parent 24626d1c31
commit e206368801
12 changed files with 565 additions and 828 deletions
@@ -178,6 +178,33 @@ public static class PrintSettingsExtensions
return settings;
}
/// <summary>
/// Creates a CoreWebView2PrintSettings object containing only document-safe settings for PDF generation.
/// Printer job options such as copies, duplex, printer name, N-up, and page ranges stay in the WinRT print session.
/// </summary>
public static CoreWebView2PrintSettings ToCoreWebView2PdfRenderSettings(
this WebView2PrintSettingsModel model,
CoreWebView2Environment environment)
{
var settings = environment.CreatePrintSettings();
settings.Orientation = model.Orientation.ToCoreWebView2Orientation();
settings.ColorMode = model.ColorMode.ToCoreWebView2ColorMode();
settings.MediaSize = model.MediaSize.ToCoreWebView2MediaSize();
settings.MarginTop = model.MarginTop;
settings.MarginBottom = model.MarginBottom;
settings.MarginLeft = model.MarginLeft;
settings.MarginRight = model.MarginRight;
settings.ShouldPrintBackgrounds = model.ShouldPrintBackgrounds;
settings.ShouldPrintSelectionOnly = model.ShouldPrintSelectionOnly;
settings.ShouldPrintHeaderAndFooter = model.ShouldPrintHeaderAndFooter;
settings.HeaderTitle = model.HeaderTitle;
settings.FooterUri = model.FooterUri;
settings.ScaleFactor = model.ScaleFactor;
return settings;
}
/// <summary>
/// Updates a WebView2PrintSettingsModel from a CoreWebView2PrintSettings object.
/// </summary>
@@ -209,4 +236,4 @@ public static class PrintSettingsExtensions
model.PagesPerSide = settings.PagesPerSide;
model.PageRanges = settings.PageRanges ?? string.Empty;
}
}
}