Przejdź do treści stopki
KORZYSTANIE Z IRONPDF
Jak wyświetlać pliki PDF w .NET Maui

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF

.NET Multi-platform App UI (.NET MAUI) to wieloplatformowy framework do tworzenia natywnych aplikacji mobilnych i desktopowych przy użyciu języków C# i XAML. Możesz używać .NET MAUI do pracy na systemach Android, iOS, macOS i Windows przy użyciu jednej bazy kodu. .NET MAUI jest oprogramowaniem typu open source i stanowi ulepszenie w stosunku do Xamarin Forms. Elementy interfejsu użytkownika zostały całkowicie przepisane pod kątem wydajności i rozszerzalności. Ponadto zakres zastosowań rozszerzył się z platformy mobilnej na przypadki użycia na komputerach stacjonarnych. Jeśli kiedykolwiek korzystałeś z Xamarin Forms do tworzenia wieloplatformowych interfejsów użytkownika, zauważysz, że framework .NET MAUI ma z nim wiele wspólnego.

Istnieją jednak pewne różnice. Za pomocą frameworka .NET MAUI można tworzyć aplikacje wieloplatformowe w ramach jednego projektu, ale w razie potrzeby można dodać kod i zasoby specyficzne dla danej platformy. Jednym z głównych celów .NET MAUI jest umożliwienie napisania jak największej części logiki aplikacji i układu interfejsu użytkownika w jednej bazie kodu. .NET MAUI będzie dostępne na wszystkich platformach i będzie obsługiwać istniejące wzorce MVVM oraz XAML.

.NET MAUI pozwala programistom pracować na różnych platformach, takich jak platformy mobilne i Windows.

Funkcje IronPDF

IronPDF to potężny konwerter plików PDF, który może wykonać niemal każde zadanie, z którym radzi sobie przeglądarka. Biblioteka .NET dla programistów ułatwia tworzenie, odczytywanie i edycję plików PDF. IronPDF wykorzystuje silnik Google Chrome do konwersji plików HTML na pliki PDF. Oprócz innych technologii internetowych IronPDF obsługuje HTML, ASPX, konwersję stron Razor do formatu PDF za pomocą IronPDF oraz MVC View. IronPDF obsługuje aplikacje Microsoft .NET (zarówno aplikacje internetowe ASP.NET, jak i tradycyjne aplikacje Windows). IronPDF może być również wykorzystywany do tworzenia atrakcyjnych dokumentów PDF.

IronPDF może tworzyć pliki PDF z plików HTML z JavaScript i CSS zawierających JavaScript, CSS oraz pliki graficzne.

Za pomocą IronPDF można nie tylko konwertować pliki HTML do formatu PDF, ale także konwertować pliki graficzne do formatu PDF.

IronPDF może pomóc w tworzeniu interaktywnych dokumentów PDF, wypełnianiu i przesyłaniu interaktywnych formularzy za pomocą IronPDF, łączeniu i dzieleniu dokumentów PDF, wyodrębnianiu tekstu i obrazów z dokumentów PDF, wyszukiwaniu tekstu w dokumentach PDF, rasteryzacji stron PDF do obrazów, konwersji PDF do HTML oraz drukowaniu dokumentów PDF za pomocą IronPrint.

IronPDF może wygenerować dokument na podstawie adresu URL. W przypadku logowania za pomocą HTML przy użyciu IronPDF do formularzy logowania umożliwia również korzystanie z niestandardowych poświadczeń logowania do sieci, agentów użytkownika, serwerów proxy, plików cookie, nagłówków HTTP i zmiennych formularza.

IronPDF to biblioteka, która może odczytywać i wypełniać dokumenty PDF oraz jest w stanie wyodrębniać obrazy z dokumentów. Pozwala nam to dodawać do dokumentów nagłówki i stopki, tekst, zdjęcia, zakładki ułatwiające nawigację, znaki wodne i wiele innych elementów. Pozwala nam to również łączyć i dzielić strony w nowym lub istniejącym dokumencie. IronPDF umożliwia konwersję dokumentów na obiekty PDF bez konieczności korzystania z przeglądarki Acrobat. Możliwe jest również konwertowanie pliku CSS na dokument PDF, a pliki typu media CSS można konwertować na dokumenty.

Tworzenie nowego projektu w Visual Studio

Najpierw utwórz projekt przy użyciu zarówno Visual Studio Code, jak i Visual Studio. Podczas korzystania z Visual Studio Code konieczne jest użycie narzędzia wiersza poleceń w celu zainstalowania szablonu typu projektu.

