使用IRONPDF

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

更新 2024年三月17日
分享:

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

.NET多平台应用程序用户界面 (毛伊岛) 简化了多平台应用程序的开发。有了改进后的新版本 "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 文件。您可以 从 HTML 生成 PDF 文件.IronPDF 的一个有趣功能是可以处理 PDF 文件中的嵌入文本。在 PDF 文件中嵌入字体的功能对于保持文档的原始外观至关重要,即使在无法访问文档中使用的原始字体的系统上查看或打印 PDF 文件也是如此。让我们来了解一下如何在 .NET MAUI 中使用 IronPDF 显示 PDF 中的嵌入文本。

先决条件

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

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

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

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

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

创建 .NET MAUI 应用程序

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

启动 Visual Studio 2022:启动后,导航至 File > New > Project。在项目模板窗口中,选择.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 框架选择

.NET框架选择

安装 IronPDF

创建 .NET MAUI 应用程序后,下一步就是安装 IronPDF 库。下面是安装方法:

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

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

    导航至 NuGet 软件包管理器

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

    如何在 .NET MAUI 中显示 PDF 嵌入文本,图 5:在 NuGet 软件包管理器用户界面中搜索 IronPDF

    在 NuGet 软件包管理器用户界面中搜索 IronPDF

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

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

你也可以使用 NuGet 软件包管理器控制台,使用以下命令安装 IronPDF:

Install-Package IronPdf

构建用户界面

现在,让我们构建用户界面 (用户界面) 文件。MainPage.xaml 文件将作为登陆页面。它将包含一个用于打开 PDF 文件的按钮,以及用于显示所选文件名称及其内容的标签。

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

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

定义布局:我们将使用一个控件,当页面内容无法完全显示在屏幕上时,用户可以使用该控件滚动浏览页面内容。在滚动视图中,我们将使用一个 `。用于垂直堆叠控件。在堆叠布局中,我们有三个每个框架用于容纳页面的一个不同部分,使页面看起来整齐有序。

添加控件:第一个框架有一个中包含一个标签和一个按钮。标签显示应用程序名称,按钮允许用户打开 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>
XML

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

第三个框架有一个其中包含两个标签。第一个标签显示静态文本 "PDF 内容",第二个名为 "内容 "的标签显示 PDF 文件的内容。


<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

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

MainPage.xaml.cs 背后的代码

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

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

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

string filePath = string.Empty;
string filePath = string.Empty;
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

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

public MainPage()
{
    InitializeComponent();
}
public MainPage()
{
    InitializeComponent();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

执行 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;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

现在,"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
VB   C#

运行应用程序

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

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

使用应用程序:应用程序启动后,您将看到一个标题为 "IronPDF MAUI 应用程序 "的屏幕和一个标有 "打开 PDF 文件 "的按钮。

如何在 .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 文件的原始布局不完全一致,这是因为 提取所有文本 方法提取嵌入的文本内容。

结论

本教程演示了如何使用 IronPDF 库构建一个 .NET MAUI 应用程序,以提取和显示 PDF 文件中的文本内容。这个项目是一个很好的例子,说明了在应用程序中处理 PDF 文件时,.NET MAUI 和 IronPDF 库是多么强大和通用。

除了提取 PDF 文件中的文本和图像,IronPDF 库还支持多种功能,包括 与表格互动分割 PDF 文件、 将 PDF 页面光栅化为图像, HTML 登录表单背后的身份验证自定义 页眉和页脚 还支持用于像素完美的 PDF 文件的 CSS 文件。

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

< 前一页
如何在ASP.NET Core中显示PDF文件
下一步 >
如何在C#中将PDF转换为PNG

准备开始了吗? 版本: 2024.10 刚刚发布

免费NuGet下载 总下载量: 11,108,738 查看许可证 >