PDF轉換器.NET(開發者教程)
了解如何在 .NET MAUI 應用中利用 IronPDF 從 PDF 文件中提取並顯示嵌入文字。 這個強大的 C# 程式庫可以讓您僅需少量程式碼即可在跨平台應用中讀取 PDF 內容並顯示它。
.NET 多平台應用 UI (MAUI) 簡化了多平台應用開發。 通過這種 Xamarin.Forms 的演進,您可以從單個專案中為 Android、iOS、macOS 和 Windows 建立應用。 PDF 文件因能夠保留字體、圖像和布局而備受推崇,通常使用這種技術進行管理。
IronPDF 程式庫 提供強大的 PDF 處理功能。 您可以利用 IronPDF 無需費力地處理嵌入文字,從而簡化建立和操作 PDF 文件的過程,同時保持預設設置下的穩定渲染。
什麼是 PDF 嵌入文字和字體嵌入?
PDF 嵌入文字是指嵌入在 PDF 文件中的文字實體。這確保了包括 Adobe InDesign 在內的 PDF 查看器應用的一致性和精確渲染。 通過在 PDF 文件中嵌入字體,即使查看者應用程式未安裝特定字體,也能保留正確的字體。
嵌入字體可能增加文件大小,但對於保持原始文件外觀至關重要。 Adobe PDF 設定通常決定是否嵌入字體。 PDF 壓縮技術可以在嵌入字體時減小文件大小。
PDF 中有三種型別的嵌入字體:
- 嵌入字體:整套字體嵌入在文件中。
- 子集嵌入字體:僅嵌入原始文件中使用的字體子集。
- 無嵌入字體:文件中不嵌入任何字體。
在 Adobe Acrobat 中,您可以通過查看文件屬性來驗證字體嵌入。 預設情況下,字體嵌入在 PDF 中。 然而,這些設置可以使用 Adobe Acrobat Pro 或類似 IronPDF 的字體管理功能進行修改。
"扁平化 PDF"包含所有嵌入字體,使其自包含且確保在所有系統上的一致外觀顯示。 IronPDF 支援扁平化 PDF 文件以確保穩定渲染。
什麼是 IronPDF C#?
IronPDF 文件是一個強大的 C# PDF 程式庫,可以讓您在 .NET 應用中生成、讀取和編輯 PDF 文件。 您可以從 HTML 生成 PDF 文件與 IronPDF。
一個關鍵特徵是處理 PDF 文件中的嵌入字。 在 PDF 中嵌入字體即使在未裝有原始字體的系統上查看文件也能保留文件的原始外觀。 讓我們探索在 .NET MAUI 中使用 IronPDF 顯示嵌入文字的方式。
IronPDF 提供豐富的文字提取能力,以便程式化地處理 PDF 內容。 無論您需要在 C# 中解析 PDF還是將 PDF 內容轉換成其他格式,IronPDF 提供必要工具。
- .NET MAUI:微軟的一個統一 UI 工具包,可以讓您用單一共享程式碼庫建立 Android、iOS、macOS 和 Windows 應用。 您可以從微軟網站下載 .NET MAUI。
- Visual Studio 2022(或更高版):一個功能強大且使用者友好的 .NET 編程整合開發環境 (IDE) 。 您可以從微軟網站下載 Visual Studio。確保在 Visual Studio 2022 上安裝了 .NET MAUI 工作負載。
- IronPDF 程式庫:這是一個 .NET 的 PDF 處理程式庫,我們將使用它與 PDF 文件進行互動。 您可以通過 NuGet 安裝 IronPDF,這是一個微軟開發平台的程式包管理器。
- Adobe PDF 文件:為了這篇教程,我們需要一個 PDF 文件。
在開始之前,請確保您有這些需求:
- .NET MAUI:微軟的一個用於建立跨平台應用的統一 UI 工具包。從微軟網站下載。
- Visual Studio 2022(或更高版):用於 .NET 編程的功能強大的 IDE,並安裝有 .NET MAUI 工作負載。
- IronPDF 程式庫:通過 NuGet 程式包管理器進行安裝。 了解 IronPDF NuGet 套件。
- 一個 PDF 文件:任何用於測試的 PDF 文件。
針對特定平台的設置:
- Windows: IronPDF Windows setup guide
- macOS : macOS 安裝指南
- Linux : Linux 設置說明
我該如何建立 .NET MAUI App?
請遵循以下步驟建立一個新的 .NET MAUI App:
啟動 Visual Studio 2022:啟動後,導航到 檔案 > 新建 > 專案。 在專案模板窗口中選擇 .NET MAUI App 然後點擊 下一步。
圖 1:Visual Studio 新專案對話框,突出顯示 .NET MAUI 模板,顯示建立新的 .NET MAUI 應用的第一步。
命名您的專案:在下一個窗口中,您需要為您的專案命名。 讓我們命名它為 IronPDF_Read_and_View。 選擇一個位置保存您的專案,然後點擊 下一步。
圖 2:配置專案 - 設置新的 .NET MAUI 應用,並整合 IronPDF 以實現跨平台 PDF 查看能力。
選擇框架:從下拉列表中選擇 .NET Framework。選擇最新的 .NET Framework以確保過程順利,然後點擊"建立"按鈕。
圖 3:選擇 .NET Framework版本及新 .NET MAUI 應用的目標平台
我如何安裝 IronPDF?
建立 .NET MAUI App 後,安裝 IronPDF 程式庫:
-
打開 NuGet 程式包管理器:導航到 工具 > NuGet 程式包管理器 > 為解決方案管理 NuGet 程式包。
圖 4:通過導航到工具 > NuGet 程式包管理器 > 在 Visual Studio 中為解決方案管理 NuGet 程式包來存取 NuGet 程式包管理器 -
搜尋 IronPDF:在打開的窗口中,點擊 瀏覽,並在搜尋框中鍵入 IronPDF。
圖 5:NuGet 程式包管理器 UI 顯示 IronPDF 搜索結果。 主要的 IronPDF 程式包(版本 2023.6.10)已被選中並準備好安裝,顯示了 6.31M 的下載數量。 - 安裝 IronPDF:在搜索結果中看到 IronPDF 後,點擊它。 確保右側面板中專案的複選框已被勾選,然後點擊 安裝。
在安裝過程中接受任何提示。
您還可以使用程式包管理器控制台進行安裝:
Install-Package IronPdf
對於高級安裝選項,包括Docker 設置和Azure 部署,請查看IronPDF 安裝概述。
我如何構建使用者介面?
讓我們為我們的應用構建 UI。 MainPage.xaml 文件將有一個按鈕用於打開 PDF 和標簽用於顯示文件名和內容。
打開 MainPage.xaml 文件:這個文件包含主頁的佈局。 您可以在解決方案資源管理器的 Pages 資料夾下找到這個文件。
定義佈局:我們將使用一個 <ScrollView> 控件,當頁面內容無法完全裝下時,允許使用者滾動瀏覽。 在 ScrollView 中,我們將使用 <StackLayout> 來垂直堆疊我們的控件。 在 StackLayout 中,我們有三個 <Frame> 控件。 每個 Frame 用於保存我們頁面的一個不同部分,提供整潔有序的外觀。
新增控件:第一個 Frame 有一個 <VerticalStackLayout>,其內包含一個標籤和一個按鈕。 標籤顯示應用名稱,按鈕允許使用者打開 PDF 文件。Clicked 屬性被分配給方法 OpenAndReadFile,稍後在後面的程式碼中定義。
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="IronPDF MAUI Application"
SemanticProperties.HeadingLevel="Level1"
SemanticProperties.Description="IronPDF MAUI Application"
FontSize="30"
HorizontalOptions="Center"
FontAttributes="Bold"
/>
<Button
x:Name="openFileBtn"
Text="Open PDF File"
SemanticProperties.Hint="Open PDF File"
Clicked="OpenAndReadFile"
HorizontalOptions="Center" />
</VerticalStackLayout>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="IronPDF MAUI Application"
SemanticProperties.HeadingLevel="Level1"
SemanticProperties.Description="IronPDF MAUI Application"
FontSize="30"
HorizontalOptions="Center"
FontAttributes="Bold"
/>
<Button
x:Name="openFileBtn"
Text="Open PDF File"
SemanticProperties.Hint="Open PDF File"
Clicked="OpenAndReadFile"
HorizontalOptions="Center" />
</VerticalStackLayout>
第二個 Frame 使用 <HorizontalStackLayout>,配有兩個標籤:一個用於靜態文字,另一個名為 fileName 用於顯示選擇的文件。
<HorizontalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="Selected File Name: "
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Selected File Name"
FontSize="18"
HorizontalOptions="Center"
FontAttributes="Bold"
/>
<Label
x:Name="fileName"
Text=""
SemanticProperties.HeadingLevel="Level3"
SemanticProperties.Description="Selected File Name"
FontSize="18"
HorizontalOptions="Center"
/>
</HorizontalStackLayout>
<HorizontalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="Selected File Name: "
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Selected File Name"
FontSize="18"
HorizontalOptions="Center"
FontAttributes="Bold"
/>
<Label
x:Name="fileName"
Text=""
SemanticProperties.HeadingLevel="Level3"
SemanticProperties.Description="Selected File Name"
FontSize="18"
HorizontalOptions="Center"
/>
</HorizontalStackLayout>
第三個 Frame 包含一個 <VerticalStackLayout>,配有兩個標籤:一個用於"PDF 內容",另一個名為 content 用於顯示 PDF 文字。
<VerticalStackLayout>
<Label
Text="PDF Content"
SemanticProperties.HeadingLevel="Level2"
FontSize="25"
FontAttributes="Bold"
HorizontalOptions="Center"
/>
<Label
x:Name="content"
FontSize="18"
HorizontalTextAlignment="Start"
/>
</VerticalStackLayout>
<VerticalStackLayout>
<Label
Text="PDF Content"
SemanticProperties.HeadingLevel="Level2"
FontSize="25"
FontAttributes="Bold"
HorizontalOptions="Center"
/>
<Label
x:Name="content"
FontSize="18"
HorizontalTextAlignment="Start"
/>
</VerticalStackLayout>
您完整的 MainPage.xaml 應該看起來像這樣:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
xmlns="___PROTECTED_URL_46___"
xmlns:x="___PROTECTED_URL_47___"
x:Class="IronPDF_Read_and_View.MainPage">
<ScrollView>
<StackLayout>
<Frame>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="IronPDF MAUI Application"
SemanticProperties.HeadingLevel="Level1"
SemanticProperties.Description="IronPDF MAUI Application"
FontSize="30"
HorizontalOptions="Center"
FontAttributes="Bold"
/>
<Button
x:Name="openFileBtn"
Text="Open PDF File"
SemanticProperties.Hint="Open PDF File"
Clicked="OpenAndReadFile"
HorizontalOptions="Center" />
</VerticalStackLayout>
</Frame>
<Frame>
<HorizontalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="Selected File Name: "
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Selected File Name"
FontSize="18"
HorizontalOptions="Center"
FontAttributes="Bold"
/>
<Label
x:Name="fileName"
Text=""
SemanticProperties.HeadingLevel="Level3"
SemanticProperties.Description="Selected File Name"
FontSize="18"
HorizontalOptions="Center"
/>
</HorizontalStackLayout>
</Frame>
<Frame>
<VerticalStackLayout>
<Label
Text="PDF Content"
SemanticProperties.HeadingLevel="Level2"
FontSize="25"
FontAttributes="Bold"
HorizontalOptions="Center"
/>
<Label
x:Name="content"
FontSize="18"
HorizontalTextAlignment="Start"
/>
</VerticalStackLayout>
</Frame>
</StackLayout>
</ScrollView>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
xmlns="___PROTECTED_URL_46___"
xmlns:x="___PROTECTED_URL_47___"
x:Class="IronPDF_Read_and_View.MainPage">
<ScrollView>
<StackLayout>
<Frame>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="IronPDF MAUI Application"
SemanticProperties.HeadingLevel="Level1"
SemanticProperties.Description="IronPDF MAUI Application"
FontSize="30"
HorizontalOptions="Center"
FontAttributes="Bold"
/>
<Button
x:Name="openFileBtn"
Text="Open PDF File"
SemanticProperties.Hint="Open PDF File"
Clicked="OpenAndReadFile"
HorizontalOptions="Center" />
</VerticalStackLayout>
</Frame>
<Frame>
<HorizontalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Label
Text="Selected File Name: "
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Selected File Name"
FontSize="18"
HorizontalOptions="Center"
FontAttributes="Bold"
/>
<Label
x:Name="fileName"
Text=""
SemanticProperties.HeadingLevel="Level3"
SemanticProperties.Description="Selected File Name"
FontSize="18"
HorizontalOptions="Center"
/>
</HorizontalStackLayout>
</Frame>
<Frame>
<VerticalStackLayout>
<Label
Text="PDF Content"
SemanticProperties.HeadingLevel="Level2"
FontSize="25"
FontAttributes="Bold"
HorizontalOptions="Center"
/>
<Label
x:Name="content"
FontSize="18"
HorizontalTextAlignment="Start"
/>
</VerticalStackLayout>
</Frame>
</StackLayout>
</ScrollView>
</ContentPage>
當使用者點擊"打開 PDF 文件"時,它會觸發 OpenAndReadFile 方法。 fileName 和 content 標籤將分別顯示所選文件名和 PDF 內容。
對於複雜的 UI 佈局,IronPDF 支援直接在 MAUI 應用中將 XAML 轉換為 PDF。
在 xaml.cs 中包含哪些程式碼?
打開 MainPage.xaml.cs:在解決方案資源管理器的 Pages 資料夾下找到此文件。 這是新增我們方法的地方。
新增 filePath 字段:在 MainPage 類的頂部,宣告一個名為 filePath 的 string 字段。 我們將使用此字段來儲存所選文件的路徑。
string filePath = string.Empty;
string filePath = string.Empty;
Dim filePath As String = String.Empty
初始化組件:在 MainPage 構造函式中,調用 InitializeComponent 方法。 此方法會自動調用以初始化頁面及其控件。
public MainPage()
{
InitializeComponent();
}
public MainPage()
{
InitializeComponent();
}
Public Sub New()
InitializeComponent()
End Sub
實現 OpenAndReadFile 方法:此方法被標記為 async,因為我們將在其中使用 await 關鍵字。 FilePicker.PickAsync 方法用於開啟文件選擇器。 當使用者選擇一個文件時,文件名將被儲存在 fileName 標籤中,文件路徑在 filePath 字段。 使用 IronPDF 程式庫打開 PDF 文件並從中提取所有文字。 然後將提取的文字分配給內容標籤。
private async void OpenAndReadFile(object sender, EventArgs e)
{
FileResult result = await FilePicker.PickAsync();
fileName.Text = result.FileName;
filePath = result.FullPath;
IronPdf.License.LicenseKey = "Your-License-Key";
// Read PDF File
var document = PdfDocument.FromFile(filePath);
var pdfContent = document.ExtractAllText();
content.Text = pdfContent;
}
private async void OpenAndReadFile(object sender, EventArgs e)
{
FileResult result = await FilePicker.PickAsync();
fileName.Text = result.FileName;
filePath = result.FullPath;
IronPdf.License.LicenseKey = "Your-License-Key";
// Read PDF File
var document = PdfDocument.FromFile(filePath);
var pdfContent = document.ExtractAllText();
content.Text = pdfContent;
}
Private Async Sub OpenAndReadFile(ByVal sender As Object, ByVal e As EventArgs)
Dim result As FileResult = Await FilePicker.PickAsync()
fileName.Text = result.FileName
filePath = result.FullPath
IronPdf.License.LicenseKey = "Your-License-Key"
' Read PDF File
Dim document = PdfDocument.FromFile(filePath)
Dim pdfContent = document.ExtractAllText()
content.Text = pdfContent
End Sub
將 "Your-License-Key" 替換為您真實的 IronPDF 授權金鑰。 了解 使用 IronPDF 授權金鑰。
這是完整的程式碼:
using IronPdf;
public partial class MainPage : ContentPage
{
string filePath = string.Empty;
public MainPage()
{
InitializeComponent();
}
private async void OpenAndReadFile(object sender, EventArgs e)
{
FileResult result = await FilePicker.PickAsync();
fileName.Text = result.FileName;
filePath = result.FullPath;
IronPdf.License.LicenseKey = "Your-License-Key";
// Read PDF File
var document = PdfDocument.FromFile(filePath);
var pdfContent = document.ExtractAllText();
content.Text = pdfContent;
}
}
using IronPdf;
public partial class MainPage : ContentPage
{
string filePath = string.Empty;
public MainPage()
{
InitializeComponent();
}
private async void OpenAndReadFile(object sender, EventArgs e)
{
FileResult result = await FilePicker.PickAsync();
fileName.Text = result.FileName;
filePath = result.FullPath;
IronPdf.License.LicenseKey = "Your-License-Key";
// Read PDF File
var document = PdfDocument.FromFile(filePath);
var pdfContent = document.ExtractAllText();
content.Text = pdfContent;
}
}
Imports IronPdf
Partial Public Class MainPage
Inherits ContentPage
Private filePath As String = String.Empty
Public Sub New()
InitializeComponent()
End Sub
Private Async Sub OpenAndReadFile(ByVal sender As Object, ByVal e As EventArgs)
Dim result As FileResult = Await FilePicker.PickAsync()
fileName.Text = result.FileName
filePath = result.FullPath
IronPdf.License.LicenseKey = "Your-License-Key"
' Read PDF File
Dim document = PdfDocument.FromFile(filePath)
Dim pdfContent = document.ExtractAllText()
content.Text = pdfContent
End Sub
End Class
IronPDF 提供超出文字提取的附加功能。 您可以搜索和替換文字,提取圖片,處理PDF 表單,以及< a href="程式化地新增註釋" target="_blank">https://ironpdf.com/how-to/annotations/">程式化地新增註釋。
我如何運行應用程式?
啟動應用:要運行應用,您可以按鍵盤上的 F5 或單擊 Visual Studio 工具欄頂部的綠色 '開始偵錯' 按鈕。 確保在 '開始偵錯' 按鈕旁邊的下拉選單中選擇了正確的目標裝置或模擬器。
使用應用:當應用啟動後,您將看到一個標題為" IronPDF MAUI 應用"的畫面和一個標籤為"打開 PDF 文件"的按鈕。
使用應用:您將看到一個畫面,上面有" IronPDF MAUI 應用"和"打開 PDF 文件"的按鈕。
打開 PDF 文件:點擊"打開 PDF 文件"按鈕。 這將打開一個文件選擇器,允許您瀏覽並從裝置或模擬器中選擇 PDF 文件。
打開 PDF 文件:點擊"打開 PDF 文件"以打開文件選擇器並從裝置中選擇 PDF。
查看內容:選擇 PDF 文件後,文件名將顯示在"選擇的文件名"下,所選 PDF 文件的內容將顯示在"PDF 內容"下。
查看內容:選擇 PDF 文件後,文件名顯示在"選定文件名"下,提取的文字顯示在"PDF 內容"下。
IronPDF MAUI 應用成功提取並顯示所選發票 PDF 文件的文字內容,展示了該程式庫在 .NET MAUI 桌面應用中的文字提取能力。
請注意,大型 PDF 可能需要幾秒鐘的時間來處理。 提取的文字格式可能與原始 PDF 佈局不完全匹配,因為 ExtractAllText 方法 提取的是嵌入的文字內容。 若需更多控制,請使用特定頁面的提取方法或操作PDF DOM 物件。
我們學到了什麼?
本教程展示了如何構建 .NET MAUI 應用來使用 IronPDF 提取和顯示 PDF 文字內容。 這顯示了 .NET MAUI 和 IronPDF 在 PDF 處理中的強大和多功能性。
超出文字提取之外,IronPDF 支援與 PDF 表單交互、拆分 PDF、將頁面光柵化為圖像、與 HTML 登錄表單進行身份驗證、定制頁眉和頁腳,以及支援 CSS 以實現像素完美 PDF。 您可以探索 在 MAUI 中查看 PDF、使用UTF-8 和國際語言,並從資料中生成 PDF 報告。
IronPDF 是一個商用產品,提供免費試用來測試它的功能。 如果您發現它對生產使用有幫助,授權從 $999 開始。 查看全面的 IronPDF 功能概述以了解更多關於這個強大的 PDF 處理程式庫的資訊。
常見問題
如何在.NET MAUI應用程式中顯示PDF嵌入文字?
要在.NET MAUI應用程式中顯示PDF嵌入文字,您可以使用IronPDF程式庫。IronPDF允許您從PDF文件中提取文字並在您的應用程式內呈現它。您需要在.NET MAUI中設置使用者介面,以便讓使用者選擇並顯示PDF內容。
為什麼在PDF文件中嵌入字型很重要?
在PDF文件中嵌入字型很重要,因為這樣可以確保文件外觀在不同系統和PDF檢視程式中保持一致,即使使用者的裝置中沒有安裝相應的字型。
如何在.NET MAUI專案中安裝IronPDF?
要在.NET MAUI專案中安裝IronPDF,請使用Visual Studio的NuGet套件管理器。搜尋IronPDF並安裝到您的專案中。或者,您可以在NuGet套件管理器控制台中使用指令:Install-Package IronPdf。
使用IronPDF在.NET MAUI應用程式中有什麼好處?
IronPDF為.NET MAUI應用程式提供了多項好處,包括能夠提取和呈現PDF文字,管理嵌入的字型,並確保高品質的PDF渲染,在不同平台上。它還提供了一套強大的功能集用於PDF操作,並支持跨平台開發。
IronPDF能提取任何PDF文件的文字嗎?
是的,IronPDF可以從PDF文件中提取文字。但是,所提取的文字格式可能會與原始PDF佈局略有不同,這取決於PDF的生成方式。
設置.NET MAUI應用程式以處理PDF涉及哪些步驟?
設置.NET MAUI應用程式以處理PDF包括安裝.NET MAUI和Visual Studio以及必要的工作負載,通過NuGet整合IronPDF程式庫,和開發使用者介面來與PDF文件互動。這個過程還包括撰寫C#程式碼以提取和顯示PDF內容。
有IronPDF的免費版本可用於開發嗎?
IronPDF提供免費試用版本,允許開發者測試其功能。對於生產用途,各種許可方案可滿足不同需求。
使用IronPDF可以實現哪些型別的PDF操作?
使用IronPDF,您可以執行多種PDF操作,包括文字提取、與PDF表單互動、分割PDF、將PDF頁面轉換為圖片,以及自定義文件的標題和頁尾。
IronPDF支持.NET 10嗎?我可以使用它來進行.NET 10 MAUI專案嗎?
是的—IronPDF與.NET 10完全相容。它支持.NET 10 MAUI專案,可以立即利用.NET 10的性能提升和語言功能,而無需特別的變通方法。IronPDF支持.NET 10以及.NET 9、8、7、6、5、Core、Standard和Framework。(ironpdf.com)
在資源有限,例如iOS或Android裝置上的MAUI中,使用IronPDF的ExtractAllText來處理大型PDF時有什麼限制或已知問題嗎?
雖然IronPDF的ExtractAllText在標準PDF上運行良好,但在行動裝置上從非常大的文件中提取嵌入文字可能會較慢且耗費記憶體。開發者應考慮對大文件實施分頁或分塊提取,並確保裝置有足夠的記憶體。對於UI響應性可能需要背景執行緒來避免在MAUI應用程式中阻塞主執行緒。(根據.NET MAUI的一般最佳實踐和IronPDF處理PDF提取的方式)