Otwórz oprogramowanie Microsoft Visual Studio i przejdź do menu Plik. Wybierz "nowy projekt", a w oknie nowego projektu wybierz "Aplikacja .NET MAUI". W tym artykule wykorzystamy aplikację .NET MAUI do generowania dokumentów PDF i zapisywania ich w odpowiedniej lokalizacji.

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 1: Utwórz nowy projekt w Visual Studio Utwórz nowy projekt w Visual Studio

Wpisz nazwę projektu i wybierz ścieżkę do pliku w odpowiednim polu tekstowym. Następnie kliknij przycisk Utwórz, tak jak na poniższym zrzucie ekranu.

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 2: Konfiguracja projektu Skonfiguruj projekt

Projekt Visual Studio wygeneruje teraz strukturę dla wybranej aplikacji zgodnie z platformą .NET MAUI App. Teraz otworzy plik MainPage.cs, aby dodać kod oraz skompilować i uruchomić aplikację.

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 3: Dodawanie kodu do pliku MainPage.cs Dodawanie kodu do pliku MainPage.cs

Następnie zainstaluj bibliotekę, aby przetestować kod.

Zainstaluj bibliotekę IronPDF

Bibliotekę IronPDF można pobrać i zainstalować na cztery sposoby.

Są to:

  • Korzystanie z programu Visual Studio.
  • Korzystanie z wiersza poleceń programu Visual Studio.
  • Bezpośrednie pobranie ze strony NuGet.
  • Bezpośrednie pobranie ze strony internetowej IronPDF.

Korzystanie z programu Visual Studio

Oprogramowanie Visual Studio udostępnia opcję NuGet Package Manager, która pozwala zainstalować pakiet bezpośrednio w rozwiązaniu. Poniższy zrzut ekranu pokazuje, jak otworzyć menedżera pakietów NuGet.

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 4: Przejdź do interfejsu użytkownika menedżera pakietów NuGet Przejdź do interfejsu użytkownika menedżera pakietów NuGet

To pole wyszukiwania służy do wyświetlania listy pakietów ze strony NuGet. W menedżerze pakietów NuGet wyszukaj słowo kluczowe "IronPDF", tak jak na poniższym zrzucie ekranu.

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 5: Wybierz pakiet IronPdf z interfejsu użytkownika menedżera pakietów NuGet Pakiet IronPDF z interfejsu użytkownika menedżera pakietów NuGet

Na powyższym obrazku wyświetlono powiązane pozycje wyszukiwania. Wybierz pierwszą opcję, aby zainstalować pakiet w rozwiązaniu. Zostanie zainstalowany na wszystkich platformach aplikacji .NET MAUI, takich jak Android, iOS i Windows.

Korzystanie z wiersza poleceń programu Visual Studio

W programie Visual Studio przejdź do menu Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów

Wprowadź następujący wiersz w zakładce Konsola menedżera pakietów:

Install-Package IronPdf

Teraz pakiet zostanie pobrany/zainstalowany na wszystkich platformach .NET MAUI w bieżącym projekcie i będzie gotowy do użycia.

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 6: Zainstaluj pakiet w konsoli menedżera pakietów Zainstaluj pakiet w konsoli menedżera pakietów

Bezpośrednie pobranie ze strony NuGet

Trzecim sposobem jest pobranie pakietu NuGet bezpośrednio z ich strony internetowej, korzystając z tego IronPDF NuGet repository page.

  • Wybierz opcję pakietu do pobrania z menu po prawej stronie.
  • Kliknij dwukrotnie pobrany pakiet. Zostanie zainstalowany automatycznie.
  • Odśwież rozwiązanie, a pakiet powinien być gotowy do użycia w Twoim projekcie.

Bezpośrednie pobranie ze strony internetowej IronPDF

Pobierz najnowszy pakiet ZIP IronPDF bezpośrednio z ich strony internetowej. Po pobraniu wykonaj poniższe kroki, aby dodać pakiet do swojego projektu.

  • Kliknij prawym przyciskiem myszy opcję "Dependencies" (Zależności) dla projektu w oknie rozwiązania.
  • Wybierz konkretną platformę, a następnie wybierz opcję "Odwołania" i przejdź do lokalizacji pobranego odwołania.
  • Kliknij OK, aby dodać odnośnik.

Konieczne będzie również dodanie odniesień do wszystkich platform obsługiwanych przez .NET MAUI.

Tworzenie plików PDF w aplikacji .NET MAUI przy użyciu IronPDF

Po utworzeniu projektu zostanie wygenerowany automatycznie plik o nazwie MainPage.xaml. W tym miejscu należy umieścić interfejs użytkownika aplikacji .NET MAUI.

Postępuj zgodnie z poniższym kodem.

<?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>
XML

