Trong bài đăng trước, chúng tôi đã thảo luận về cách trích xuất hình ảnh từ tài liệu trong Java. Hôm nay, chúng ta sẽ tìm cách đạt được mục tiêu tương tự bằng cách sử dụng C#. Đừng lo lắng nếu bạn chưa truy cập bài đăng cuối cùng. Trong bài viết này, chúng ta sẽ học cách lập trình trích xuất hình ảnh từ các tài liệu PDF, Excel, PowerPoint và Word trong ứng dụng C# bằng cách sử dụng phân tích cú pháp tài liệu .NET API.

Trích xuất hình ảnh từ tài liệu trong .NET

Các chủ đề sau đây sẽ được đề cập ở đây:

.NET API trích xuất hình ảnh, văn bản và siêu dữ liệu

Phân tích tài liệu và trích xuất dữ liệu trong .NET

GroupDocs.Parser for .NET là phân tích cú pháp tài liệu và trích xuất dữ liệu .NET API. Nó hỗ trợ phân tích cú pháp tài liệu và trích xuất hình ảnh, văn bản và siêu dữ liệu từ tài liệu soạn thảo văn bản, bảng tính, bản trình bày, tài liệu lưu trữ và tài liệu email. Ở cuối bài viết, các định dạng tài liệu đã đề cập được API hỗ trợ để trích xuất hình ảnh.

Trong bài viết này, chúng tôi sẽ sử dụng API này, vì vậy tôi khuyên bạn nên tải xuống các tệp nhị phân của nó hoặc cài đặt API từ NuGet để chuẩn bị môi trường.

Trích xuất hình ảnh từ tài liệu PDF trong C#

Tài liệu PDF để trích xuất hình ảnh

Bạn có thể dễ dàng truy xuất tất cả hình ảnh từ bất kỳ tài liệu PDF nào bằng cách thực hiện theo các bước đơn giản sau.

  1. Khởi tạo đối tượng lớp Parser với tài liệu nguồn.
  2. Gọi phương thức GetImages của lớp Parser để lấy tập hợp tất cả các hình ảnh trong đối tượng PageImageArea.
  3. Lặp lại PageImageArea để lấy mọi hình ảnh.
  4. Lưu hình ảnh trên đĩa bằng phương pháp Save của PageImageArea.

Hình ảnh được trích xuất có thể được lưu ở định dạng BMP, GIF, JPEG, PNG và WebP. Mã hoàn chỉnh được hiển thị bên dưới để minh họa toàn bộ các bước.

// Trích xuất hình ảnh từ Word, Excel, PPT, PDF trong C# bằng GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;
    // Lặp lại các hình ảnh đã truy xuất
    foreach (PageImageArea image in images)
    {
        // Lưu hình ảnh và in chỉ mục trang, hình chữ nhật và loại hình ảnh:
        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++;
    }
}
Trích xuất hình ảnh từ tài liệu bằng GroupDocs.Parser

Trích xuất hình ảnh từ tệp Word, Excel, PowerPoint trong C#

Không bị giới hạn chỉ ở định dạng PDF, chúng tôi có thể lấy ra tất cả hình ảnh từ tài liệu soạn thảo văn bản, bảng tính, bản trình bày với cơ sở mã không thay đổi. Chỉ cần thay đổi đường dẫn tài liệu nguồn bằng phần mở rộng tệp, tài liệu của bạn sẽ được phân tích cú pháp để trích xuất và lưu tất cả các hình ảnh vào đĩa.

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

Trích xuất hình ảnh từ trang tài liệu cụ thể trong C#

Nếu bạn muốn trích xuất hình ảnh từ một trang cụ thể của tài liệu, có thể thực hiện dễ dàng bằng cách sử dụng các bước được đề cập bên dưới và mã C#.

  • Nhận thông tin về tài liệu bằng phương pháp GetDocumentInfo.
  • Từ thông tin tài liệu, lấy ra tổng số Số trang và các thông tin khác.
  • Sử dụng phương thức GetImages(pageIndex) và chuyển chỉ mục trang mục tiêu của bạn cho nó.
  • Để lưu ảnh đã truy xuất, duyệt qua bộ sưu tập ảnh và lưu từng ảnh bằng phương pháp Save.
// Trích xuất hình ảnh từ trang cụ thể của Word, Excel, PowerPoint, PDF trong C# bằng GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    // Nhận thông tin tài liệu
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;

    // Lặp lại qua các trang
    for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
    {
        // In số trang 
        Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
        // Lặp lại các hình ảnh. Bỏ qua kiểm tra null trong ví dụ
        foreach (PageImageArea image in parser.GetImages(pageIndex))
        {
            // In một hình chữ nhật và loại hình ảnh
            Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
            image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
            imageNumber++;
        }
    }
}

Các định dạng được hỗ trợ để trích xuất hình ảnh trong C#

Sau đây là các định dạng tài liệu được API GroupDocs.Parser for .NET hỗ trợ để trích xuất hình ảnh.

Loại tài liệu Định dạng tệp
Soạn thảo văn bản DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Bảng tính XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, SỐ
Thuyết trình PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Tài Liệu Xách Tay PDF
Email EML, EMLX, bột ngọt
Lưu trữ ZIP

Tìm hiểu thêm về GroupDocs.Parser

Hãy nói chuyện thêm @ Diễn đàn hỗ trợ miễn phí

Những bài viết liên quan