如何在MAUI中將XAML轉換成PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

查克尼思·賓

.NET MAUI (跨平台應用程式使用者介面) 是一個跨平台架構,用於構建原生裝置應用程式。它從Xamarin.Forms延伸而來,是統一的.NET 6生態系統的一部分。它使.NET應用程式開發人員能夠使用通用的UI元件和單一代碼庫來創建桌面、網頁和移動平台的應用程式。MAUI也允許您在需要時添加特定平台的代碼和資源。

IronPdf允許您從MAUI頁面生成PDF文件,使得在這些應用程式中創建PDF文件/頁面成為可能。然而,IronPdf目前不支持移動平台。

IronPdf 擴展包

IronPdf.Extensions.Maui 套件IronPdf 主套件的擴展。由於它是擴展包,仍然需要 IronPdf 主套件來將 MAUI 應用程序的內容頁面渲染為 PDF 文件。

PM > Install-Package IronPdf.Extensions.Maui
用於 PDF 的 C# NuGet 程式庫

安裝與 NuGet

安裝套件 IronPdf.Extensions.Maui

將 MAUI 頁面渲染為 PDF

編輯 MainPage.xaml.cs 文件

  • 從 MainPage.xaml 文件切換到它的程式碼文件 MainPage.xaml.cs。
  • 將名為 OnCounterClicked 的函數更改為 PrintToPdf。使用下面的程式碼範例。

要將您的 MAUI 頁面轉換為 PDF,可以使用 RenderContentPageToPdf 方法。通過實例化 ChromePdfRenderer 類可以訪問此方法。這個方法會給你一個 PdfDocument 對象,您可以使用 SaveAs 方法保存或使用 PDF 查看器查看。 在 MAUI 中查看 PDF.

請注意
將內容頁渲染為 Pdf 方法尚未支持數據綁定。

:path=/static-assets/pdf/content-code-examples/how-to/xaml-to-pdf-maui-mainpage-xaml-cs.cs
using IronPdf.Extensions.Maui;

namespace mauiSample;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private void PrintToPdf(object sender, EventArgs e)
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Apply HTML header
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<h1>Header</h1>",
        };

        // Render PDF from Maui Page
        PdfDocument pdf = renderer.RenderContentPageToPdf<MainPage, App>().Result;

        pdf.SaveAs(@"C:\Users\lyty1\Downloads\contentPageToPdf.pdf");
    }
}
Imports IronPdf.Extensions.Maui

Namespace mauiSample

	Partial Public Class MainPage
		Inherits ContentPage

		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub PrintToPdf(ByVal sender As Object, ByVal e As EventArgs)
			Dim renderer As New ChromePdfRenderer()

			' Apply HTML header
			renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {.HtmlFragment = "<h1>Header</h1>"}

			' Render PDF from Maui Page
			Dim pdf As PdfDocument = renderer.RenderContentPageToPdf(Of MainPage, App)().Result

			pdf.SaveAs("C:\Users\lyty1\Downloads\contentPageToPdf.pdf")
		End Sub
	End Class
End Namespace
VB   C#

此外,正如您可能注意到的,從 XAML 進行渲染還使您可以完全使用 RenderingOptions 中的所有功能。這包括添加 文本和HTML頁眉和頁腳。您也可以 蓋印圖像,添加 頁碼甚至可以自訂頁面的大小和佈局。使用此方法創建PDF時,這些選項都可用。

編輯 MainPage.xaml 文件

在 MainPage.xaml 文件中,將默認的 OnCounterClicked 函數替換為新的 PrintToPdf 函數。點擊此按鈕將運行 PrintToPdf 方法並創建 PDF。

<Button
x:Name="PrintToPdfBtn"
Text="Print to pdf"
SemanticProperties.Hint="Click to print page as PDF"
Clicked="PrintToPdf"
HorizontalOptions="Center" />
<Button
x:Name="PrintToPdfBtn"
Text="Print to pdf"
SemanticProperties.Hint="Click to print page as PDF"
Clicked="PrintToPdf"
HorizontalOptions="Center" />
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<Button x:Name="PrintToPdfBtn" Text="Print to pdf" SemanticProperties.Hint="Click to print page as PDF" Clicked="PrintToPdf" HorizontalOptions="Center" />
VB   C#

輸出 PDF

在儲存您的 PDF 文件之前,您可以使用 PdfDocument 提供的方法對其進行更多更改。您可以 合併頁面,拆分頁面,或旋轉它們。你也可以添加 註解書籤 到您的 PDF。

下載 .NET MAUI App 專案

您可以下載本指南的完整代碼。它是一個壓縮文件,可以在 Visual Studio 中作為 .NET MAUI App 專案打開。

點擊這裡下載專案。

查克尼思·賓

軟體工程師

Chaknith 是開發者界的夏洛克福爾摩斯。他第一次意識到自己可能有個軟體工程的未來,是在他為了娛樂而參加程式挑戰的時候。他的重點是 IronXL 和 IronBarcode,但他也引以為豪的是,他幫助客戶解決所有產品的問題。Chaknith 利用他與客戶直接對話中獲得的知識,以進一步改進產品。他的實際反饋超越了 Jira 工單,並支持產品開發、文件撰寫和行銷,以提升客戶的整體體驗。不在公司時,他通常在學習機器學習、寫程式和徒步旅行。