Po dodaniu powyższego kodu do pliku MainPage.xaml, otwórz plik MainPage.xaml.cs i dodaj następującą metodę wewnątrz klasy 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);
}
Private Sub GeneratePDF(ByVal sender As Object, ByVal e As EventArgs)
	Dim renderer As New ChromePdfRenderer()
	Dim doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>")

	' Saves the memory stream as file.
	Dim saveService As New SaveService()
	saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream)
End Sub
$vbLabelText   $csharpLabel

Metoda GeneratePDF generuje nowy dokument PDF zawierający tekst "Hello, IronPDF!..." i zapisuje go na komputerze użytkownika w określonej lokalizacji.

W powyższej metodzie tworzony jest nowy obiekt ChromePdfRenderer, który wywołuje metodę RenderHtmlAsPdf w celu wygenerowania nowego dokumentu PDF zawierającego słowa "Hello IronPDF!". ... z ciągu znaczników HTML. Następnie zapisanie pliku na urządzeniu użytkownika zostanie przekazane do oddzielnej klasy o nazwie SaveService. Klasa ta zostanie utworzona w kolejnym kroku.

Pełny plik MainPage.xaml.cs znajduje się poniżej. Przed przejściem do następnego kroku upewnij się, że zawartość pliku jest zgodna z poniższym opisem:

// 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);
    }
}
Imports IronPdf

' 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

	Partial Public Class MainPage
		Inherits ContentPage

		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub GeneratePDF(ByVal sender As Object, ByVal e As EventArgs)
			Dim renderer As New ChromePdfRenderer()
			Dim doc = renderer.RenderHtmlAsPdf("<h1>Hello IronPDF!</h1> <p>I'm using IronPDF MAUI!</p>")
			' Saves the memory stream as file.
			Dim saveService As New SaveService()
			saveService.SaveAndView("IronPDF HTML string.pdf", "application/pdf", doc.Stream)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Teraz utwórz nowy plik klasy o nazwie SaveService.cs w katalogu głównym projektu i dodaj następujący kod źródłowy:

// 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);
    }
}
' 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! 
	Partial Public Class SaveService
		Public Sub SaveAndView(ByVal filename As String, ByVal contentType As String, ByVal stream As MemoryStream)
			SaveFile(filename, contentType, stream)
		End Sub

		' Additional partial files will provide implementations for this method specifically.
		Partial Private Sub SaveFile(ByVal filename As String, ByVal contentType As String, ByVal stream As MemoryStream)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Ponieważ szczegóły implementacji dotyczące zapisywania treści na urządzeniach użytkowników różnią się w zależności od platformy (Windows, Android, macOS itp.), konieczne jest napisanie kodu specyficznego dla platformy dla każdego typu urządzenia, które aplikacja będzie obsługiwać. Aby to umożliwić, definiujemy SaveService jako klasę częściową (w celach abstrakcyjnych) zawierającą jedną metodę częściową o nazwie SaveAndView. Następnie implementacja tej metody zostanie zdefiniowana w oddzielnej klasie częściowej SaveService.cs dla jednego lub więcej folderów zagnieżdżonych w folderze Platforms w oknie Solutions Explorer (patrz ilustracja poniżej):

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 7: Struktura folderów do wdrożenia wieloplatformowego Struktura folderów do wdrożenia na wielu platformach

Dla uproszczenia w tym samouczku zdefiniujemy wspomniany plik częściowy wyłącznie dla platformy Windows. Utwórz nowy plik SaveService.cs w folderze platformy Windows, zawierający poniższy kod:

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);
            }
        }
    }
}
Imports Windows.Storage
Imports Windows.Storage.Pickers
Imports Windows.Storage.Streams
Imports Windows.UI.Popups

