如何从 PDF 文件中提取嵌入的文本和图像
提取嵌入的文本和图像涉及检索文档中的文本内容和图形元素。 此过程允许用户访问并重新利用内容进行编辑、搜索或将文本转换为其他格式并保存图像以便重复使用或分析。
要从PDF中提取文本和图片,请使用IronPdf。 提取的图像可以保存到磁盘上,或转换为另一种图像格式,并嵌入到新渲染的文档中。
开始使用IronPDF
立即在您的项目中开始使用IronPDF,并享受免费试用。
如何从 PDF 文件中提取嵌入的文本和图像
- 下载 IronPdf C# 库
- 为提取文本和图像准备 PDF 文档
- 使用
提取所有文本
提取文本的方法 - 使用
提取所有图像
提取图像的方法 - 指定提取文本和图像的特定页面
提取文本示例
文本提取可以在新渲染的和现有的PDF文档上执行。 使用 ExtractAllText
方法来提取文档中嵌入的文本。 该方法将返回一个字符串,包含所给PDF中的所有文本。 页面由四个连续的Environment.NewLines分隔。 我们来使用PDF 样本这是我从维基百科网站上下载的。
:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text.cs
using IronPdf;
using System.IO;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Extract text
string text = pdf.ExtractAllText();
// Export the extracted text to a text file
File.WriteAllText("extractedText.txt", text);
Imports IronPdf
Imports System.IO
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Extract text
Private text As String = pdf.ExtractAllText()
' Export the extracted text to a text file
File.WriteAllText("extractedText.txt", text)
按行和字符提取文本
在每个PDF页面中,可以检索文本行和字符的坐标。 首先,从PDF中选择一个页面并访问行和字符属性。 坐标按照上、右、下、左的值排列,代表文本的位置。
:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text-by-line-character.cs
using IronPdf;
using System.IO;
using System.Linq;
// Open PDF from file
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Extract text by lines
var lines = pdf.Pages[0].Lines;
// Extract text by characters
var characters = pdf.Pages[0].Characters;
File.WriteAllLines("lines.txt", lines.Select(l => $"at Y={l.BoundingBox.Bottom:F2}: {l.Contents}"));
Imports IronPdf
Imports System.IO
Imports System.Linq
' Open PDF from file
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Extract text by lines
Private lines = pdf.Pages(0).Lines
' Extract text by characters
Private characters = pdf.Pages(0).Characters
File.WriteAllLines("lines.txt", lines.Select(Function(l) $"at Y={l.BoundingBox.Bottom:F2}: {l.Contents}"))
提取图像示例
使用 ExtractAllImages
方法提取文档中嵌入的所有图像。 该方法将返回一个AnyBitmap对象列表作为图像。 在我们之前的示例中使用相同的文档,我们提取了图像并将它们导出到“images”文件夹中。
:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-image.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Extract images
var images = pdf.ExtractAllImages();
for(int i = 0; i < images.Count; i++)
{
// Export the extracted images
images[i].SaveAs($"images/image{i}.png");
}
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Extract images
Private images = pdf.ExtractAllImages()
For i As Integer = 0 To images.Count - 1
' Export the extracted images
images(i).SaveAs($"images/image{i}.png")
Next i
除了上面展示的 ExtractAllImages
方法外,用户还可以使用 ExtractAllBitmaps
和 ExtractAllRawImages
方法从文档中提取图像信息。 虽然 ExtractAllBitmaps
方法会返回一个 AnyBitmap 的列表,如代码示例所示,ExtractAllRawImages
方法则从 PDF 文档中提取所有图像,并以字节数组的形式返回这些原始数据。(字节[]).
提取特定页面上的文本和图像
可以对单个或多个指定页面执行文本和图像提取。 使用 ExtractTextFromPage
和 ExtractTextFromPages
方法分别从单页或多页中提取文本。 要提取图像,请使用 ExtractImagesFromPage
和 ExtractImagesFromPages
方法。
:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text-single-multiple.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Extract text from page 1
string textFromPage1 = pdf.ExtractTextFromPage(0);
int[] pages = new[] { 0, 2 };
// Extract text from pages 1 & 3
string textFromPage1_3 = pdf.ExtractTextFromPages(pages);
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Extract text from page 1
Private textFromPage1 As String = pdf.ExtractTextFromPage(0)
Private pages() As Integer = { 0, 2 }
' Extract text from pages 1 & 3
Private textFromPage1_3 As String = pdf.ExtractTextFromPages(pages)