Cómo convertir XAML a PDF en MAUI

por Chaknith Bin

.NET MAUI (Interfaz de usuario multiplataforma) es un marco multiplataforma para crear aplicaciones nativas para dispositivos. Es una extensión de Xamarin.Forms y forma parte del ecosistema unificado de .NET 6. Permite a los desarrolladores de aplicaciones .NET crear aplicaciones para plataformas de escritorio, web y móviles utilizando componentes de interfaz de usuario comunes y un único código base. MAUI también te permite añadir código y recursos específicos de la plataforma cuando sea necesario.

IronPdf te permite generar documentos PDF desde la página MAUI, haciendo posible la creación de archivos/páginas PDF en estas aplicaciones. Sin embargo, IronPdf no es compatible actualmente con plataformas móviles.

Paquete de extensión IronPdf

El paquete IronPdf.Extensions.Maui es la extensión del paquete principal IronPdf. Dado que es una extensión, el paquete principal IronPdf sigue siendo necesario para convertir el contenido de la página de la aplicación MAUI en un documento PDF.

PM > Install-Package IronPdf.Extensions.Maui
Biblioteca NuGet de C# para PDF

Instalar con NuGet

Install-Package IronPdf.Extensions.Maui

Renderizar Página MAUI a PDF

Editar archivo MainPage.xaml.cs

  • Vaya del archivo MainPage.xaml a su archivo de código, MainPage.xaml.cs.
  • Cambia la función llamada OnCounterClicked por PrintToPdf. Utilice el código de ejemplo que figura a continuación.

    Para convertir tu página MAUI en un PDF, usa el método RenderContentPageToPdf. Se puede acceder al método instanciando la clase ChromePdfRenderer. Este método le proporcionará un objeto PdfDocument, que podrá guardar o visualizar utilizando el método SaveAs o un visor de PDF con Ver PDFs en MAUI.

    Tenga en cuenta
    En RenderContentPageToPdf aún no admiten la vinculación de datos.

: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();

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

        //  Renderizar PDF desde la página Maui
        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()

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

			'  Renderizar PDF desde la página Maui
			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#

Además, como habrás notado, renderizar desde XAML también te da acceso completo a todas las características disponibles en RenderingOptions. Esto incluye añadir texto y encabezados y pies de página HTML. También puede imágenes de sellosAñadir números de páginae incluso personalizar el tamaño y el diseño de la página. Todas estas opciones están disponibles cuando se utiliza este método para crear un PDF.

Editar archivo MainPage.xaml

En el archivo MainPage.xaml, sustituya la función predeterminada OnCounterClicked por la nueva función PrintToPdf. Al hacer clic en este botón se ejecutará el método PrintToPdf y se creará el 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" />
VB   C#

Salida PDF

Antes de guardar su archivo PDF, puede realizar más cambios en él utilizando los métodos disponibles en PdfDocument. Puede fusionar páginas, separarlaso girarlos. También puede añadir anotaciones y favoritos a su PDF.

Descargar proyecto de aplicación .NET MAUI

Puedes descargar el código completo de esta guía. Viene como un archivo comprimido que puedes abrir en Visual Studio como un proyecto de aplicación .NET MAUI.

Haga clic aquí para descargar el proyecto.

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.