Comment convertir XAML en PDF dans MAUI

This article was translated from English: Does it need improvement?
Translated
View the article in English

par Chaknith Bin

.NET MAUI (L'interface utilisateur des applications multiplateformes) est un cadre multiplateforme pour la création d'applications natives. Il s'étend à partir de Xamarin.Forms et fait partie de l'écosystème unifié .NET 6. Il permet aux développeurs d'applications .NET de créer des applications pour les plates-formes de bureau, web et mobiles en utilisant des composants d'interface utilisateur communs et une base de code unique. MAUI vous permet également d'ajouter, si nécessaire, du code et des ressources spécifiques à la plate-forme.

IronPDF vous permet de générer des documents PDF à partir d'une page MAUI, rendant ainsi possible la création de fichiers/pages PDF dans ces applications. Toutefois, IronPDF ne prend pas actuellement en charge les plates-formes mobiles.

Paquet d'extension IronPDF

Le paquet IronPdf.Extensions.Maui est l'extension du paquet principal IronPdf. Comme il s'agit d'une extension, le paquet principal IronPDF est toujours nécessaire pour rendre la page de contenu de l'application MAUI en document PDF.

PM > Install-Package IronPdf.Extensions.Maui
Bibliothèque NuGet C# pour PDF

Installer avec NuGet

Installer le paquet IronPdf.Extensions.Maui

Conversion d'une page MAUI en PDF

Modifier le fichier MainPage.xaml.cs

  • Passez du fichier MainPage.xaml à son fichier de code, MainPage.xaml.cs.
  • Remplacez la fonction OnCounterClicked par PrintToPdf. Utilisez l'exemple de code ci-dessous.

    Pour transformer votre page MAUI en PDF, utilisez la méthode RenderContentPageToPdf. La méthode est accessible en instanciant la classe ChromePdfRenderer. Cette méthode vous donnera un objet PdfDocument, que vous pourrez sauvegarder ou visualiser en utilisant la méthode SaveAs ou un visualisateur PDF avec la méthode Visualisation des PDF dans MAUI.

    A noter
    Les RenderContentPageToPdf ne prend pas encore en charge la liaison de données.

:path=/static-assets/pdf/content-code-examples/how-to/xaml-to-pdf-maui-mainpage-xaml-cs.cs
using IronPdf.Extensions.Maui;

namespace mauiSample;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private void PrintToPdf(object sender, EventArgs e)
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Apply HTML header
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<h1>Header</h1>",
        };

        // Render PDF from Maui Page
        PdfDocument pdf = renderer.RenderContentPageToPdf<MainPage, App>().Result;

        pdf.SaveAs(@"C:\Users\lyty1\Downloads\contentPageToPdf.pdf");
    }
}
Imports IronPdf.Extensions.Maui

Namespace mauiSample

	Partial Public Class MainPage
		Inherits ContentPage

		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub PrintToPdf(ByVal sender As Object, ByVal e As EventArgs)
			Dim renderer As New ChromePdfRenderer()

			' Apply HTML header
			renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {.HtmlFragment = "<h1>Header</h1>"}

			' Render PDF from Maui Page
			Dim pdf As PdfDocument = renderer.RenderContentPageToPdf(Of MainPage, App)().Result

			pdf.SaveAs("C:\Users\lyty1\Downloads\contentPageToPdf.pdf")
		End Sub
	End Class
End Namespace
VB   C#

En outre, comme vous l'avez peut-être remarqué, le rendu à partir de XAML vous donne également un accès complet à toutes les fonctionnalités disponibles dans RenderingOptions. Il s'agit notamment d'ajouter le texte et les en-têtes et pieds de page HTML. Vous pouvez également images de timbres, ajouter numéros de pageet même de personnaliser la taille et la mise en page de la page. Toutes ces options sont disponibles lorsque vous utilisez cette méthode pour créer un PDF.

Modifier le fichier MainPage.xaml

Dans le fichier MainPage.xaml, remplacez la fonction par défaut OnCounterClicked par la nouvelle fonction PrintToPdf. En cliquant sur ce bouton, la méthode PrintToPdf est exécutée et le PDF est créé.

<Button
x:Name="PrintToPdfBtn"
Text="Print to pdf"
SemanticProperties.Hint="Click to print page as PDF"
Clicked="PrintToPdf"
HorizontalOptions="Center" />
<Button
x:Name="PrintToPdfBtn"
Text="Print to pdf"
SemanticProperties.Hint="Click to print page as PDF"
Clicked="PrintToPdf"
HorizontalOptions="Center" />
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<Button x:Name="PrintToPdfBtn" Text="Print to pdf" SemanticProperties.Hint="Click to print page as PDF" Clicked="PrintToPdf" HorizontalOptions="Center" />
VB   C#

Sortie PDF

Avant d'enregistrer votre fichier PDF, vous pouvez y apporter d'autres modifications à l'aide des méthodes disponibles pour PdfDocument. Vous pouvez fusionner des pages, les séparerou les faire pivoter. Vous pouvez également ajouter annotations et signets à votre PDF.

Télécharger le projet d'application .NET MAUI

Vous pouvez télécharger le code complet de ce guide. Il s'agit d'un fichier zippé que vous pouvez ouvrir dans Visual Studio en tant que projet .NET MAUI App.

Cliquez ici pour télécharger le projet.

Chaknith Bin

Ingénieur logiciel

Chaknith est le Sherlock Holmes des développeurs. C'est en s'amusant à relever des défis de code qu'il s'est rendu compte pour la première fois qu'il pourrait avoir un avenir dans le domaine de l'ingénierie logicielle. Il se concentre sur IronXL et IronBarcode, mais il est fier d'aider les clients avec chaque produit. Chaknith tire parti des connaissances qu'il a acquises en discutant directement avec les clients pour améliorer les produits eux-mêmes. Ses commentaires anecdotiques vont au-delà des tickets Jira et soutiennent le développement de produits, la documentation et le marketing, afin d'améliorer l'expérience globale des clients.Quand il n'est pas au bureau, on peut le trouver en train d'apprendre sur l'apprentissage automatique, le codage et la randonnée.