如何在.NET MAUI中嵌入文本显示PDF
本教程将指导您使用 IronPDF 在 .NET MAUI 中显示 PDF 嵌入文本。
.NET Multi-platform App UI (MAUI) 简化了多平台应用程序的开发。 有了新的改进版本 Xamarin.Forms ,开发人员只需一个项目即可创建适用于 Android、iOS、macOS 和 Windows 的应用程序。 PDF 文件以保留字体、图像和布局而著称,通常使用该技术进行管理。
在这种情况下,IronPDF 库提供了强大的 PDF 处理能力。 开发人员可以利用 IronPDF 的强大功能毫不费力地处理嵌入式文本,简化生成和操作 PDF 文件的过程,同时遵守默认设置以获得一致的渲染效果。
了解 PDF 嵌入式文本和字体嵌入
PDF 嵌入文本或 PDF 字体是嵌入在 PDF 文件中的文本实体。它对于在 PDF 阅读器应用程序(包括 Adobe InDesign 等常用应用程序)中实现一致性和准确渲染至关重要。 通过在 PDF 文档中嵌入字体,无论使用哪种类型的 PDF 阅读器应用程序,也无论阅读器设备上是否安装了特定字体,都能保留正确的字体。
嵌入字体有时会增加 PDF 文档的大小,但保持原始文档的外观和感觉至关重要。 Adobe PDF 设置通常决定 PDF 中的字体是否嵌入。
PDF 文档中有不同种类的嵌入字体:
1.嵌入式字体:整个字体嵌入到文档中。 2.嵌入式字体子集:仅嵌入原始文档中使用的字体子集。 3.无嵌入字体:文件中不嵌入字体。
在 Adobe Acrobat 中,您可以通过检查文档属性来验证是否嵌入了字体。 默认情况下,PDF 文件中会嵌入字体。不过,可以使用 Adobe Acrobat Pro 或其他类似工具更改这些设置。
扁平化 PDF "一词通常用于嵌入所有字体的 PDF 文档,使文件自成一体,并确保在所有系统和 PDF 阅读器上显示相同内容。
IronPDF C#
IronPDF文档是一个功能强大的C# PDF库,允许开发人员在.NET应用程序中生成、读取和编辑PDF文件。 您可以学习 使用 IronPDF 从 HTML 生成 PDF 文件。 IronPDF 的一个有趣功能是能够处理 PDF 文件中的嵌入文本。 在 PDF 文件中嵌入字体的能力对于保持文档的原始外观至关重要,即使在无法访问文档中使用的原始字体的系统上查看或打印 PDF 文件也是如此。 让我们了解一下如何在 .NET MAUI 中使用 IronPDF 显示 PDF 中的嵌入文本。
前提条件
在开始教程之前,请确保满足以下要求:
1..NET MAUI:微软的统一用户界面工具包,可让您使用单一共享代码库为 Android、iOS、macOS 和 Windows 创建应用程序。 您可以从微软网站下载 .NET MAUI。 2.Visual Studio 2022(或更高版本):功能强大、用户友好的集成开发环境 (IDE),适用于 .NET 编程。 您可以从 Microsoft 网站下载 Visual Studio。确保在 Visual Studio 2022 上安装了 .NET MAUI 工作负载。 3.IronPDF库:这是.NET的PDF处理库,我们将使用它与PDF文件进行交互。 您可以通过 NuGet 安装 IronPDF,NuGet 是微软开发平台的软件包管理器。 4.An Adobe PDF 文件:在本教程中,我们需要一个 PDF 文件。
创建 .NET MAUI 应用程序
请按照以下步骤创建新的 .NET MAUI 应用程序:
启动 Visual Studio 2022:启动后,导航至 File > New > 项目。 在项目模板窗口中,选择 .NET MAUI 应用程序,然后单击 下一步。
!如何在 .NET MAUI 中显示 PDF 嵌入文本,图 1:在 Visual Studio 中创建 .NET MAUI 应用程序。 在 Visual Studio 中创建 .NET MAUI 应用程序
为项目命名:在下一个窗口中,您需要为项目命名。 让我们将其命名为 IronPDF_Read_and_View。 选择保存项目的位置,然后单击 下一步。
!如何在 .NET MAUI 中显示 PDF 嵌入文本,图 2:配置项目。 配置项目
选择框架:从下拉列表中选择 .NET Framework。选择最新的 .NET Framework,以便顺利进行,然后单击"创建"按钮。
!如何在 .NET MAUI 中显示 PDF 嵌入文本,图 3:.NET Framework 选择。 .NET 框架选择
安装 IronPDF。
创建完 .NET MAUI 应用程序后,下一步就是安装 IronPDF 库。 您可以这样做:
1.打开 NuGet 包管理器:导航至 工具 > NuGet包管理器 > 管理解决方案的 NuGet 包。
。导航到 NuGet 包管理器
2.搜索 IronPDF:在打开的窗口中,单击 浏览,然后在搜索框中输入 IronPdf。
!a href="/static-assets/pdf/blog/display-pdf-embedded-text-in-net-maui/display-pdf-embedded-text-in-net-maui-5.webp"> 如何在 .NET MAUI 中显示 PDF 嵌入文本,图 5:在 NuGet 包管理器 UI 中搜索 IronPDF</a>在NuGet包管理器UI中搜索IronPDF
3.安装 IronPDF:在搜索结果中看到 IronPdf 后,点击它。 确保选中右侧面板中的项目复选框,然后点击 安装。
接受安装过程中出现的任何权限或使用条款提示。
您也可以使用 NuGet 软件包管理器控制台,通过以下命令安装 IronPDF:
Install-Package IronPdf
构建用户界面
现在,让我们继续为该应用程序构建用户界面(UI)。 MainPage.xaml 文件将作为着陆页。 它将有一个打开 PDF 文件的按钮,并用标签显示所选文件的名称及其内容。
让我们继续创建用户界面:
打开 MainPage.xaml 文件:该文件包含主页的布局。 您可以在解决方案资源管理器中的页面文件夹下找到该文件。
定义布局:我们将使用一个 <ScrollView> 控件,当页面内容无法完全显示在屏幕上时,该控件允许用户滚动浏览页面内容。 在 ScrollView 中,我们将使用 <StackLayout> 来垂直堆叠控件。 在 StackLayout 中,我们有三个 <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>第二个框架有一个<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>第三个框架有一个<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="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
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="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
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 方法。 该方法将在我们的 MainPage.xaml.cs (代码隐藏)文件中定义。我们的标签 fileName 和 content 将分别显示所选 PDF 文件的文件名和 PDF 文件的内容。
MainPage.xaml.cs 背后的代码
应用程序的逻辑位于 MainPage.xaml.cs 文件中,也称为代码隐藏文件。在这里,我们定义了 OpenAndReadFile 方法,该方法负责打开文件选择器,允许用户选择 PDF 文件,提取所选 PDF 文件的内容并将其显示在用户界面上。
打开 MainPage.xaml.cs:在页面文件夹下的解决方案资源管理器中找到该文件。 这就是我们要添加方法的地方。
添加 filePath 字段:在 MainPage 类的顶部,声明一个名为 filePath 的 string 字段。 我们将使用此字段存储所选文件的路径。
string filePath = string.Empty;string filePath = string.Empty;IRON VB CONVERTER ERROR developers@ironsoftware.com初始化组件:在 MainPage 构造函数中,调用 InitializeComponent 方法。 该方法会被自动调用,以初始化页面及其控件。
public MainPage()
{
InitializeComponent();
}public MainPage()
{
InitializeComponent();
}IRON VB CONVERTER ERROR developers@ironsoftware.com实现 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 SubOpenAndReadFile 方法现已完成。 当用户点击打开 PDF 文件按钮时将触发翻译。 您需要将 "Your-License-Key" 替换为您实际的 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运行应用程序
现在,我们已经成功地设置了用户界面并定义了应用程序的行为,是时候看看我们的应用程序的运行情况了!
启动应用程序:要运行应用程序,您可以按下键盘上的 F5,或单击 Visual Studio 顶部工具栏中的绿色 "开始调试 "按钮。 确保在 "开始调试 "按钮旁边的下拉菜单中选择了正确的目标设备或模拟器。
使用应用程序:应用程序启动后,您将看到一个标题为 "IronPDF MAUI 应用程序 "的屏幕和一个标有 "打开 PDF 文件 "的按钮。
!a href="/static-assets/pdf/blog/display-pdf-embedded-text-in-net-maui/display-pdf-embedded-text-in-net-maui-6.webp">How to Display PDF Embedded Text in .NET MAUI,图 6:IronPDF MAUI 应用程序的用户界面。 IronPDF MAUI 应用程序的用户界面
打开 PDF 文件:单击 "打开 PDF 文件 "按钮。 这将打开一个文件选择器,允许您从设备或模拟器中浏览和选择 PDF 文件。
!如何在 .NET MAUI 中显示 PDF 嵌入文本,图 7:文件选择对话框。 文件选择对话框
查看内容:选择 PDF 文件后,文件名将显示在 "所选文件名:"下,所选 PDF 文件的内容将显示在 "PDF 内容 "下。
!如何在 .NET MAUI 中显示 PDF 嵌入文本,图 8:从选定的 PDF 文件显示 PDF 内容。 从选定的 PDF 文件显示 PDF 内容
请注意,如果所选 PDF 文件非常大,提取和显示文本可能需要几秒钟。 此外,请记住提取的文本格式可能与 PDF 文件的原始布局不完全一致,因为 ExtractAllText 方法的详细信息提取的是嵌入的文本内容。
结论
本教程演示了如何使用 IronPDF 库构建一个 .NET MAUI 应用程序,以提取和显示 PDF 文件中的文本内容。这个项目是一个很好的例子,说明在应用程序中处理 PDF 文件时,.NET MAUI 和 IronPDF 库是多么强大和通用。
除了提取 PDF 文件中的文本和图像,IronPDF 库还支持广泛的功能,包括 与 PDF 表单交互、分割 PDF 文件、将 PDF 页面光栅化为图像、HTML登录表单背后的身份验证、自定义PDF文档中的页眉和页脚,以及为像素完美的PDF文件提供支持的CSS文件。
IronPDF 是一款商业产品,具有强大的 PDF 操作功能,它提供IronPDF免费试用版,供您测试其功能。 如果您发现该产品有利于满足您的开发需求,并决定将其用于生产,许可证计划从 $799 开始。
常见问题解答
如何在.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。
在.NET MAUI应用程序中使用IronPDF有哪些好处?
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 9、8、7、6、5、Core、Standard 和 Framework 版本,以及 .NET 10。(ironpdf.com)
在资源有限的设备(例如 iOS 或 Android)上使用 MAUI 中的 IronPDF 的 ExtractAllText 功能处理大型 PDF 时,是否存在任何限制或已知问题?
IronPDF 的ExtractAllText虽然能很好地处理标准 PDF 文件,但在移动设备上从超大型文档中提取嵌入文本时速度会变慢,并且会占用大量内存。开发者应考虑对大型文件实现分页或分块提取,并确保设备有足够的内存。此外,为了保证 UI 的响应速度,可能需要在后台线程中使用,以避免阻塞 MAUI 应用的主线程。(以上内容基于 .NET MAUI 的通用最佳实践以及 IronPDF 对 PDF 提取的处理方式。)






