如何在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 應用程式專案

您可以下載本指南的完整代碼。它以壓縮檔的形式提供,您可以在Visual Studio中作為.NET MAUI應用程序項目打開。

下載完整的 MAUI 範例專案

Chaknith related to 下載 .NET MAUI 應用程式專案

查克尼思·賓

軟體工程師

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