Namespace MAUI_IronPDF

	Partial Public Class SaveService
		Private Async Sub SaveFile(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

Skompiluj i uruchom aplikację MAUI. Pojawi się okno zawierające interfejs pokazany poniżej:

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 8: Interfejs użytkownika aplikacji MAUI Interfejs użytkownika aplikacji MAUI

Kliknij przycisk "Generuj PDF". Po kilku chwilach pojawi się okienko, w którym należy wybrać lokalizację wygenerowanego pliku PDF.

Tworzenie pliku PDF w .NET MAUI przy użyciu IronPDF, rysunek 9: Wybierz lokalizację, w której chcesz zapisać plik PDF Wybierz lokalizację, w której chcesz zapisać plik PDF

Wnioski

IronPDF to jedna z najczęściej używanych bibliotek do konwersji plików PDF, która pozwala generować, odczytywać, edytować i formatować pliki PDF. Biblioteka IronPDF zapewnia wiele korzyści i funkcji, w tym silnik przeglądarki, który pomaga przekształcić podany adres URL w plik PDF, umożliwia dodawanie CSS do ciągów HTML i konwertowanie ich na pliki PDF, a także pozwala na wypełnianie formularzy PDF. Wszystkie funkcje IronPDF są zawarte w jednej bibliotece.

IronPDF oferuje różne struktury cenowe. Cena podstawowa za IronPDF zaczyna się od $799. Wsparcie techniczne i aktualizacje są również dostępne za roczną opłatą. Można również dokupić jako dodatek zakres redystrybucji bez opłat licencyjnych.

Podsumowując, zaleca się korzystanie z IronPDF, ponieważ oferuje on doskonałą wydajność i szeroki zakres funkcji dla programistów pracujących z plikami PDF. Obsługuje uniwersalne platformy, takie jak .NET MAUI. Oferuje również doskonałą pomoc techniczną i dokumentację, co pozwala w pełni wykorzystać szeroki zakres biblioteki IronPDF i jej liczne funkcje.

Często Zadawane Pytania

Jak mogę generować pliki PDF w aplikacji .NET MAUI?

Aby generować pliki PDF w aplikacji .NET MAUI, można użyć IronPDF. Należy rozpocząć od skonfigurowania projektu .NET MAUI w Visual Studio, zainstalować IronPDF za pośrednictwem NuGet, a następnie użyć metody ChromePdfRenderer.RenderHtmlAsPdf do konwersji treści HTML na dokument PDF.

Co sprawia, że .NET MAUI nadaje się do tworzenia aplikacji wieloplatformowych?

.NET MAUI idealnie nadaje się do tworzenia aplikacji wieloplatformowych, ponieważ pozwala programistom tworzyć natywne aplikacje mobilne i desktopowe przy użyciu języków C# i XAML dla systemów Android, iOS, macOS i Windows w oparciu o jedną bazę kodu.

W jaki sposób IronPDF obsługuje HTML, CSS i JavaScript podczas konwersji do formatu PDF?

IronPDF wykorzystuje silnik Google Chrome do dokładnego renderowania HTML, CSS i JavaScript w formacie PDF, zapewniając konwersję stron internetowych bez utraty formatowania.

Jak wygląda proces zapisywania plików PDF na różnych platformach w aplikacji .NET MAUI?

W aplikacji .NET MAUI korzystającej z IronPDF do zapisywania plików PDF używana jest klasa SaveService. Zawiera ona implementacje specyficzne dla platformy, umożliwiające obsługę zapisywania plików w systemach operacyjnych takich jak Windows i Android.

Jakie zaawansowane funkcje są dostępne w IronPDF for .NET?

IronPDF oferuje zaawansowane funkcje, takie jak tworzenie interaktywnych plików PDF, wypełnianie i przesyłanie formularzy, łączenie i dzielenie dokumentów, wyodrębnianie tekstu i obrazów oraz dodawanie nagłówków, stopek i znaków wodnych.

Jak zintegrować IronPDF z projektem .NET MAUI w Visual Studio?

Aby zintegrować IronPDF z projektem .NET MAUI, użyj menedżera pakietów NuGet w Visual Studio. Wyszukaj „IronPDF” i zainstaluj go w swoim projekcie, aby rozpocząć generowanie plików PDF i zarządzanie nimi.

Czy IronPDF może przekonwertować adres URL strony internetowej na plik PDF w aplikacji .NET MAUI?

Tak, IronPDF może przekonwertować adres URL strony internetowej na plik PDF, wykorzystując swoje możliwości renderowania stron internetowych w celu dokładnego przechwycenia treści HTML, CSS i JavaScript oraz renderowania jej w formacie PDF.

Jaka jest rola XAML w projektowaniu interfejsów użytkownika dla aplikacji .NET MAUI?

W .NET MAUI do projektowania interfejsu użytkownika aplikacji używa się języka XAML. Pozwala on programistom tworzyć responsywne i atrakcyjne wizualnie układy, które działają płynnie na wielu platformach.

Jakie są zalety korzystania z IronPDF w projektach .NET MAUI?

IronPDF oferuje takie korzyści, jak łatwość obsługi, obszerna dokumentacja, wydajność oraz możliwość wykonywania różnych zadań związanych z plikami PDF, co czyni go niezawodnym wyborem dla programistów pracujących z plikami PDF w projektach .NET MAUI.

Czy IronPDF jest w pełni kompatybilny z .NET 10 i jakie korzyści to przynosi?

Tak, IronPDF jest w pełni kompatybilny z .NET 10, obsługując go od razu po instalacji wraz z wersjami 9, 8, 7, 6, Core, Standard i Framework. Korzystanie z IronPDF w środowisku .NET 10 pozwala wykorzystać ulepszenia wydajności, takie jak zmniejszone alokacje pamięci, ulepszone zachowanie JIT/runtime oraz nowe funkcje języka C#, dzięki czemu generowanie i edycja plików PDF stają się szybsze i bardziej wydajne.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie