使用IRONPDF

如何在.NET MAUI中显示嵌入的PDF文本

本教程将指导您使用 IronPDF 在 .NET MAUI 中显示 PDF 嵌入文本。

.NET 多平台应用程序 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 文件也是如此。 让我们了解一下如何使用 IronPDF for .NET MAUI 在 PDF 中显示嵌入文本。

先决条件

在开始教程之前,请确保满足以下要求:

  1. .NET MAUI:微软的统一 UI 工具包,允许您使用单一共享代码库为 Android、iOS、macOS 和 Windows 创建应用程序。 您可以从 Microsoft 网站下载 .NET MAUI。

  2. Visual Studio 2022(或更新版本):一个功能强大且用户友好的.NET编程集成开发环境(IDE)。 您可以从 Microsoft 网站下载 Visual Studio。确保在 Visual Studio 2022 上安装了 .NET MAUI 工作负载。

  3. IronPDF library:这是一个用于.NET的PDF处理库,我们将使用它与PDF文件进行交互。 您可以通过 NuGet 安装 IronPDF,NuGet 是微软开发平台的软件包管理器。

  4. Adobe PDF 文件:为了本教程,我们需要一个 PDF 文件。

创建 .NET MAUI 应用程序

请按照以下步骤创建新的 .NET MAUI 应用程序:

启动 Visual Studio 2022:启动后,导航至文件 > 新建 > 项目。 在项目模板窗口中,选择.NET MAUI App,然后点击Next

如何在 .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 Framework 选择

安装 IronPDF

创建完 .NET MAUI 应用程序后,下一步就是安装 IronPDF for .NET 库。 您可以这样做:

  1. 打开 NuGet 包管理器:导航到工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包

    如何在.NET MAUI中显示PDF嵌入文本,图4:导航到NuGet包管理器

    导航到 NuGet 包管理器

  2. 搜索 IronPDF:在打开的窗口中,点击浏览,在搜索框中输入IronPdf

    如何在 .NET MAUI 中显示 PDF 嵌入文本,图 5:在 NuGet 包管理器 UI 中搜索 IronPDF

    在 NuGet 包管理器 UI 中搜索 IronPDF

  3. 安装 IronPDF:当您在搜索结果中看到 IronPDF 时,点击它。 确保右侧面板中您的项目复选框已勾选,然后点击安装

    接受安装过程中出现的任何权限或使用条款提示。

    您也可以使用 NuGet 软件包管理器控制台,通过以下命令安装 IronPdf:

Install-Package IronPdf

构建用户界面

现在让我们继续为这个应用程序构建用户界面(UI)。 MainPage.xaml 文件将用作登录页。 它将有一个打开 PDF 文件的按钮,并用标签显示所选文件的名称及其内容。

让我们继续创建用户界面:

打开 MainPage.xaml 文件:此文件包含主页的布局。 您可以在解决方案资源管理器中的页面文件夹下找到该文件。

定义布局:我们将使用一个<Scroll View>控件,当页面内容无法完全显示在屏幕上时,允许用户滚动查看页面内容。 在滚动视图内,我们将使用<Stack Layout>来垂直堆叠我们的控件。 在堆栈布局中,我们有三个<Frame>控件。 每个框架用于固定页面的不同部分,使页面看起来整齐有序。

添加控件:第一个框架有一个<VerticalStackLayout>,里面包含一个标签和一个按钮。 Label 显示应用程序名称,Button 允许用户打开 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="opneFileBtn"
        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="opneFileBtn"
        Text="Open Pdf File"
        SemanticProperties.Hint="Open PDF File"
        Clicked="OpenAndReadFile"
        HorizontalOptions="Center" />
</VerticalStackLayout>
XML

第二个框架有一个<HorizontalStackLayout>,包含两个标签。 第一个标签用于显示静态文本"Selected File Name:",第二个名为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>
XML

第三个框架有一个 <VerticalStackLayout>,其中包含两个标签。 第一个标签显示静态文本“PDF Content”,第二个名为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>
XML

您的最终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="opneFileBtn"
                        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="opneFileBtn"
                        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

当用户按下“打开PDF文件”按钮时,将触发OpenAndReadFile方法。 此方法将在我们的MainPage.xaml.cs(代码隐藏)文件中定义。我们的标签fileNamecontent将分别显示所选PDF文件的文件名和PDF文件的内容。

MainPage.xaml.cs 背后的代码

应用程序的逻辑位于MainPage.xaml.cs文件中,也称为代码隐藏文件。在这里,我们定义了OpenAndReadFile方法,该方法负责打开文件选择器,允许用户选择一个PDF文件,提取所选PDF文件的内容,并将其显示在UI上。

打开 MainPage.xaml.cs:在解决方案资源管理器中于 Pages 文件夹下找到此文件。 这就是我们要添加方法的地方。

添加 filePath 字段:在 MainPage 类的顶部,声明一个名为 filePathstring 字段。 我们将使用此字段存储所选文件的路径。

string filePath = string.Empty;
string filePath = string.Empty;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

初始化组件:在 MainPage 构造函数中,调用 InitializeComponent 方法。 该方法会被自动调用,以初始化页面及其控件。

public MainPage()
{
    InitializeComponent();
}
public MainPage()
{
    InitializeComponent();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

实现OpenAndReadFile方法:由于我们将在其中使用await关键字,因此此方法被标记为asyncFilePicker.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;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

OpenAndReadFile 方法现在已完成。 当用户点击打开 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
$vbLabelText   $csharpLabel

运行应用程序

现在我们已经成功设置了用户界面并定义了应用程序的行为,是时候看看我们的应用程序如何运行了!

启动应用程序:要运行应用程序,您可以按键盘上的F5,或点击 Visual Studio 顶部工具栏中的绿色“开始调试”按钮。 确保在 "开始调试 "按钮旁边的下拉菜单中选择了正确的目标设备或模拟器。

使用应用程序:应用程序启动后,您将看到一个标题为 "IronPDF MAUI Application" 的屏幕和一个标签为 "Open PDF File" 的按钮。

如何在 .NET MAUI 中显示 PDF 内嵌文本,图 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文档中的页眉和页脚,以及支持CSS文件以实现像素级完美的PDF文件。

IronPDF 是一款具有强大 PDF 操作功能的商业产品,并提供免费试用版 IronPDF,让您可以测试其功能。 如果您发现该产品对您的开发需求有益并决定用于生产,许可证计划起价为$749。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
如何在ASP.NET Core中显示PDF文件
下一步 >
如何在C#中将PDF转换为PNG