Ir para o conteúdo do rodapé
USANDO O IRONPDF

Tutorial passo a passo de como visualizar PDFs no .NET MAUI

O .NET MAUI é a próxima geração do .NET que permite aos desenvolvedores criar aplicativos multiplataforma para desktop, web e dispositivos móveis, incluindo Xamarin.Forms, com uma única base de código. Com o .NET MAUI , você pode escrever seu aplicativo uma única vez e implantá-lo em várias plataformas, incluindo Windows, macOS, iOS, Android e tvOS, com o mesmo nome de projeto. O .NET MAUI também permite que você aproveite os recursos de interface do usuário mais recentes em cada plataforma, como o modo escuro e o suporte a toque no macOS ou o reconhecimento de voz no Windows 10.

Este artigo explicará como usar o IronPDF no aplicativo .NET MAUI para criar documentos PDF com muitas vantagens.


IronPDF: Biblioteca PDF em C

IronPDF é uma biblioteca .NET que permite gerar e editar arquivos PDF. É perfeito para uso em aplicações .NET MAUI , pois oferece uma ampla gama de recursos que podem ser personalizados para atender às suas necessidades específicas. Com sua API fácil de usar, o IronPDF simplifica a integração da funcionalidade de PDF em seu projeto .NET MAUI .

Pré-requisitos

Existem alguns pré-requisitos para criar um PDF e um visualizador de PDF em .NET MAUI usando o IronPDF:

  1. A versão mais recente do Visual Studio
  2. .NET Framework 6 ou 7
  3. Pacotes MAUI instalados no Visual Studio
  4. Aplicativo .NET MAUI em execução no Visual Studio

Passo 1: Instale o IronPDF

Uma das melhores maneiras de instalar o IronPDF em um novo projeto é usando o Console do Gerenciador de Pacotes NuGet dentro do Visual Studio. Existem algumas vantagens em usar esse método para instalar o IronPDF.

  • É fácil de fazer, e
  • Você pode ter certeza de que está usando a versão mais recente do IronPDF.

Passos para instalar o IronPDF

Primeiro, abra o Console do Gerenciador de Pacotes acessando Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes .

Como visualizar PDF no .NET MAUI (Tutorial passo a passo), Figura 1: Console do Gerenciador de Pacotes Console do Gerenciador de Pacotes

Em seguida, digite o seguinte comando:

Install-Package IronPdf

Isso instalará o pacote e todas as suas dependências, como a pasta assets.

Como visualizar PDF no .NET MAUI (Tutorial passo a passo), Figura 2: Instalação do IronPDF Instalação do IronPDF

Agora você pode começar a usar o IronPDF em seu projeto MAUI.

Etapa 2: Configurar o design de front-end no .NET MAUI

Primeiramente, crie um layout para as três funcionalidades do IronPDF.

URL para layout em PDF

Para o layout de URL para PDF, crie um rótulo com o texto "Insira o URL para converter em PDF" usando um controle de rótulo .NET MAUI . Em seguida, aplique um layout de pilha horizontal para organizar o controle de entrada e o botão horizontalmente. Em seguida, insira uma linha após os controles para dividir a próxima seção de controles.

<Label
    Text="Enter URL to Convert PDF"
    SemanticProperties.HeadingLevel="Level1"
    FontSize="18"
    HorizontalOptions="Center" 
/>
<HorizontalStackLayout
    HorizontalOptions="Center">
    <Border Stroke="White"
            StrokeThickness="2"
            StrokeShape="RoundRectangle 5,5,5,5"
            HorizontalOptions="Center">
        <Entry
            x:Name="URL"
            HeightRequest="50"
            WidthRequest="300" 
            HorizontalOptions="Center"
        />
    </Border>

    <Button
        x:Name="urlPDF"
        Text="Convert URL to PDF"
        Margin="30,0,0,0"
        Clicked="UrlToPdf"
        HorizontalOptions="Center" />
