Crear un archivo PDF en .NET MAUI Usando IronPDF
.NET MAUI es una interfaz de usuarios multiplataforma de .NET que es un marco de trabajo para crear aplicaciones nativas móviles y de escritorio con C# y XAML. Puedes usar .NET MAUI para operar en Android, iOS, macOS y Windows usando una única base de código. .NET MAUI es de código abierto y es una mejora respecto a Xamarin Forms. Los controles de la interfaz de usuario han sido reescritos desde cero para mejorar el rendimiento y la extensibilidad. Además, se ha expandido desde la plataforma móvil para incluir casos de uso en escritorio. Si alguna vez has usado Xamarin Forms para crear interfaces de usuario multiplataforma, entonces descubrirás que el marco .NET MAUI tiene mucho en común con él.
Sin embargo, hay algunas diferencias. Puedes construir aplicaciones multiplataforma con el marco .NET MAUI usando un solo proyecto, pero puedes agregar código y recursos específicos de la plataforma si es necesario. Uno de los objetivos principales de .NET MAUI es permitirte escribir la mayor parte de la lógica de tu aplicación y el diseño de la interfaz de usuario en una única base de código. .NET MAUI estará disponible para todas las plataformas y soportará los patrones existentes MVVM y XAML.
.NET MAUI permite a los desarrolladores trabajar en varias plataformas, como el desarrollo móvil y las plataformas de Windows.
Características de IronPDF
IronPDF es un poderoso convertidor de PDF que puede manejar casi cualquier tarea que un navegador puede manejar. La biblioteca .NET para desarrolladores facilita la creación, lectura y manipulación de archivos PDF. IronPDF utiliza el motor de Google Chrome para convertir archivos HTML a PDF. Entre otras tecnologías web, IronPDF soporta HTML, ASPX, Convertir páginas Razor a PDF con IronPDF y MVC View. IronPDF soporta aplicaciones Microsoft .NET (tanto aplicaciones web ASP.NET como aplicaciones tradicionales de Windows). IronPDF también se puede utilizar para crear documentos PDF atractivos.
IronPDF puede crear archivos PDF desde archivos HTML con JavaScript y CSS que contengan JavaScript, CSS y archivos de imagen.
No solo puede convertir archivos HTML a PDF con IronPDF, sino que también puedes convertir archivos de imagen a PDF.
IronPDF puede ayudar a crear documentos PDF interactivos, llenar y enviar formularios interactivos con IronPDF, fusionar y dividir documentos PDF, extraer texto e imágenes de documentos PDF, buscar texto en documentos PDF, rasterizar páginas PDF a imágenes, convertir PDF a HTML y imprimir documentos PDF usando IronPrint.
IronPDF puede generar un documento a partir de una URL. Para el inicio de sesión detrás de HTML usando IronPDF para formularios de inicio de sesión, también permite el uso de credenciales de inicio de sesión de red personalizadas, agentes de usuario, proxies, cookies, cabeceras HTTP y variables de formulario.
IronPDF es una biblioteca que puede leer y completar documentos PDF y es capaz de extraer imágenes de documentos. Nos permite agregar cabeceras y pies de página a archivos PDF, texto, fotos, marcadores para facilitar la navegación, marcas de agua y más a los documentos. También nos permite unir y dividir páginas en un documento nuevo o existente. IronPDF es capaz de convertir documentos a objetos PDF sin usar un visor de Acrobat. También es posible convertir un archivo CSS en un documento PDF y los archivos de tipo media CSS pueden ser convertidos en documentos.
Cómo crear un archivo PDF en .NET MAUI
- Crea un nuevo proyecto PDF de .NET MAUI en Visual Studio
- Instala la biblioteca IronPDF usando NuGet
- Diseña la interfaz de usuario de páginas .NET MAUI
- Utilice el método
ChromePdfRenderer.RenderHtmlAsPdfpara generar un archivo PDF - Guarda el PDF en dispositivos con código específico.
Crear un nuevo proyecto en Visual Studio
Primero, crea un proyecto usando tanto Visual Studio Code como Visual Studio. Al usar Visual Studio Code, es necesario usar la herramienta de línea de comandos para instalar la plantilla de tipo de proyecto.
Abre el software Microsoft Visual Studio y ve al menú Archivo. Selecciona "nuevo proyecto," y en la ventana de nuevo proyecto selecciona "Aplicación .NET MAUI." Este artículo usará una Aplicación .NET MAUI para generar documentos PDF y guardarlos en una ubicación adecuada.
Crea un nuevo proyecto en Visual Studio
Introduce el nombre del proyecto y selecciona la ruta de archivo en el cuadro de texto apropiado. Luego, haz clic en el botón Crear, como en la captura de pantalla de abajo.
Configura el proyecto
El proyecto de Visual Studio ahora generará la estructura para la aplicación seleccionada siguiendo la plataforma Aplicación .NET MAUI. Ahora abrirá el archivo MainPage.cs para agregar código y construir/ejecutar la aplicación.
Agregando código en el archivo MainPage.cs
A continuación, instala la biblioteca para probar el código.
Instalar la biblioteca IronPDF
La Biblioteca IronPDF se puede descargar e instalar de cuatro maneras.
Estas son:
- Usando Visual Studio.
- Usando la Línea de Comandos de Visual Studio.
- Descarga directa desde el sitio web de NuGet.
- Descarga directa del sitio web de IronPDF.
Uso de Visual Studio
El software Visual Studio proporciona la opción de Gestor de Paquetes NuGet para instalar el paquete directamente en la solución. La captura de pantalla a continuación muestra cómo abrir el Administrador de Paquetes NuGet.
Navega a la interfaz del Administrador de Paquetes NuGet
Esto proporciona el cuadro de búsqueda para mostrar la lista de paquetes desde el sitio web de NuGet. En el Administrador de Paquetes NuGet, busca la palabra clave "IronPDF," como en la captura de pantalla de abajo.
Paquete IronPDF desde la interfaz del Administrador de Paquetes NuGet
En la imagen de arriba, los elementos de búsqueda relacionados están listados, selecciona la primera opción para instalar el paquete en la solución. Será instalado en todas las plataformas de la aplicación .NET MAUI, como las plataformas Android, iOS y Windows.
Uso de la línea de comandos de Visual Studio
En Visual Studio, ve a Herramientas > Administrador de Paquetes NuGet > Consola del Administrador de Paquetes
Introduce la siguiente línea en la pestaña Consola del Administrador de Paquetes:
Install-Package IronPdf
Ahora, el paquete se descargará/instalará en todas las plataformas .NET MAUI del proyecto actual y estará listo para usar.
Instalar el paquete en la Consola del Administrador de Paquetes
Descarga directa desde el sitio web de NuGet
La tercera forma es descargar el paquete NuGet directamente desde su sitio web accediendo a esta página del repositorio NuGet de IronPDF.
- Selecciona la opción de descarga del paquete en el menú de la derecha.
- Haz doble clic en el paquete descargado. Se instalará automáticamente.
- Recarga la solución y el paquete debería ser utilizable en tu proyecto.
Descarga directa desde el sitio web de IronPDF
Descarga el paquete ZIP de IronPDF más reciente directamente desde su sitio web. Una vez descargado, sigue los pasos a continuación para agregar el paquete a tu proyecto.
- Haz clic derecho sobre la opción Dependencias del proyecto desde la ventana de la solución.
- Selecciona la plataforma específica, luego selecciona las opciones de referencia y navega hasta la ubicación de la referencia descargada.
- Haz clic en OK para agregar la referencia.
También necesitarás agregar referencias a todas las plataformas compatibles con .NET MAUI.
Crear PDFs en una aplicación .NET MAUI usando IronPDF
Cuando se crea un proyecto, habrá un archivo autogenerado llamado MainPage.xaml. Aquí es donde colocar la interfaz de usuario de la aplicación .NET MAUI.
Sigue el código a continuación.
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MAUI_PDF.MainPage"
>
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Image
Source="dotnet_bot.png"
SemanticProperties.Description="Cute .NET bot waving hi to you!"
HeightRequest="200"
HorizontalOptions="Center" />
<Label
Text="Welcome to IronPDF!"
SemanticProperties.HeadingLevel="Level1"
FontSize="32"
HorizontalOptions="Center" />
<Button
x:Name="PdfBtn"
Text="Click me to generate PDF"
SemanticProperties.Hint="Click button to generate PDF"
Clicked="GeneratePDF"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage><?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MAUI_PDF.MainPage"
>
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Image
Source="dotnet_bot.png"
SemanticProperties.Description="Cute .NET bot waving hi to you!"
HeightRequest="200"
HorizontalOptions="Center" />
<Label
Text="Welcome to IronPDF!"
SemanticProperties.HeadingLevel="Level1"
FontSize="32"
HorizontalOptions="Center" />
<Button
x:Name="PdfBtn"
Text="Click me to generate PDF"
SemanticProperties.Hint="Click button to generate PDF"
Clicked="GeneratePDF"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>Una vez que se haya añadido el código anterior al archivo MainPage.xaml, abre el archivo MainPage.xaml.cs e incluye el siguiente método dentro de la clase MainPage:
private void GeneratePDF(object sender, EventArgs e)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>");
// Saves the memory stream as file.
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream);
}private void GeneratePDF(object sender, EventArgs e)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>");
// Saves the memory stream as file.
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream);
}El método GeneratePDF genera un nuevo documento PDF que contiene el texto "Hola, ¡IronPDF!..." y lo guarda en el ordenador del usuario en una ubicación especificada.
En el método anterior, se crea un nuevo ChromePdfRenderer e invoca el método RenderHtmlAsPdf para producir un PDF con "¡Hola IronPDF!..." desde HTML. El guardado del archivo se delegará a una clase llamada SaveService que se creará después. El archivo completo MainPage.xaml.cs se proporciona a continuación.
El archivo completo MainPage.xaml.cs se muestra a continuación. Ahora, crea un nuevo archivo de clase llamado SaveService.cs en la raíz del proyecto y agrega el siguiente código fuente:
// Change the namespace as desired, but make sure that all source files use this same namespace,
// or there will be errors!
namespace MAUI_IronPDF;
// This namespace is required to make use of IronPDF functionality
using IronPdf;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void GeneratePDF(object sender, EventArgs e)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>");
// Saves the memory stream as file.
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream);
}
}// Change the namespace as desired, but make sure that all source files use this same namespace,
// or there will be errors!
namespace MAUI_IronPDF;
// This namespace is required to make use of IronPDF functionality
using IronPdf;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void GeneratePDF(object sender, EventArgs e)
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>");
// Saves the memory stream as file.
SaveService saveService = new SaveService();
saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream);
}
}Crea un nuevo archivo llamado SaveService.cs en la raíz del proyecto y añade el código...
// Change the namespace as desired, but make sure that all source files use this same namespace,
// or there will be errors!
namespace MAUI_IronPDF
{
// SaveService partial class declaration ... this allows a layer of abstraction
// as we implement the save file details specially for each platform on which this app will
// operate!
public partial class SaveService
{
public void SaveAndView(string filename, string contentType, MemoryStream stream)
{
SaveFile(filename, contentType, stream);
}
// Additional partial files will provide implementations for this method specifically.
partial void SaveFile(string filename, string contentType, MemoryStream stream);
}
}// Change the namespace as desired, but make sure that all source files use this same namespace,
// or there will be errors!
namespace MAUI_IronPDF
{
// SaveService partial class declaration ... this allows a layer of abstraction
// as we implement the save file details specially for each platform on which this app will
// operate!
public partial class SaveService
{
public void SaveAndView(string filename, string contentType, MemoryStream stream)
{
SaveFile(filename, contentType, stream);
}
// Additional partial files will provide implementations for this method specifically.
partial void SaveFile(string filename, string contentType, MemoryStream stream);
}
}Para que esto sea posible, definimos SaveService como una clase parcial (con fines de abstracción) que contiene un método parcial, llamado SaveAndView. Siguiendo esto, la implementación de este método se definirá en una clase parcial separada SaveService.cs para una o más de las carpetas anidadas en la carpeta Platforms dentro del Explorador de Soluciones (ver imagen a continuación): 
La estructura de carpetas para implementar multiplataforma La estructura de carpetas para implementar en múltiples plataformas
Crea un nuevo archivo SaveService.cs en la carpeta de la plataforma de Windows que contenga el código mostrado a continuación: Crea un nuevo archivo SaveService.cs en la carpeta de la plataforma Windows que contenga el código mostrado a continuación:
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;
namespace MAUI_IronPDF;
public partial class SaveService
{
async partial void SaveFile(string filename, string contentType, MemoryStream stream)
{
StorageFile stFile;
string extension = Path.GetExtension(filename);
// Gets process windows handle to open the dialog in application process.
IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
// Creates file save picker to save a file.
FileSavePicker savePicker = new();
savePicker.DefaultFileExtension = ".pdf";
savePicker.SuggestedFileName = filename;
// Saves the file as PDF file.
savePicker.FileTypeChoices.Add("PDF", new List<string>() { ".pdf" });
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
stFile = await savePicker.PickSaveFileAsync();
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
stFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
}
if (stFile != null)
{
using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
{
// Writes compressed data from memory to file.
using Stream outstream = zipStream.AsStreamForWrite();
outstream.SetLength(0);
// Saves the stream as file.
byte [] buffer = stream.ToArray();
outstream.Write(buffer, 0, buffer.Length);
outstream.Flush();
}
// Create message dialog box.
MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
UICommand yesCmd = new("Yes");
msgDialog.Commands.Add(yesCmd);
UICommand noCmd = new("No");
msgDialog.Commands.Add(noCmd);
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
// Showing a dialog box.
IUICommand cmd = await msgDialog.ShowAsync();
if (cmd.Label == yesCmd.Label)
{
// Launch the saved file.
await Windows.System.Launcher.LaunchFileAsync(stFile);
}
}
}
}using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;
namespace MAUI_IronPDF;
public partial class SaveService
{
async partial void SaveFile(string filename, string contentType, MemoryStream stream)
{
StorageFile stFile;
string extension = Path.GetExtension(filename);
// Gets process windows handle to open the dialog in application process.
IntPtr windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
if (!Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
// Creates file save picker to save a file.
FileSavePicker savePicker = new();
savePicker.DefaultFileExtension = ".pdf";
savePicker.SuggestedFileName = filename;
// Saves the file as PDF file.
savePicker.FileTypeChoices.Add("PDF", new List<string>() { ".pdf" });
WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle);
stFile = await savePicker.PickSaveFileAsync();
}
else
{
StorageFolder local = ApplicationData.Current.LocalFolder;
stFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
}
if (stFile != null)
{
using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite))
{
// Writes compressed data from memory to file.
using Stream outstream = zipStream.AsStreamForWrite();
outstream.SetLength(0);
// Saves the stream as file.
byte [] buffer = stream.ToArray();
outstream.Write(buffer, 0, buffer.Length);
outstream.Flush();
}
// Create message dialog box.
MessageDialog msgDialog = new("Do you want to view the document?", "File has been created successfully");
UICommand yesCmd = new("Yes");
msgDialog.Commands.Add(yesCmd);
UICommand noCmd = new("No");
msgDialog.Commands.Add(noCmd);
WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle);
// Showing a dialog box.
IUICommand cmd = await msgDialog.ShowAsync();
if (cmd.Label == yesCmd.Label)
{
// Launch the saved file.
await Windows.System.Launcher.LaunchFileAsync(stFile);
}
}
}
}Construye y ejecuta la aplicación MAUI. 
La interfaz de usuario de la aplicación MAUI Haz clic en el botón "Generar PDF".
Haz clic en el botón "Generar PDF". 
Selecciona una ubicación para guardar el archivo PDF Seleccione una ubicación para guardar el archivo PDF
Conclusión
IronPDF es una popular biblioteca para generar, leer, editar y formatear PDFs. Todas las funciones de IronPDF están incluidas en una sola biblioteca. El soporte de productos y las actualizaciones también están disponibles por una cuota anual.
IronPDF viene con varias estructuras de precios. El precio básico de IronPDF comienza en $799. La cobertura de redistribución sin royalties también se puede comprar como un complemento. Todas las características de IronPDF están incluidas en una sola biblioteca.
Soporta plataformas universales como .NET MAUI. La cobertura de redistribución libre de regalías se puede adquirir como complemento. También incluye una excelente asistencia y documentación, lo que le permitirá utilizar plenamente la amplia gama de la biblioteca IronPDF y sus numerosas funciones.
Preguntas Frecuentes
¿Cómo puedo generar archivos PDF en una aplicación .NET MAUI?
Para generar archivos PDF en una aplicación .NET MAUI, puedes usar IronPDF. Comienza configurando un proyecto .NET MAUI en Visual Studio, instala IronPDF a través de NuGet y utiliza el método ChromePdfRenderer.RenderHtmlAsPdf para convertir contenido HTML en un documento PDF.
¿Qué hace a .NET MAUI adecuado para el desarrollo de aplicaciones multiplataforma?
.NET MAUI es ideal para el desarrollo de aplicaciones multiplataforma porque permite a los desarrolladores crear aplicaciones nativas móviles y de escritorio usando C# y XAML para Android, iOS, macOS y Windows desde una única base de código.
¿Cómo maneja IronPDF HTML, CSS y JavaScript en la conversión a PDF?
IronPDF utiliza el motor de Google Chrome para renderizar HTML, CSS y JavaScript en formato PDF de manera precisa, asegurando que las páginas web se conviertan sin perder el formato.
¿Cuál es el proceso para guardar archivos PDF en diferentes plataformas en una aplicación .NET MAUI?
En una aplicación .NET MAUI que use IronPDF, la clase SaveService se utiliza para guardar archivos PDF. Incluye implementaciones específicas de la plataforma para manejar el guardado de archivos en sistemas operativos como Windows y Android.
¿Cuáles son algunas características avanzadas disponibles en IronPDF para aplicaciones .NET?
IronPDF ofrece características avanzadas como la creación de PDFs interactivos, completar y enviar formularios, fusionar y dividir documentos, extraer texto e imágenes, y agregar encabezados, pies de página y marcas de agua.
¿Cómo integro IronPDF en un proyecto .NET MAUI en Visual Studio?
Para integrar IronPDF en un proyecto .NET MAUI, utiliza el Administrador de Paquetes NuGet en Visual Studio. Busca 'IronPDF' e instálalo en tu proyecto para comenzar a generar y gestionar PDFs.
¿Puede IronPDF convertir una URL de página web en un PDF en una aplicación .NET MAUI?
Sí, IronPDF puede convertir una URL de página web en un PDF usando sus capacidades de renderizado web para capturar contenido HTML, CSS y JavaScript de manera precisa y renderizarlo en formato PDF.
¿Cuál es el papel de XAML en el diseño para aplicaciones .NET MAUI?
XAML se usa en .NET MAUI para diseñar la interfaz de usuario de las aplicaciones. Permite a los desarrolladores crear diseños responsivos y visualmente atractivos que funcionan a la perfección en múltiples plataformas.
¿Cuáles son los beneficios de usar IronPDF en proyectos .NET MAUI?
IronPDF ofrece beneficios como facilidad de uso, documentación extensa, rendimiento y la capacidad de manejar diversas tareas de PDF, lo que lo convierte en una opción confiable para los desarrolladores que trabajan con PDFs en proyectos .NET MAUI.
¿IronPDF es totalmente compatible con .NET 10 y qué ventajas aporta?
Sí, IronPDF es totalmente compatible con .NET 10, con compatibilidad inmediata con las versiones 9, 8, 7, 6, Core, Standard y Framework. Usar IronPDF con .NET 10 le permite aprovechar mejoras de rendimiento como la reducción de las asignaciones de montón, un comportamiento JIT/en tiempo de ejecución mejorado y las nuevas funciones del lenguaje C#, lo que agiliza y optimiza la generación y manipulación de archivos PDF.






