跳至页脚内容
使用IRONPDF

C#教程:使用IronPDF构建PDF文本内容查看器(Windows表单)

在当今的数字时代,PDF 文件在教育、商业和个人使用的许多工作流程中起着至关重要的作用。 它们是一种共享和展示多种多样数据的标准格式,包括文本、图像和表格。

在 C# Windows Forms 应用程序中显示完整 PDF 文档的完整视觉保真度可能需要专用的渲染组件,但开发人员往往还有其他需求。 有时,目标是用 C# 读取 PDF 文本、提取数据或显示 PDF 的文本内容以供快速审核、索引或访问。

本文将指导您创建一个专注于此特定任务的应用程序:使用 IronPDF(一种功能强大的 .NET 库)构建一个简单的 C# PDF 文本内容查看器。 您将学习如何使用 IronPDF 在 Windows Forms 应用程序中加载 PDF 并有效地提取和显示其文本内容。

什么是 IronPDF?

IronPDF 是一个全面的 C# 库,使 .NET 开发人员能够在其应用程序中创建、编辑和处理 PDF 文件。 它允许用户将 HTML、图像和 SVG 转换为 PDF 文档,尤其是在本教程中,还可以读取和提取现有 PDF 的内容。 IronPDF 设计为易于使用,并提供广泛的功能来操作 PDF 文件。

构建 PDF 文本查看器的要求

要创建此 C# PDF 文本显示应用程序,您需要:

  • Visual Studio:创建 Windows Forms 应用程序的集成开发环境 (IDE)。
  • IronPDF:提供读取、创建和操作 PDF 文档功能的 NuGet 包,包括文本提取。

Illustration showing HTML to PDF conversion concept IronPDF 还可以从 HTML 创建 PDF,这是与本教程中展示的文本提取的一个独立功能。

使用 IronPDF 在 C# 中创建 PDF 文本内容查看器的步骤

步骤 1:在 Visual Studio 中创建一个新的 Windows Forms 应用程序

首先,启动 Visual Studio 并点击"创建一个新项目"。从列表中选择"Windows Forms App (.NET Framework)"或类似的.NET模板。

Visual Studio new project dialog Visual Studio 新项目创建

接下来,为您的项目提供一个名称(例如,CSharpPdfTextReader)并点击创建按钮。 这将设置一个新的 Windows Forms 应用程序项目。

步骤 2:安装 IronPDF 库

使用 NuGet 包管理器 GUI

  1. 在解决方案资源管理器中,右键单击您的项目并选择"管理 NuGet 包..."
  2. 转到"浏览"选项卡并搜索"IronPdf"。
  3. 选择 IronPdf 包并点击"安装"。

NuGet Package Manager in Visual Studio searching for IronPDF 通过 NuGet 包管理器安装 IronPDF

使用 NuGet 包管理器控制台

或者,打开包管理器控制台(工具 > NuGet 包管理器 > 包管理器控制台)并运行命令:

Install-Package IronPdf

这将下载和安装 IronPDF 及其依赖项到您的项目中。

步骤 3:向您的表单中添加一个 RichTextBox 以显示文本

我们将使用 RichTextBox 控件来显示从 PDF 提取的文本内容。 RichTextBox 适合显示格式化文本,尽管在本教程中,它的主要作用是呈现 IronPDF 提取的纯文本。 它有效地显示文本信息而不尝试渲染 PDF 的原始视觉布局。

要添加 RichTextBox

  1. 在设计器视图中打开您的表单。
  2. 转到工具箱(视图 > 工具箱)。
  3. 在"常用控件"下找到 RichTextBox,将其拖到您的表单上。
  4. 根据需要调整其大小和位置。 在属性窗口中,您可以设置其 名称(例如,pdfDataRichTextBox)并将其 停靠 属性设置为 填充,如果您希望它占据大部分表单空间。

PDF Viewer C# Windows Application (Tutorial), Figure 4: Access the RickTextBox in Form1 向 Form1 添加 RichTextBox 以显示提取的 PDF 文本

步骤 4:添加一个按钮以选择 PDF 文件

在您的表单中添加一个 Button 控件。 用户将点击此按钮以打开文件对话框并选择一个要提取文本的 PDF 文件。

  1. 从工具箱中拖动一个 Button 到您的表单上。
  2. 在属性窗口中,设置其 名称(例如,openBtn)和 文本(例如,"打开PDF并显示文本")。

PDF Viewer C# Windows Application (Tutorial), Figure 5: Add a new Button to Form1 向 Form1 添加按钮以触发 PDF 选择

步骤 5:添加 C# 代码以加载 PDF 并提取文本

双击刚刚添加的按钮("打开 PDF 并显示文本")以在 Form1.cs 中创建其 点击 事件处理程序。

首先,确保您在 Form1.cs 文件顶部导入了 IronPDF 命名空间:

using IronPdf;
using System; // For EventArgs, Exception
using System.Windows.Forms; // For OpenFileDialog, MessageBox, DialogResult, etc.
using IronPdf;
using System; // For EventArgs, Exception
using System.Windows.Forms; // For OpenFileDialog, MessageBox, DialogResult, etc.
Imports IronPdf
Imports System ' For EventArgs, Exception
Imports System.Windows.Forms ' For OpenFileDialog, MessageBox, DialogResult, etc.
$vbLabelText   $csharpLabel

现在,实现按钮点击事件处理程序。 此代码将:

  1. 提示用户选择一个 PDF 文件。
  2. 使用 IronPDF 加载所选 PDF。
  3. 使用 IronPDF 的 ExtractAllText() 方法从 PDF 中获取所有文本。
  4. 将此提取的文本显示在 RichTextBox 中。
private void openBtn_Click(object sender, EventArgs e)
{
    // Create an OpenFileDialog to open PDF files
    var openFileDialog = new OpenFileDialog
    {
        Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*", // Filter to show only PDFs
        Title = "Select a PDF file to extract text from" // Dialog title
    };

    // Show dialog and check if the user selected a file
    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        try
        {
            // It's recommended to set your license key once at application startup.
            // License.LicenseKey = "YourIronPdfLicenseKey"; 
            // If no key is set, IronPDF runs in trial mode (watermarks on output, time limits).
            // For text extraction, the trial is fully functional for development.

            // Load the selected PDF using IronPDF
            var pdf = PdfDocument.FromFile(openFileDialog.FileName);

            // Extract all text content from the PDF using IronPDF
            string extractedText = pdf.ExtractAllText();

            // Display the extracted text in the RichTextBox
            // (Assuming your RichTextBox is named pdfDataRichTextBox, change if different)
            pdfDataRichTextBox.Text = extractedText; 
        }
        catch (Exception ex)
        {
            // Show error message if an exception occurs
            MessageBox.Show("An error occurred while processing the PDF file: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
private void openBtn_Click(object sender, EventArgs e)
{
    // Create an OpenFileDialog to open PDF files
    var openFileDialog = new OpenFileDialog
    {
        Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*", // Filter to show only PDFs
        Title = "Select a PDF file to extract text from" // Dialog title
    };

    // Show dialog and check if the user selected a file
    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        try
        {
            // It's recommended to set your license key once at application startup.
            // License.LicenseKey = "YourIronPdfLicenseKey"; 
            // If no key is set, IronPDF runs in trial mode (watermarks on output, time limits).
            // For text extraction, the trial is fully functional for development.

            // Load the selected PDF using IronPDF
            var pdf = PdfDocument.FromFile(openFileDialog.FileName);

            // Extract all text content from the PDF using IronPDF
            string extractedText = pdf.ExtractAllText();

            // Display the extracted text in the RichTextBox
            // (Assuming your RichTextBox is named pdfDataRichTextBox, change if different)
            pdfDataRichTextBox.Text = extractedText; 
        }
        catch (Exception ex)
        {
            // Show error message if an exception occurs
            MessageBox.Show("An error occurred while processing the PDF file: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}
Private Sub openBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
	' Create an OpenFileDialog to open PDF files
	Dim openFileDialog As New OpenFileDialog With {
		.Filter = "PDF files (*.pdf)|*.pdf|All files (*.*)|*.*",
		.Title = "Select a PDF file to extract text from"
	}

	' Show dialog and check if the user selected a file
	If openFileDialog.ShowDialog() = DialogResult.OK Then
		Try
			' It's recommended to set your license key once at application startup.
			' License.LicenseKey = "YourIronPdfLicenseKey"; 
			' If no key is set, IronPDF runs in trial mode (watermarks on output, time limits).
			' For text extraction, the trial is fully functional for development.

			' Load the selected PDF using IronPDF
			Dim pdf = PdfDocument.FromFile(openFileDialog.FileName)

			' Extract all text content from the PDF using IronPDF
			Dim extractedText As String = pdf.ExtractAllText()

			' Display the extracted text in the RichTextBox
			' (Assuming your RichTextBox is named pdfDataRichTextBox, change if different)
			pdfDataRichTextBox.Text = extractedText
		Catch ex As Exception
			' Show error message if an exception occurs
			MessageBox.Show("An error occurred while processing the PDF file: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
		End Try
	End If
End Sub
$vbLabelText   $csharpLabel

代码细节:

  • openFileDialog:标准文件选择对话框,过滤 PDF 文件。
  • PdfDocument.FromFile(openFileDialog.FileName):此 IronPDF 方法将所选 PDF 加载到 PdfDocument 对象中。
  • pdf.ExtractAllText():这是本教程的关键 IronPDF 功能。 它遍历整个 PDF 并将所有可识别的文本内容提取到一个字符串中。 这在 C# 解析 PDF 文本 场景中非常有用。
  • pdfDataRichTextBox.Text = extractedText;:然后将提取的文本赋值给您的 RichTextBox文本 属性(确保名称 pdfDataRichTextBox 与您给 RichTextBox 控件的名称匹配)。

这展示了 IronPDF 如何简化 在 C# 中读取 PDF 文本 ,使开发人员能够以最小的努力以编程方式访问 PDF 内容。

步骤 6:构建并运行您的 C# PDF 文本查看器应用程序

  1. 在 Visual Studio 中,转到"构建"菜单并选择"构建解决方案"。
  2. 构建成功后,按"F5"或点击"启动"按钮运行应用程序。

您的应用程序窗口将出现。 点击"打开 PDF 并显示文本"按钮,从计算机中选择一个 PDF 文件,然后点击"打开"。

PDF Viewer C# Windows Application (Tutorial), Figure 6: Run the Application 运行 C# PDF 文本查看器应用程序

RichTextBox 将显示从所选 PDF 文件中提取的文本内容。

PDF Viewer C# Windows Application (Tutorial), Figure 7: Display the text content after selecting a PDF file 从 PDF 提取的文本内容并显示在 RichTextBox

有关在 MAUI 应用程序中可视化渲染 PDF 的信息(这与本教程的文本提取焦点不同),您可能会探索"PDF Viewing in MAUI Tutorial"。

结论:使用 C# 和 IronPDF 轻松访问 PDF 文本内容

遵循这些步骤,您已经创建了一个可有效提取和显示 PDF 文件中文本内容的 C# Windows Forms 应用程序,使用 IronPDF。 当您需要以编程方式访问 PDF 中的文本信息以进行展示、分析或在您的 .NET 应用程序中进一步处理时,这种方法很有价值。

IronPDF 提供了强大的 C# PDF 文本提取功能,而这只是其全面功能的一部分。 您还可以使用 IronPDF 完成更高级的任务,如在 PDF 中搜索文本、添加注释打印 PDF 文档PDF 加密和解密以及编辑 PDF 表单

请记住,本教程侧重于一个特定用例:使 PDF 文本在 C# 应用程序中更容易获得。 您可以根据这一基础进行调整和扩展,以满足更复杂的需求。

如果您有兴趣探索 IronPDF 的全部潜力:

  • 探索 IronPDF 文档 以获取详细的指南和示例。
  • 要在没有试用限制的情况下在您的生产应用程序中使用 IronPDF ,需要许可证密钥。 您可以从 IronPDF 网站购买 许可证。 许可证从 $799 开始。
  • 您还可以通过免费试用版评估完整的商业版本。

常见问题解答

如何在 C# 应用程序中从 PDF 中提取文本?

您可以使用 IronPDF 的 ExtractAllText() 方法在 C# 应用程序中高效地提取 PDF 文档中的所有可识别文本内容。

我需要哪些工具来创建 C# 中的 PDF 文本查看器?

要在 C# 中创建 PDF 文本查看器,您需要 Visual Studio 作为开发环境以及 IronPDF 库,可以通过 NuGet 包管理器安装。

如何在 Windows 窗体应用程序中显示提取的 PDF 文本?

您可以在 Windows 窗体应用程序中使用 RichTextBox 控件显示从 PDF 提取的文本内容,以允许格式化文本显示。

在 C# 应用程序中选择 PDF 文件的流程是什么?

要选择 PDF 文件,向表单中添加一个按钮控件以打开文件对话框,允许用户浏览并选择要处理的 PDF 文件。

如何在 C# 中处理 PDF 处理过程中出现的错误?

您可以通过在 try-catch 块中封装 PDF 处理代码来处理错误,并在发生异常时使用 MessageBox.Show 显示错误消息。

IronPDF 提供了哪些附加功能?

IronPDF 提供了超越文本提取的功能,包括 HTML 转 PDF 转换、添加注释、文本搜索、PDF 加密和解密、打印以及编辑 PDF 表单。

如何在 Visual Studio 中设置用于 PDF 处理的新 Windows 窗体项目?

在 Visual Studio 中,选择“创建一个新项目”,并选择“Windows 窗体应用程序 (.NET 框架)”。命名您的项目并点击“创建”以设置用于 PDF 处理的项目。

运行 C# 中的 PDF 文本查看器应用程序需要哪些步骤?

在 Visual Studio 的构建菜单中选择“构建解决方案”,然后按 F5 或点击“开始”运行应用程序。使用按钮选择 PDF 文件并显示其文本。

IronPDF 可以用于 HTML 转 PDF 转换吗?

是的,IronPDF 可以使用 RenderHtmlAsPdf 用于 HTML 字符串或 RenderHtmlFileAsPdf 用于 HTML 文件的方法进行 HTML 转 PDF 转换。

PDF 文本提取中的一些常见故障排除场景是什么?

常见问题包括处理非标准字体或加密的 PDF。确保 PDF 文件没有密码保护,如果文本提取失败,请检查字体兼容性。

IronPDF 与 .NET 10 兼容吗?

是的——IronPDF 支持 .NET 10 以及更早的版本(如 .NET 9、8、7、6、.NET Core、.NET Standard 和 .NET Framework),这意味着您可以在 .NET 10 项目上使用 IronPDF 构建 Windows Forms 文本查看器,而不会出现兼容性问题。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。