</HorizontalStackLayout>

<Line Stroke="White" X2="1500" />
<Label
    Text="Enter URL to Convert PDF"
    SemanticProperties.HeadingLevel="Level1"
    FontSize="18"
    HorizontalOptions="Center" 
/>
<HorizontalStackLayout
    HorizontalOptions="Center">
    <Border Stroke="White"
            StrokeThickness="2"
            StrokeShape="RoundRectangle 5,5,5,5"
            HorizontalOptions="Center">
        <Entry
            x:Name="URL"
            HeightRequest="50"
            WidthRequest="300" 
            HorizontalOptions="Center"
        />
    </Border>

    <Button
        x:Name="urlPDF"
        Text="Convert URL to PDF"
        Margin="30,0,0,0"
        Clicked="UrlToPdf"
        HorizontalOptions="Center" />
</HorizontalStackLayout>

<Line Stroke="White" X2="1500" />
XML

Layout de HTML para PDF

Para o layout da seção de conversão de HTML para PDF, crie um controle Editor e um botão. O controle Editor será usado para aceitar uma sequência de conteúdo HTML do usuário. Além disso, adicione uma linha como divisor.

<Label
    Text="Enter HTML to Convert to PDF"
    SemanticProperties.HeadingLevel="Level2"
    FontSize="18"
    HorizontalOptions="Center" />
<Border 
    Stroke="White"
    StrokeThickness="2"
    StrokeShape="RoundRectangle 5,5,5,5"
    HorizontalOptions="Center">

    <Editor
        x:Name="HTML"
        HeightRequest="200"
        WidthRequest="300" 
        HorizontalOptions="Center"
    />

</Border>

<Button
    x:Name="htmlPDF"
    Text="Convert HTML to PDF"
    Clicked="HtmlToPdf"
    HorizontalOptions="Center" />

<Line Stroke="White" X2="1500" />
<Label
    Text="Enter HTML to Convert to PDF"
    SemanticProperties.HeadingLevel="Level2"
    FontSize="18"
    HorizontalOptions="Center" />
<Border 
    Stroke="White"
    StrokeThickness="2"
    StrokeShape="RoundRectangle 5,5,5,5"
    HorizontalOptions="Center">

    <Editor
        x:Name="HTML"
        HeightRequest="200"
        WidthRequest="300" 
        HorizontalOptions="Center"
    />

</Border>

<Button
    x:Name="htmlPDF"
    Text="Convert HTML to PDF"
    Clicked="HtmlToPdf"
    HorizontalOptions="Center" />

<Line Stroke="White" X2="1500" />
XML

Layout de arquivo HTML para PDF

Para converter arquivos HTML em PDF, adicione apenas um botão. Esse botão ajudará a converter um arquivo HTML em um documento PDF usando o IronPDF.

<Label
    Text="Convert HTML file to PDF"
    SemanticProperties.HeadingLevel="Level2"
    FontSize="18"
    HorizontalOptions="Center" />

<Button
    x:Name="htmlFilePDF"
    Text="Convert HTML file to PDF"
    Clicked="FileToPdf"
    HorizontalOptions="Center" />
<Label
    Text="Convert HTML file to PDF"
    SemanticProperties.HeadingLevel="Level2"
    FontSize="18"
    HorizontalOptions="Center" />

<Button
    x:Name="htmlFilePDF"
    Text="Convert HTML file to PDF"
    Clicked="FileToPdf"
    HorizontalOptions="Center" />
XML

O código completo da interface do usuário

O código-fonte completo da interface gráfica .NET MAUI está disponível abaixo.

