Jak wyświetlać PDF w .NET MAUI (Samouczek krok po kroku)
.NET MAUI to nowa generacja platformy .NET, która umożliwia programistom tworzenie wieloplatformowych aplikacji desktopowych, internetowych i mobilnych, w tym Xamarin.Forms, przy użyciu jednego kodu źródłowego. Dzięki .NET MAUI możesz napisać aplikację raz i wdrożyć ją na wielu platformach, w tym Windows, macOS, iOS, Android i tvOS, zachowując tę samą nazwę projektu. .NET MAUI pozwala również korzystać z najnowszych funkcji interfejsu użytkownika na każdej platformie, takich jak tryb ciemny i obsługa dotykowa w systemie macOS lub rozpoznawanie mowy w systemie Windows 10.
W tym artykule wyjaśnimy, jak korzystać z IronPDF w aplikacji .NET MAUI, aby tworzyć dokumenty PDF oferujące wiele korzyści.
Jak wyświetlić plik PDF w .NET MAUI
- Zainstaluj IronPDF, aby wyświetlać pliki PDF w .NET MAUI
- Konfiguracja Projekt interfejsu użytkownika projektu MAUI
- Obsługa zapisywania plików w pamięci lokalnej i przeglądania plików PDF
- Użyj metod renderowania dla adresów URL, ciągów HTML lub plików
- Przekaż wyrenderowany plik PDF do niestandardowego modułu obsługi w kroku 3
IronPDF: biblioteka PDF dla języka C
IronPDF to biblioteka .NET, która umożliwia generowanie i edycję plików PDF. Idealnie nadaje się do stosowania w aplikacjach .NET MAUI, ponieważ oferuje szeroki zakres funkcji, które można dostosować do konkretnych potrzeb. Dzięki łatwemu w użyciu interfejsowi API IronPDF ułatwia integrację funkcji PDF z projektem .NET MAUI.
Wymagania wstępne
Istnieje kilka warunków wstępnych dotyczących tworzenia plików PDF i przeglądarki PDF w .NET MAUI przy użyciu IronPDF:
- Najnowsza wersja programu Visual Studio
- .NET Framework 6 lub 7
- Pakiety MAUI zainstalowane w Visual Studio
- Aplikacja .NET MAUI działająca w Visual Studio
Krok 1: Zainstaluj IronPDF
Jednym z najlepszych sposobów zainstalowania IronPDF w nowym projekcie jest użycie konsoli NuGet Package Manager Console w Visual Studio. Korzystanie z tej metody instalacji IronPDF ma kilka zalet.
- To proste, a
- Możesz mieć pewność, że korzystasz z najnowszej wersji IronPDF.
Kroki instalacji IronPDF
Najpierw otwórz konsolę menedżera pakietów, przechodząc do menu Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów.
Konsola menedżera pakietów
Następnie wpisz następujące polecenie:
Install-Package IronPdf
Spowoduje to zainstalowanie pakietu i wszystkich jego zależności, takich jak folder assets.
Instalacja IronPDF
Teraz możesz zacząć korzystać z IronPDF w swoim projekcie MAUI.
Krok 2: Konfiguracja projektu interfejsu użytkownika w .NET MAUI
Najpierw należy stworzyć układ graficzny dla trzech funkcji IronPDF.
URL do układu PDF
W przypadku układu "URL do PDF" należy utworzyć etykietę z tekstem "Wprowadź adres URL, aby przekonwertować plik PDF" przy użyciu kontrolki etykiety .NET MAUI. Następnie zastosuj układ poziomy, aby ustawić kontrolkę Entry i przycisk w linii poziomej. Następnie wstaw linię po elementach sterujących, aby oddzielić kolejną sekcję elementów sterujących.
<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" />
Układ HTML do PDF
Aby sformatować sekcję HTML do PDF, utwórz kontrolkę Editor oraz przycisk. Kontrolka Editor będzie używana do przyjmowania ciągu znaków treści HTML od użytkownika. Dodatkowo proszę dodać linię jako separator.
<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" />
Układ pliku HTML do PDF
W przypadku plików HTML do PDF należy dodać tylko jeden przycisk. Ten przycisk pomoże przekonwertować plik HTML na dokument PDF przy użyciu 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" />
Kompletny kod interfejsu użytkownika
Pełny kod źródłowy frontendu .NET MAUI znajduje się poniżej.
<?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>
Krok 3: Kod do zapisywania i przeglądania plików PDF
.NET MAUI nie posiada żadnej wbudowanej funkcji do zapisywania plików w lokalnej pamięci. W związku z tym konieczne jest samodzielne napisanie kodu. W celu utworzenia funkcji zapisywania i przeglądania tworzona jest klasa częściowa o nazwie SaveService z funkcją częściową typu void o nazwie SaveAndView z trzema parametrami: nazwą pliku, typem zawartości pliku oraz strumieniem pamięci do zapisu pliku.
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
Funkcje zapisywania i przeglądania będą musiały zostać zaimplementowane dla każdej platformy, która ma być obsługiwana (np. dla systemów Android, macOS i/lub Windows). W przypadku platformy Windows należy utworzyć plik o nazwie "SaveWindows.cs" i zaimplementować metodę częściową 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
W przypadku systemów Android i macOS należy utworzyć oddzielne pliki z porównywalnymi implementacjami SaveAndView. Przykład działającego rozwiązania można znaleźć w repozytorium GitHub MAUI PDF Viewer.
Krok 4: Kod funkcji PDF
Teraz nadszedł czas na napisanie kodu dla funkcji PDF. Zacznijmy od funkcji konwersji adresów URL do formatu PDF.
Funkcja konwersji URL na PDF
Utwórz funkcję UrlToPdf dla funkcji konwersji adresu URL na plik PDF. Wewnątrz funkcji należy utworzyć instancję obiektu ChromePdfRenderer i użyć funkcji RenderUrlAsPdf do konwersji adresu URL na dokumenty PDF. Funkcja RenderUrlAsPdf pobiera dane z adresu URL z serwera internetowego i przetwarza je, aby przekształcić je w dokument PDF. W parametrach przekaż tekst z pola wprowadzania adresu URL, utwórz obiekt klasy SaveService i użyj funkcji SaveAndView. W parametrach funkcji SaveAndView należy przekazać strumień wygenerowanego pliku PDF.
Funkcja SaveAndView pomaga zapisywać pliki w dowolnej ścieżce oraz umożliwia przeglądanie plików PDF. Na koniec wyświetl okno z informacją o tworzeniu pliku PDF. Jeśli użytkownik spróbuje utworzyć plik PDF z pustym polem, wyświetli się okno z komunikatem o błędzie i ostrzeżeniem.
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
Funkcja konwersji HTML do PDF
Aby skorzystać z funkcji konwersji HTML do PDF, należy utworzyć funkcję HtmlToPdf i użyć funkcji RenderHtmlAsPdf. Użyj tekstu z kontrolki Editor i przekaż go w parametrach funkcji RenderHtmlAsPdf. Podobnie jak w przypadku powyższej funkcji, użyj funkcji SaveAndView, aby włączyć możliwość przeglądania pliku PDF po zapisaniu.
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
Funkcja konwersji plików HTML do formatu PDF
Utwórz funkcję FileToPdf do konwersji plików HTML na pliki PDF. Użyj funkcji RenderHtmlFileAsPdf i przekaż ścieżkę do pliku HTML jako parametr. Konwertuje całą zawartość HTML do formatu PDF i zapisuje plik wyjściowy.
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
Wynik
Po uruchomieniu projektu wynik będzie wyglądał następująco.
Wynik
Wpisz adres URL strony Microsoftu w tej sekcji i kliknij przycisk.
URL do pliku PDF
Po utworzeniu pliku PDF wyświetla się okno dialogowe umożliwiające zapisanie pliku w wybranej lokalizacji.
Zapisz plik
Po zapisaniu pliku pojawia się to okienko, które umożliwia wybranie przeglądarki PDF do wyświetlenia pliku.
Wyskakujące okienko przeglądarki PDF
IronPDF znakomicie konwertuje adresy URL do formatu PDF. Zachowuje wszystkie kolory i obrazy w ich oryginalnym kształcie i formatowaniu.
Wyskakujące okienko przeglądarki PDF
Tę samą procedurę należy zastosować w odniesieniu do wszystkich pozostałych funkcji. Zapoznaj się z tym wpisem na blogu IronPDF w Blazor, aby dowiedzieć się więcej o działaniu IronPDF w Blazor.
Dowiedz się, jak przekonwertować stronę MAUI w formacie XAML na dokument PDF, odwiedzając stronę "Jak przekonwertować XAML na PDF w MAUI".
Podsumowanie
W tym samouczku wykorzystano IronPDF w aplikacji .NET MAUI do utworzenia pliku PDF i przeglądarki PDF. .NET MAUI to doskonałe narzędzie do tworzenia aplikacji wieloplatformowych w oparciu o jedną bazę kodu. IronPDF pomaga w łatwym tworzeniu i dostosowywaniu plików PDF w dowolnej aplikacji .NET. IronPDF jest w pełni kompatybilny z platformą .NET MAUI.
IronPDF jest bezpłatny do celów programistycznych. Możesz otrzymać bezpłatny klucz próbny, aby przetestować IronPDF w środowisku produkcyjnym. Aby uzyskać więcej informacji na temat IronPDF i jego możliwości, odwiedź oficjalną stronę internetową IronPDF.
Często Zadawane Pytania
Jak zintegrować przeglądarkę plików PDF z aplikacją .NET MAUI?
Aby zintegrować przeglądarkę plików PDF z aplikacją .NET MAUI, można użyć biblioteki IronPDF do renderowania i wyświetlania plików PDF. IronPDF umożliwia renderowanie plików PDF z adresów URL, ciągów znaków HTML i plików HTML, które następnie można zapisać i wyświetlić za pomocą różnych narzędzi do przeglądania plików PDF w środowisku .NET MAUI.
Jakie kroki trzeba wykonać, żeby skonfigurować IronPDF for .NET MAUI?
Konfiguracja IronPDF for .NET MAUI obejmuje instalację pakietu IronPDF za pośrednictwem menedżera pakietów NuGet w Visual Studio, skonfigurowanie projektu pod kątem renderowania plików PDF oraz wykorzystanie metod IronPDF do konwersji kodu HTML, adresów URL lub plików HTML na dokumenty PDF.
Jak mogę zapewnić zachowanie układu pliku PDF w .NET MAUI?
IronPDF zapewnia solidne możliwości zachowania układów PDF w aplikacjach .NET MAUI. Korzystając z metod takich jak RenderHtmlAsPdf lub RenderUrlAsPdf, można konwertować treści do formatu PDF, zachowując oryginalne formatowanie i układ.
Jakie są typowe problemy związane z wyświetlaniem plików PDF w .NET MAUI i jak można je rozwiązać?
Typowe problemy związane z wyświetlaniem plików PDF w .NET MAUI obejmują błędy renderowania specyficzne dla platformy oraz uprawnienia dostępu do plików. Można je rozwiązać, korzystając z możliwości wieloplatformowych IronPDF i zapewniając prawidłową obsługę uprawnień do plików w kodzie aplikacji.
Czy mogę konwertować zawartość HTML do formatu PDF w aplikacji .NET MAUI?
Tak, w aplikacji .NET MAUI można konwertować zawartość HTML na PDF za pomocą metody RenderHtmlAsPdf biblioteki IronPDF. Pozwala to na wydajną transformację ciągów HTML w w pełni sformatowane dokumenty PDF.
Jak obsługiwać zapisywanie i przeglądanie plików w .NET MAUI?
W .NET MAUI można używać IronPDF do generowania plików PDF, a następnie wdrażać funkcje zapisywania i przeglądania plików za pomocą interfejsów API obsługi plików specyficznych dla danej platformy. IronPDF obsługuje zapisywanie plików PDF w pamięci lokalnej, które można następnie otworzyć za pomocą przeglądarki plików PDF.
Czy IronPDF jest kompatybilny ze wszystkimi docelowymi platformami .NET MAUI?
Tak, IronPDF jest kompatybilny ze wszystkimi platformami obsługiwanymi przez .NET MAUI, w tym Windows, macOS, iOS, Android i tvOS, zapewniając płynne tworzenie i przeglądanie plików PDF na tych systemach.
Jak mogę przetestować IronPDF w moim projekcie .NET MAUI przed pełnym wdrożeniem?
Możesz przetestować IronPDF w swoim projekcie .NET MAUI, korzystając z bezpłatnej licencji deweloperskiej. Pozwala to na integrację i przetestowanie funkcji PDF w aplikacji przed zakupem pełnej licencji produkcyjnej.
Czy IronPDF obsługuje .NET 10 i jakie korzyści to przynosi?
Tak, IronPDF w pełni obsługuje .NET 10. Działa od razu po instalacji, bez żadnych niestandardowych rozwiązań, podczas tworzenia aplikacji w .NET 10, w tym aplikacji MAUI, internetowych, desktopowych i opartych na chmurze. Korzystanie z .NET 10 zapewnia dostęp do najnowszych ulepszeń platformy, zwiększonej wydajności i zaktualizowanych interfejsów API.




