
Como digitalizar várias páginas em um único arquivo PDF
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.
Como visualizar um arquivo PDF no .NET MAUI
- Instale o IronPDF para visualizar arquivos PDF no .NET MAUI.
- Configuração do design front-end do projeto MAUI
- Gerencie o salvamento de arquivos no armazenamento local e visualize PDFs.
- Utilize métodos de renderização para URL, string HTML ou arquivo.
- Passe o PDF renderizado para o manipulador personalizado na etapa 3.
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:
- A versão mais recente do Visual Studio
- .NET Framework 6 ou 7
- Pacotes MAUI instalados no Visual Studio
- 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 .
Console do Gerenciador de Pacotes
Em seguida, digite o seguinte comando:
Isso instalará o pacote e todas as suas dependências, como a pasta assets.
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" />
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" />
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" />
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>
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 void parcial 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);
}
}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 NamespaceSerá 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);
}
}
}
}
}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(filename As String, contentType As String, 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 NamespacePara Android e macOS, é necessário 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. Inside the function, instantiate the ChromePdfRenderer object and use the RenderUrlAsPdf function to convert the URL to PDF documents. 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 dá 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");
}
}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 SubFuncionalidade de conversão de HTML para PDF
Para converter HTML em PDF, crie a função HtmlToPdf e use a função RenderHtmlAsPdf. Use o texto do controle do Editor e passe-o nos parâmetros da função RenderHtmlAsPdf. Semelhante à função acima, use a função SaveAndView para habilitar a funcionalidade de visualizar o arquivo PDF após salvá-lo.
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 SubFuncionalidade de conversão de arquivo HTML para PDF
Crie a função FileToPdf para converter arquivos HTML em arquivos PDF. Use a função RenderHtmlFileAsPdf e passe o caminho do arquivo HTML como um 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 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 SubSaída
Após executar o projeto, o resultado será semelhante a este.
Saída
Insira o endereço do site da Microsoft nesta seção e clique no botão.
URL para PDF
Após a criação do arquivo PDF, uma caixa de diálogo é exibida para salvar o arquivo no destino personalizado.
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.
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.
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 como 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 .

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 bem estruturados e visualmente atraentes.
Artigos relacionados