<?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="PDF_Viewer.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Label
                Text="Enter URL to Convert PDF"
                SemanticProperties.HeadingLevel="Level1"
                FontSize="18"
                HorizontalOptions="Center" 
            />
            <HorizontalStackLayout
                HorizontalOptions="Center">
                <Border Stroke="White"
                        StrokeThickness="2"
                        StrokeShape="RoundRectangle 5,5,5,5"
                        HorizontalOptions="Center">
                    <Entry
                        x:Name="URL"
                        HeightRequest="50"
                        WidthRequest="300" 
                        HorizontalOptions="Center"
                    />
                </Border>

                <Button
                    x:Name="urlPDF"
                    Text="Convert URL to PDF"
                    Margin="30,0,0,0"
                    Clicked="UrlToPdf"
                    HorizontalOptions="Center" />
            </HorizontalStackLayout>

            <Line Stroke="White" X2="1500" />

            <Label
                Text="Enter HTML to Convert to PDF"
                SemanticProperties.HeadingLevel="Level2"
                FontSize="18"
                HorizontalOptions="Center" />
            <Border 
                Stroke="White"
                StrokeThickness="2"
                StrokeShape="RoundRectangle 5,5,5,5"
                HorizontalOptions="Center">

                <Editor
                    x:Name="HTML"
                    HeightRequest="200"
                    WidthRequest="300" 
                    HorizontalOptions="Center"
                />

            </Border>

            <Button
                x:Name="htmlPDF"
                Text="Convert HTML to PDF"
                Clicked="HtmlToPdf"
                HorizontalOptions="Center" />

            <Line Stroke="White" X2="1500" />

            <Label
                Text="Convert HTML file to PDF"
                SemanticProperties.HeadingLevel="Level2"
                FontSize="18"
                HorizontalOptions="Center" />

            <Button
                x:Name="htmlFilePDF"
                Text="Convert HTML file to PDF"
                Clicked="FileToPdf"
                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="PDF_Viewer.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">
            <Label
                Text="Enter URL to Convert PDF"
                SemanticProperties.HeadingLevel="Level1"
                FontSize="18"
                HorizontalOptions="Center" 
            />
            <HorizontalStackLayout
                HorizontalOptions="Center">
                <Border Stroke="White"
                        StrokeThickness="2"
                        StrokeShape="RoundRectangle 5,5,5,5"
                        HorizontalOptions="Center">
                    <Entry
                        x:Name="URL"
                        HeightRequest="50"
                        WidthRequest="300" 
                        HorizontalOptions="Center"
                    />
                </Border>

                <Button
                    x:Name="urlPDF"
                    Text="Convert URL to PDF"
                    Margin="30,0,0,0"
                    Clicked="UrlToPdf"
                    HorizontalOptions="Center" />
            </HorizontalStackLayout>

            <Line Stroke="White" X2="1500" />

            <Label
                Text="Enter HTML to Convert to PDF"
                SemanticProperties.HeadingLevel="Level2"
                FontSize="18"
                HorizontalOptions="Center" />
            <Border 
                Stroke="White"
                StrokeThickness="2"
                StrokeShape="RoundRectangle 5,5,5,5"
                HorizontalOptions="Center">

                <Editor
                    x:Name="HTML"
                    HeightRequest="200"
                    WidthRequest="300" 
                    HorizontalOptions="Center"
                />

            </Border>

            <Button
                x:Name="htmlPDF"
                Text="Convert HTML to PDF"
                Clicked="HtmlToPdf"
                HorizontalOptions="Center" />

            <Line Stroke="White" X2="1500" />

            <Label
                Text="Convert HTML file to PDF"
                SemanticProperties.HeadingLevel="Level2"
                FontSize="18"
                HorizontalOptions="Center" />

            <Button
                x:Name="htmlFilePDF"
                Text="Convert HTML file to PDF"
                Clicked="FileToPdf"
                HorizontalOptions="Center" />
        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Etapa 3: Código para salvar e visualizar o arquivo PDF

