Cómo convertir XAML a PDF en MAUI

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

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 permite generar documentos PDF a partir de páginas 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. Al tratarse de una extensión, el paquete principal IronPdf sigue siendo necesario para convertir la página de contenido de una 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 conVer PDFs en MAUI.

    Atención
    En RenderContentPageToPdf el método aún no es compatible con 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();

        // 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#

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ñadirtexto y encabezados y pies de página HTML. También puedeimágenes de sellosAñadirnú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. Puedefusionar páginas, separarlaso girarlos. También puede añadiranotaciones yfavoritos 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.

Descargar el proyecto de muestra completo de MAUI

Chaknith related to Descargar proyecto de aplicación .NET MAUI

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.