如何从PDF中提取嵌入文本和图像

用 C# 从 PDF 中提取嵌入式文本和图像

This article was translated from English: Does it need improvement?
Translated
View the article in English

通过简单的方法调用,用 C# 从 PDF 文档中提取文本内容和图像。 检索嵌入内容,以便在其他应用程序中进行编辑、分析或重新使用。

文本和图像提取可检索 PDF 文档中的文本内容和图形元素。 访问和重新利用内容,以便进行编辑、搜索、将文本转换为其他格式或保存图像以供重复使用。 无论您是需要用 C# 解析 PDF 以进行数据分析、将内容转换为可搜索格式,还是提取可视化元素以进行归档,IronPDF 都能提供全面的提取工具。

使用 IronPDF 提取文本和图像。 将提取的图像保存到磁盘或转换为其他格式,然后再嵌入到新文档中。 这种灵活性可支持需要进行内容转换的工作流程,例如 将 PDF 转换为 HTML 或重新利用提取的图像。

快速入门:使用 IronPDF 提取文本和图像

只需几行代码即可从 PDF 中提取文本和图像。 本快速入门手册演示了如何从 PDF 文档中检索嵌入内容,以便进行内容再利用和分析。 使用 IronPDF 的精简解决方案,提取文本进行编辑或保存图像以供进一步使用。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronPDF

    PM > Install-Package IronPdf

  2. 复制并运行这段代码。

    var pdf = new IronPdf.PdfDocument("sample.pdf");  
    string text = pdf.ExtractAllText();  
    var images = pdf.ExtractAllImages();
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronPDF,免费试用!
    arrow pointer


如何从 PDF 中提取文本? 从新渲染的和现有的 PDF 文档中提取文本。 使用 `ExtractAllText` 方法提取文档中的嵌入文本。 该方法返回一个包含 PDF 中所有文本的字符串。 各页之间用四个连续换行符隔开。 本示例使用了从维基百科网站渲染的 [示例 PDF](/static-assets/pdf/how-to/extract-text-and-images/sample.pdf)。 在处理包含 [ 国际语言和 UTF-8 字符](https://ironpdf.com/how-to/utf-8/)的 PDF 时,IronPDF 可保持正确的编码和字符表示。 这将确保正确显示非拉丁脚本和特殊字符。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text.cs ```
维基百科页面和提取的纯文本的并排视图,显示文本提取过程

如何提取具有精确坐标的文本? 检索每个 PDF 页面中文本行和字符的坐标。 从 PDF 中选择一个页面并访问 `Lines` 和 `Characters` 属性。 坐标包括代表文本位置的 `Top`, `Right`, `Bottom` 和 `Left` 值。 该功能保留了空间布局,并可进行文本位置分析。 对于需要在 C# 中读取具有位置意识的 PDF 文件的开发人员来说,坐标提取为维护文档结构和实施高级文本分析提供了数据。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text-by-line-character.cs ```
分屏显示维基百科主页和提取的文本文件,Y 坐标显示解析后的内容

如何从 PDF 中提取图像? 使用 `ExtractAllImages` 方法提取文档中的所有嵌入图片。 该方法以 `AnyBitmap` 对象列表的形式返回图像。 使用同一文档,我们提取了图片并将其导出到 "images "文件夹。 该功能支持图像归档、内容迁移和[将 PDF 页面栅格化为图像](https://ironpdf.com/how-to/rasterize-pdf-to-images/)以便进一步处理。 提取的图像可以保持原始质量,并可以 PNG、JPEG 和 BMP 等多种格式保存。对于云存储工作流,可将此功能与[用于图像管理的 Azure Blob Storage 集成](https://ironpdf.com/how-to/images-azure-blob-storage/)。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-image.cs ```
运行图像提取工具后,文件资源管理器在缩略图视图中显示提取的 19 张 PNG 图像

图像提取有哪些不同方法? 除 `ExtractAllImages` 方法外,还可使用 `ExtractAllBitmaps` 和 `ExtractAllRawImages` 方法提取图像信息。 `ExtractAllBitmap` 返回 `AnyBitmap` 的 List,而 `ExtractAllRawImages` 则提取所有图像并以原始字节数组(`byte[]`)的形式返回。 在处理内存中的图像数据或与需要字节数组输入的系统集成时,`ExtractAllRawImages` 方法非常有效。 对于涉及[将 PDF 导出到内存流](https://ironpdf.com/how-to/pdf-to-memory-stream/)的场景,原始字节数组格式提供了最佳的灵活性。

如何从特定 PDF 页面中提取内容? 从单个或多个指定页面中提取文本和图像。 使用 `ExtractTextFromPage` 和 `ExtractTextFromPages` 方法从一个或多个页面中提取文本。 对于图像,请使用 `ExtractImagesFromPage` 和 `ExtractImagesFromPages` 方法。 在处理只有特定部分包含相关内容的大型文档时,这种细粒度的控制很有帮助。 它还支持[分割 PDF 和提取单个页面](https://ironpdf.com/examples/split-pdf-pages-csharp/)进行单独处理的功能。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text-single-multiple.cs ```

何时应从特定页面而非所有页面提取内容? 在以下情况下从特定页面提取内容 - 处理某些部分包含相关数据的大型 PDF 文件 - 实施独立处理页面的工作流 - 构建需要增量内容显示或处理的应用程序 - 只处理所需的页面,优化内存使用率 - 创建特定页面的搜索或索引功能

我应该了解哪些性能注意事项? 提取 PDF 内容时要考虑这些性能因素: - **内存使用**:从大型文档中单独提取页面,最大限度地减少内存消耗 - **处理时间**:适当时使用并行处理进行多页提取 - **文件大小**:带有高分辨率图像的较大 PDF 文件需要更多的处理时间 - **存储**:为提取大量高分辨率图像规划足够的磁盘空间 - **线程**:IronPDF 支持多线程操作,可提高多核系统的性能 要使内存 PDF 获得最佳性能,请使用 [ 内存流操作](https://ironpdf.com/how-to/pdf-memory-stream/),以减少磁盘 I/O 开销。

常见问题解答

如何用 C# 从 PDF 文档中提取文本?

使用 IronPDF 的 ExtractAllText 方法从 PDF 文档中提取嵌入的文本。该方法会返回一个包含 PDF 中所有文本的字符串,各页之间用四个连续换行符隔开。IronPDF 可为国际语言和 UTF-8 字符保持正确的编码。

我可以通过编程从 PDF 文件中提取图像吗?

是的,IronPDF 提供了 ExtractAllImages 方法,用于从 PDF 文档中检索图形元素。您可以将提取的图像保存到磁盘或转换为其他格式,然后再将其嵌入到新文档中。

PDF 内容提取的主要用途是什么?

IronPDF 的提取工具支持各种工作流程,包括解析 PDF 以进行数据分析、将内容转换为可搜索格式、提取可视化元素进行存档,以及将内容重新用于编辑或转换为 HTML 等其他格式。

提取 PDF 内容需要多少行代码?

有了 IronPDF,您只需几行代码就能提取文本和图像。只需加载 PDF 文档,然后调用 ExtractAllText() 提取文本或 ExtractAllImages() 提取图像即可。

我可以从特定页面而不是整个文档中提取内容吗?

是的,IronPDF 允许您指定从中提取文本和图像的特定页面,让您精确控制从 PDF 文档中检索哪些内容。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 17,012,929 | 版本: 2025.12 刚刚发布