O .NET MAUI não possui nenhuma função pré-construída para salvar arquivos no armazenamento local. Portanto, é necessário escrevermos o código nós mesmos. Para criar a funcionalidade de salvar e visualizar, uma classe parcial chamada SaveService é criada com uma função parcial void chamada SaveAndView com três parâmetros: o nome do arquivo, o tipo de conteúdo do arquivo e o fluxo de memória para escrever o arquivo.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PDF_Viewer
{
    public partial class SaveService
    {
        public partial void SaveAndView(string filename, string contentType, MemoryStream stream);
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PDF_Viewer
{
    public partial class SaveService
    {
        public partial void SaveAndView(string filename, string contentType, MemoryStream stream);
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks

Namespace PDF_Viewer
	Partial Public Class SaveService
		Public Partial Private Sub SaveAndView(ByVal filename As String, ByVal contentType As String, ByVal stream As MemoryStream)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Será necessário implementar a funcionalidade de salvar e visualizar dados em cada plataforma que se pretenda suportar (por exemplo, Android, macOS e/ou Windows). Para a plataforma Windows, crie um arquivo chamado "SaveWindows.cs" e implemente o método parcial SaveAndView:

using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Popups;

namespace PDF_Viewer
{
    public partial class SaveService
    {
        public async partial void SaveAndView(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 FileSavePicker();
                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 PDF_Viewer
{
    public partial class SaveService
    {
        public async partial void SaveAndView(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 FileSavePicker();
                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);
                }
            }
        }
    }
}
Imports Windows.Storage
Imports Windows.Storage.Pickers
Imports Windows.Storage.Streams
Imports Windows.UI.Popups

Namespace PDF_Viewer
	Partial Public Class SaveService
		Public Async Sub SaveAndView(ByVal filename As String, ByVal contentType As String, ByVal stream As MemoryStream)
			Dim stFile As StorageFile
			Dim extension As String = Path.GetExtension(filename)
			'Gets process windows handle to open the dialog in application process.
			Dim windowHandle As IntPtr = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle
			If Not Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons") Then
				'Creates file save picker to save a file.
				Dim savePicker As New FileSavePicker()
				savePicker.DefaultFileExtension = ".pdf"
				savePicker.SuggestedFileName = filename
				'Saves the file as PDF file.
				savePicker.FileTypeChoices.Add("PDF", New List(Of String)() From {".pdf"})

				WinRT.Interop.InitializeWithWindow.Initialize(savePicker, windowHandle)
				stFile = Await savePicker.PickSaveFileAsync()
			Else
				Dim local As StorageFolder = ApplicationData.Current.LocalFolder
				stFile = Await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting)
			End If
			If stFile IsNot Nothing Then
				Using zipStream As IRandomAccessStream = Await stFile.OpenAsync(FileAccessMode.ReadWrite)
					'Writes compressed data from memory to file.
					Using outstream As Stream = zipStream.AsStreamForWrite()
						outstream.SetLength(0)
						'Saves the stream as file.
						Dim buffer() As Byte = stream.ToArray()
						outstream.Write(buffer, 0, buffer.Length)
						outstream.Flush()
					End Using
				End Using
				'Create message dialog box.
				Dim msgDialog As New MessageDialog("Do you want to view the document?", "File has been created successfully")
				Dim yesCmd As New UICommand("Yes")
				msgDialog.Commands.Add(yesCmd)
				Dim noCmd As New UICommand("No")
				msgDialog.Commands.Add(noCmd)

				WinRT.Interop.InitializeWithWindow.Initialize(msgDialog, windowHandle)

				'Showing a dialog box.
				Dim cmd As IUICommand = Await msgDialog.ShowAsync()
				If cmd.Label = yesCmd.Label Then
					'Launch the saved file.
					Await Windows.System.Launcher.LaunchFileAsync(stFile)
				End If
			End If
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Para Android e macOS, você precisa criar arquivos separados com implementações comparáveis ​​de SaveAndView. Você pode obter um exemplo funcional neste repositório do GitHub do MAUI PDF Viewer .

Etapa 4: Código para funcionalidades de PDF

Agora, é hora de escrever o código para as funcionalidades de PDF. Vamos começar com a funcionalidade de URL para PDF.

Funcionalidade de URL para PDF

Crie uma função UrlToPdf para a funcionalidade de URL para PDF. Dentro da função, instancie o objeto ChromePdfRenderer e use a função RenderUrlAsPdf para converter a URL em documentos PDF. A função RenderUrlAsPdf obtém os dados da URL do servidor web e os processa para convertê-los em um documento PDF. Nos parâmetros, passe o texto no controle de entrada da URL, crie um objeto da classe SaveService e use a função SaveAndView. Nos parâmetros da função SaveAndView, passe o fluxo do arquivo PDF gerado.

A função SaveAndView ajuda a salvar arquivos em qualquer caminho personalizado e oferece a opção de visualizar arquivos PDF. Por fim, exiba uma caixa de alerta com informações sobre a criação do arquivo PDF. Se um usuário tentar criar um arquivo PDF com um campo de entrada vazio, será exibida uma caixa de alerta com uma mensagem de erro e um aviso.

private void UrlToPdf(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(URL.Text))
    {
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf(URL.Text.Trim());
        SaveService saveService = new SaveService();
        saveService.SaveAndView("URLtoPDF.pdf", "application/pdf", pdf.Stream);
        DisplayAlert("Success", "PDF from URL Created!", "OK");
    }
    else
    {
        DisplayAlert("Error", "Field can't be empty! \nPlease enter URL!", "OK");
    }

}
private void UrlToPdf(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(URL.Text))
    {
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf(URL.Text.Trim());
        SaveService saveService = new SaveService();
        saveService.SaveAndView("URLtoPDF.pdf", "application/pdf", pdf.Stream);
        DisplayAlert("Success", "PDF from URL Created!", "OK");
    }
    else
    {
        DisplayAlert("Error", "Field can't be empty! \nPlease enter URL!", "OK");
    }

}
Imports Microsoft.VisualBasic

Private Sub UrlToPdf(ByVal sender As Object, ByVal e As EventArgs)
	If Not String.IsNullOrEmpty(URL.Text) Then
		Dim renderer = New IronPdf.ChromePdfRenderer()
		Dim pdf = renderer.RenderUrlAsPdf(URL.Text.Trim())
		Dim saveService As New SaveService()
		saveService.SaveAndView("URLtoPDF.pdf", "application/pdf", pdf.Stream)
		DisplayAlert("Success", "PDF from URL Created!", "OK")
	Else
		DisplayAlert("Error", "Field can't be empty! " & vbLf & "Please enter URL!", "OK")
	End If

End Sub
$vbLabelText   $csharpLabel

Funcionalidade de conversão de HTML para PDF

Para converter HTML em PDF, crie a função HtmlToPdf e use a função RenderHtmlAsPdf . Utilize o texto do controle Editor e passe-o como parâmetro da função RenderHtmlAsPdf. Semelhante à função acima, use a função SaveAndView para habilitar a funcionalidade de visualização do arquivo PDF após o salvamento.

private void HtmlToPdf(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(HTML.Text))
    {
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(HTML.Text);
        SaveService saveService = new SaveService();
        saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", pdf.Stream);
        DisplayAlert("Success", "PDF from HTML Created!", "OK");
    }
    else
    {
        DisplayAlert("Error", "Field can't be empty! \nPlease enter valid HTML!", "OK");
    }
}
private void HtmlToPdf(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(HTML.Text))
    {
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(HTML.Text);
        SaveService saveService = new SaveService();
        saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", pdf.Stream);
        DisplayAlert("Success", "PDF from HTML Created!", "OK");
    }
    else
    {
        DisplayAlert("Error", "Field can't be empty! \nPlease enter valid HTML!", "OK");
    }
}
Imports Microsoft.VisualBasic

