在 上一篇文章 中,我們討論瞭如何使用 Java 從文檔中提取圖像。今天,我們將尋求使用 C# 實現相同的目標。如果您還沒有訪問過上一篇文章,請不要擔心。在本文中,我們將學習使用文檔解析 .NET API 在 C# 應用程序中以編程方式從 PDF、Excel、PowerPoint 和 Word 文檔中提取圖像。
此處將涵蓋以下主題:
圖像、文本和元數據提取 .NET API
GroupDocs.Parser for .NET 是文檔解析和數據提取 .NET API。它支持從文字處理文檔、電子表格、演示文稿、檔案和電子郵件文檔中解析和提取圖像、文本和元數據。在文章的最後,提到 圖像提取 API 支持的文檔格式。
在本文中,我們將使用此 API,因此我建議下載 其二進製文件或從 NuGet 安裝 API 以準備環境。
在 C# 中從 PDF 文檔中提取圖像
按照這些簡單的步驟,您可以輕鬆地從任何 PDF 文檔中檢索所有圖像。
- 使用源文檔實例化 Parser 類對象。
- 調用Parser類的GetImages方法獲取PageImageArea對像中所有圖片的集合。
- 遍歷 PageImageArea 以獲取每個圖像。
- 使用 PageImageArea 的 Save 方法將圖像保存在磁盤上。
提取的圖像可以保存為 BMP、GIF、JPEG、PNG 和 WebP 格式。完整的代碼如下所示,以演示整個步驟。
// 使用 GroupDocs.Parser for .NET 在 C# 中從 Word、Excel、PPT、PDF 中提取圖像
using (Parser parser = new Parser("path/document.pdf"))
{
IEnumerable<PageImageArea> images = parser.GetImages();
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// 迭代檢索到的圖像
foreach (PageImageArea image in images)
{
// 保存圖像並打印頁面索引、矩形和圖像類型:
Console.WriteLine(string.Format("Page: {0}, R: {1}, Type: {2}", image.Page.Index, image.Rectangle, image.FileType));
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
imageNumber++;
}
}
在 C# 中從 Word、Excel、PowerPoint 文件中提取圖像
不僅限於 PDF 格式,我們可以從文字處理文檔、電子表格、演示文稿中提取所有圖像,而無需更改代碼庫。只需更改帶有文件擴展名的源文檔路徑,您的文檔將被解析以提取所有圖像並將其保存到磁盤。
using (Parser parser = new Parser("path/document.docx")) // Word Document
// using (Parser parser = new Parser("path/document.xlsx")) // Excel Spreadhseet
// using (Parser parser = new Parser("path/document.pptx")) // Presentation
// using (Parser parser = new Parser("path/document.pdf")) // PDF Document
在 C# 中從特定文檔頁面中提取圖像
如果您想從文檔的特定頁面中提取圖像,可以使用下面提到的步驟和 C# 代碼輕鬆完成。
- 使用 GetDocumentInfo 方法獲取有關文檔的信息。
- 從文檔信息中取出總PageCount等信息。
- 使用 GetImages(pageIndex) 方法並將目標頁面索引傳遞給它。
- 要保存檢索到的圖像,請遍歷圖像集合,並使用 Save 方法保存單個圖像。
// 使用 GroupDocs.Parser for .NET 從 C# 中的 Word、Excel、PowerPoint, PDF 的特定頁面中提取圖像
using (Parser parser = new Parser("path/document.pdf"))
{
// 獲取文檔信息
IDocumentInfo documentInfo = parser.GetDocumentInfo();
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// 遍歷頁面
for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
{
// 打印頁碼
Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
// 迭代圖像。忽略示例中的空檢查
foreach (PageImageArea image in parser.GetImages(pageIndex))
{
// 打印矩形和圖像類型
Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
imageNumber++;
}
}
}
C# 中圖像提取支持的格式
以下是 GroupDocs.Parser for .NET API 支持的用於圖像提取的文檔格式。
文件類型 | 文件格式 |
---|---|
文字處理文檔 | DOC、DOCX、DOCM、DOT、DOTX、DOTM、ODT、OTT、RTF |
電子表格 | XLS、XLSX、XLSM、XLSB、XLT、XLTX、XLTM、ODS、OTS、XLA、XLAM、數字 |
簡報 | PPT、PPTX、PPTM、PPS、PPSX、PPSM、POT、POTX、POTM、ODP、OTP |
便攜式文件 | |
電子郵件 | EML、EMLX、味精 |
檔案 | 郵編 |
有關 GroupDocs.Parser 的更多信息
讓我們再談談@免費支持論壇