如何在 C# 中從 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 中所有文字的字串。 各頁之間以四個連續的換行符隔開。 本範例使用 [從 Wikipedia 網站渲染的 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#](https://ironpdf.com/examples/reading-pdf-text/) 中以位置感知讀取 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擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。

準備好開始了嗎?
Nuget 下載 17,012,929 | 版本: 2025.12 剛剛發布