Private Sub HtmlToPdf(ByVal sender As Object, ByVal e As EventArgs)
	If Not String.IsNullOrEmpty(HTML.Text) Then
		Dim renderer = New IronPdf.ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf(HTML.Text)
		Dim saveService As New SaveService()
		saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", pdf.Stream)
		DisplayAlert("Success", "PDF from HTML Created!", "OK")
	Else
		DisplayAlert("Error", "Field can't be empty! " & vbLf & "Please enter valid HTML!", "OK")
	End If
End Sub
$vbLabelText   $csharpLabel

Funcionalidade de conversão de arquivo HTML para PDF

Crie a função FileToPdf para converter arquivos HTML em arquivos PDF. Utilize a função RenderHtmlFileAsPdf e passe o caminho do arquivo HTML como parâmetro. Ele converte todo o conteúdo HTML em um PDF e salva o arquivo de saída.

private void FileToPdf(object sender, EventArgs e)
{
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Users\Administrator\Desktop\index.html");
    SaveService saveService = new SaveService();
    saveService.SaveAndView("HTML File to PDF.pdf", "application/pdf", pdf.Stream);
    DisplayAlert("Success", "PDF from File Created!", "OK");
}
private void FileToPdf(object sender, EventArgs e)
{
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlFileAsPdf(@"C:\Users\Administrator\Desktop\index.html");
    SaveService saveService = new SaveService();
    saveService.SaveAndView("HTML File to PDF.pdf", "application/pdf", pdf.Stream);
    DisplayAlert("Success", "PDF from File Created!", "OK");
}
Private Sub FileToPdf(ByVal sender As Object, ByVal e As EventArgs)
	Dim renderer = New IronPdf.ChromePdfRenderer()
	Dim pdf = renderer.RenderHtmlFileAsPdf("C:\Users\Administrator\Desktop\index.html")
	Dim saveService As New SaveService()
	saveService.SaveAndView("HTML File to PDF.pdf", "application/pdf", pdf.Stream)
	DisplayAlert("Success", "PDF from File Created!", "OK")
