使用 C# 從 PDF 中提取內嵌文字與圖像
使用 C# 中的簡單方法調用,即可從 PDF 文件中提取文字內容和圖像。 檢索嵌入內容,以便在其他應用程式中進行編輯、分析或重複使用。
文字和圖像提取功能可以從 PDF 文件中提取文字內容和圖形元素。 存取和重複使用內容,進行編輯、搜尋、將文字轉換為其他格式或儲存圖像以供重複使用。 無論您是需要使用 C# 解析 PDF進行資料分析、將內容轉換為可搜尋格式,還是擷取視覺元素進行存檔, IronPDF都提供了全面的擷取工具。
使用IronPDF提取文字和圖像。 將提取的影像儲存到磁碟或將其轉換為其他格式,然後再嵌入到新文件中。 這種靈活性支援需要內容轉換的工作流程,例如將 PDF 轉換為 HTML或重新利用提取的圖像。
快速入門:使用IronPDF擷取文字與影像
只需幾行程式碼即可從 PDF 中提取文字和圖像。 本快速入門指南示範如何從 PDF 文件中擷取嵌入內容,以便進行內容再利用和分析。 使用 IronPDF 的簡化解決方案,提取文字進行編輯或儲存圖像以供進一步使用。
最簡工作流程(5個步驟)
- 下載IronPDF C# 庫
- 準備用於文字和圖像提取的PDF文檔
- 使用`ExtractAllText`方法提取文本
- 使用`ExtractAllImages`方法擷取映像
- 指定要從中提取文字和圖像的特定頁面。
如何從PDF文件中提取文字?
從新渲染的和已有的PDF文件中提取文字。 使用 ExtractAllText 方法從文件中擷取嵌入文字。 該方法傳回一個包含 PDF 中所有文字的字串。 頁面之間以四個連續的換行符號分隔。 本範例使用從維基百科網站渲染的範例 PDF 檔案。
處理包含國際語言和 UTF-8 字元的PDF 檔案時, IronPDF能夠保持正確的編碼和字元表示。 這樣可以確保正確顯示非拉丁文字和特殊字元。
: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 中選擇一頁,並存取 Lines 和 Characters 屬性。 座標包括 Bottom 和 Left 值,表示文字位置。 此功能可保留空間佈局並進行文字位置分析。
對於需要在 C# 中讀取具有位置感知能力的 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}"))
如何從PDF文件中提取圖像?
使用 ExtractAllImages 方法從文件中提取所有嵌入的圖像。 此方法傳回影像,作為 AnyBitmap 物件清單。 我們使用同一文件提取圖像,並將它們匯出到"images"資料夾。 此功能支援影像歸檔、內容遷移以及將 PDF 頁面柵格化為圖像以進行進一步處理。
提取的影像可保持原始質量,並可儲存為多種格式,包括 PNG、JPEG 和 BMP。對於雲端儲存工作流程,可將此功能與Azure Blob 儲存集成,以進行影像管理。
: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 擷取所有影像並將其作為原始位元組數組傳回 (byte[])。
當在記憶體中處理影像資料或與需要位元組數組輸入的系統整合時,ExtractAllRawImages 方法效果很好。 對於將 PDF 匯出到記憶體流的場景,原始位元組數組格式提供了最佳的靈活性。
如何從特定的PDF頁面中擷取內容?
從單一或多個指定頁面中提取文字和圖像。 使用 ExtractTextFromPage 和 ExtractTextFromPages 方法從一個或多個頁面中提取文字。 對於圖像,請使用 ExtractImagesFromPage 和 ExtractImagesFromPages 方法。
這種精細的控制有助於處理大型文檔,其中只有特定部分包含相關內容。 它還支援分割 PDF 並提取單個頁面進行單獨處理的功能。
: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)
何時應該從特定頁面而不是所有頁面提取資料?
從特定頁面提取資訊的情況:
- 處理包含特定部分相關數據的大型 PDF 文件
- 實現能夠獨立處理頁面的工作流程
- 建立需要增量內容顯示或處理的應用程式
- 透過僅處理所需頁面來優化記憶體使用
- 建立頁面特定的搜尋或索引功能
我應該了解哪些性能方面的注意事項?
擷取PDF內容時,請考慮以下效能因素:
-記憶體使用:從大型文件中逐頁提取頁面,以最大限度地減少記憶體消耗
-處理時間:在適當情況下,對多頁擷取作業使用並行處理。
檔案大小:包含高解析度影像的大型 PDF 檔案需要更長的處理時間
-儲存:規劃足夠的磁碟空間,用於提取大量高解析度影像。
-多執行緒: IronPDF支援多執行緒操作,以提高多核心系統的效能。
為了獲得最佳的記憶體 PDF 效能,請使用記憶體流操作來減少磁碟 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 文件中檢索哪些內容。

