Comment convertir XAML en PDF dans MAUI

Chaknith related to Comment convertir XAML en PDF dans MAUI
Chaknith Bin
septembre 11, 2023
Mise à jour décembre 10, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

.NET MAUI (Multi-platform App UI) est un framework multiplateforme pour créer des applications natives pour appareils. 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 permet de générer des documents PDF à partir de pages 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 package IronPdf.Extensions.Maui est l'extension du package principal IronPdf. Étant donné qu'il s'agit d'une extension, le package principal IronPdf est toujours nécessaire pour rendre la page de contenu d'une application MAUI en un 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.
  • Changez le nom de la fonction de OnCounterClicked à PrintToPdf. Utilisez l'exemple de code ci-dessous.

    Pour convertir votre page MAUI en PDF, utilisez la méthode RenderContentPageToPdf. La méthode peut être accessible en instanciant la classe ChromePdfRenderer. Cette méthode vous donnera un objet PdfDocument, que vous pouvez enregistrer ou visualiser en utilisant la méthode SaveAs ou un visualiseur PDF avec Visualiser des PDF dans MAUI.

    A noter
    La méthode RenderContentPageToPdf ne prend pas encore en charge la liaison des 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
$vbLabelText   $csharpLabel

De plus, 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. Cela inclut l'ajout de textes et en-têtes et pieds de page HTML. Vous pouvez également tamponner des images, ajouter des numéros de page, et même 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 OnCounterClicked par la nouvelle fonction PrintToPdf. En cliquant sur ce bouton, vous exécuterez la méthode PrintToPdf et créerez le PDF.

<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" />
$vbLabelText   $csharpLabel

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éparer ou les faire pivoter. Vous pouvez également ajouter des annotations et des 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.

Télécharger le projet MAUI complet

Chaknith related to Télécharger le projet d'application .NET MAUI
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.