End Sub
$vbLabelText   $csharpLabel

Saída

Após executar o projeto, o resultado será semelhante a este.

Como visualizar PDF no .NET MAUI (tutorial passo a passo), Figura 3: Saída Saída

Insira o endereço do site da Microsoft nesta seção e clique no botão.

Como visualizar PDF no .NET MAUI (Tutorial passo a passo), Figura 4: URL para PDF URL para PDF

Após a criação do arquivo PDF, uma caixa de diálogo é exibida para salvar o arquivo no destino personalizado.

Como visualizar PDF no .NET MAUI (Tutorial passo a passo), Figura 5: Salvar arquivo Salvar arquivo

Após salvar o arquivo, esta janela pop-up é exibida e oferece a opção de selecionar um visualizador de PDF para visualizar o arquivo PDF.

Como visualizar PDF no .NET MAUI (Tutorial passo a passo), Figura 6: Janela pop-up do visualizador de PDF Janela pop-up do visualizador de PDF

O IronPDF converte URLs em PDF de forma excepcional. Preserva todas as cores e imagens em sua forma e formato originais.

Como visualizar PDF no .NET MAUI (Tutorial passo a passo), Figura 7: Janela pop-up do visualizador de PDF Janela pop-up do visualizador de PDF

O mesmo procedimento deve ser seguido para todas as outras funcionalidades. Confira esta postagem do blog IronPDF em Blazor para saber mais sobre como o IronPDF funciona no Blazor.

Aprenda como converter uma página MAUI de XAML para um documento PDF visitando " Como converter XAML para PDF no MAUI ".

Resumo

Este tutorial utilizou o IronPDF no aplicativo .NET MAUI para criar um arquivo PDF e um visualizador de PDF. O .NET MAUI é uma ótima ferramenta para criar aplicativos multiplataforma com uma única base de código. O IronPDF ajuda a criar e personalizar arquivos PDF facilmente em qualquer aplicação .NET . O IronPDF é totalmente compatível com a plataforma .NET MAUI .

O IronPDF é gratuito para desenvolvimento. Você pode obter uma chave de avaliação gratuita para testar o IronPDF em produção. Para obter mais informações sobre o IronPDF e suas funcionalidades, visite o site oficial do IronPDF .

Perguntas frequentes

Como posso integrar um visualizador de PDF em um aplicativo .NET MAUI?

Para integrar um visualizador de PDF em um aplicativo .NET MAUI, você pode usar o IronPDF para lidar com a renderização e visualização de arquivos PDF. O IronPDF permite renderizar PDFs a partir de URLs, strings HTML e arquivos HTML, que podem então ser salvos e exibidos usando várias ferramentas de visualização de PDF dentro do .NET MAUI.

Quais são os passos envolvidos na configuração do IronPDF for .NET MAUI?

A configuração do IronPDF for .NET MAUI envolve a instalação do pacote IronPDF através do Gerenciador de Pacotes NuGet no Visual Studio, a configuração do seu projeto para lidar com a renderização de PDFs e o uso dos métodos do IronPDF para converter HTML, URLs ou arquivos HTML em documentos PDF.

Como posso garantir que o layout do meu PDF seja preservado no .NET MAUI?

O IronPDF oferece recursos robustos para preservar layouts de PDF em aplicativos .NET MAUI. Usando métodos como RenderHtmlAsPdf ou RenderUrlAsPdf , você pode converter seu conteúdo em PDF mantendo a formatação e o layout originais.

Quais são os problemas comuns ao visualizar PDFs no .NET MAUI e como eles podem ser resolvidos?

Problemas comuns ao visualizar PDFs no .NET MAUI incluem erros de renderização específicos da plataforma e permissões de acesso a arquivos. Esses problemas podem ser resolvidos usando os recursos multiplataforma do IronPDF e garantindo o gerenciamento adequado das permissões de arquivo no código-fonte do seu aplicativo.

Posso converter conteúdo HTML para PDF em um aplicativo .NET MAUI?

Sim, você pode converter conteúdo HTML em PDF em um aplicativo .NET MAUI usando o método RenderHtmlAsPdf do IronPDF. Isso permite transformar strings HTML em documentos PDF totalmente formatados de forma eficiente.

Como faço para salvar e visualizar arquivos no .NET MAUI?

No .NET MAUI, você pode usar o IronPDF para gerar arquivos PDF e, em seguida, implementar o salvamento e a visualização desses arquivos usando APIs de manipulação de arquivos específicas da plataforma. O IronPDF permite salvar arquivos PDF no armazenamento local, que podem então ser abertos com um visualizador de PDF.

O IronPDF é compatível com todas as plataformas .NET MAUI?

Sim, o IronPDF é compatível com todas as plataformas suportadas pelo .NET MAUI, incluindo Windows, macOS, iOS, Android e tvOS, proporcionando uma experiência perfeita de criação e visualização de PDFs em todos esses sistemas.

Como posso testar o IronPDF no meu projeto .NET MAUI antes da implantação completa?

Você pode testar o IronPDF em seu projeto .NET MAUI usando a licença de desenvolvimento gratuita. Isso permite integrar e testar as funcionalidades de PDF em seu aplicativo antes de adquirir uma licença completa de produção.

O IronPDF é compatível com o .NET 10 e quais são os benefícios disso?

Sim, o IronPDF é totalmente compatível com o .NET 10. Ele funciona imediatamente, sem necessidade de soluções alternativas personalizadas, ao criar aplicativos com o .NET 10, incluindo aplicativos MAUI, web, desktop e baseados em nuvem. O uso do .NET 10 oferece acesso às melhorias mais recentes da plataforma, otimizações de desempenho e APIs atualizadas.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim