Trích xuất văn bản từ DOCX

Hầu hết dữ liệu được thể hiện dưới dạng văn bản trực quan trong tài liệu, hình ảnh và trên web nên việc trích xuất dữ liệu văn bản đôi khi là điều cần thiết nhất. Bạn có thể cần trích xuất văn bản hoặc hình ảnh từ tài liệu Word hoặc PDF. Là nhà phát triển C#, bạn có thể dễ dàng trích xuất văn bản từ tài liệu theo chương trình. Trong bài viết này, bạn sẽ tìm hiểu cách trích xuất văn bản từ tài liệu DOC hoặc DOCX bằng C#.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

API C# để trích xuất văn bản

Tôi sẽ sử dụng API GroupDocs.Parser for .NET để trích xuất văn bản từ tài liệu DOCX. Nó cho phép trích xuất văn bản, siêu dữ liệu và hình ảnh từ các tài liệu định dạng tệp được hỗ trợ như Word, PDF, Excel và Powerpoint. Nó cũng hỗ trợ trích xuất văn bản thô, được định dạng và có cấu trúc cũng như siêu dữ liệu từ các tệp có định dạng được hỗ trợ.

Bạn có thể tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

Install-Package GroupDocs.Parser

Trích xuất văn bản từ DOCX bằng C#

Bạn có thể dễ dàng phân tích cú pháp bất kỳ tài liệu nào và trích xuất văn bản bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

  • Tạo một thể hiện của lớp Parser
  • Chỉ định đường dẫn tập tin
  • Gọi phương thức GetText của lớp Parser để trích xuất văn bản
  • Nhận kết quả trong đối tượng lớp TextReader
  • Hiển thị kết quả bằng cách gọi phương thức ReadToEnd của lớp TextReader

Mẫu mã sau đây cho biết cách trích xuất văn bản từ tệp DOCX bằng C#.

// Tạo một thể hiện của lớp Parser
Parser parser = new Parser(@"C:\Files\sample.docx");

// Trích xuất văn bản vào trình đọc
using (TextReader reader = parser.GetText())
{
    // In văn bản từ tài liệu
    // Nếu trích xuất văn bản không được hỗ trợ thì trình đọc sẽ không có giá trị
    Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
}
Trích xuất văn bản từ DOCX bằng C#

Trích xuất văn bản từ DOCX bằng C#

Lớp Parser là lớp chính cung cấp chức năng phân tích cú pháp và trích xuất văn bản và hình ảnh. Tôi đã chỉ định đường dẫn tệp đầu vào trong hàm tạo của lớp này.

Phương thức GetText() của lớp Parser trích xuất văn bản từ tài liệu đã chỉ định.

Nhận văn bản được định dạng từ DOCX bằng C#

Bạn có thể dễ dàng phân tích tài liệu Word và trích xuất văn bản mà không làm mất định dạng kiểu bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

Mẫu mã sau đây cho biết cách trích xuất văn bản có định dạng từ tệp DOCX bằng C#.

// Tạo một thể hiện của lớp Parser
Parser parser = new Parser(@"C:\Files\sample.docx");

// Trích xuất văn bản đã định dạng vào trình đọc
using (TextReader reader = parser.GetFormattedText(new FormattedTextOptions(FormattedTextMode.Html)))
{
    // In văn bản được định dạng từ tài liệu
    // Nếu trích xuất văn bản có định dạng không được hỗ trợ thì trình đọc sẽ không có giá trị
    Console.WriteLine(reader == null ? "Formatted text extraction isn't suppported" : reader.ReadToEnd());
}
Trích xuất văn bản được định dạng từ DOCX bằng C#

Trích xuất văn bản được định dạng từ DOCX bằng C#

Lớp FormattedTextOptions cung cấp các tùy chọn được sử dụng để trích xuất văn bản được định dạng, chẳng hạn như trích xuất Chế độ. Tôi đặt chế độ trích xuất thành HTML để trích xuất văn bản tài liệu dưới dạng HTML .

Phương thức GetFormattedText() của lớp Parser trích xuất một văn bản được định dạng từ tài liệu đã chỉ định.

Trích xuất văn bản được định dạng từ các trang bằng C#

Bạn có thể dễ dàng phân tích tài liệu Word và trích xuất văn bản được định dạng từ một trang cụ thể của tài liệu bằng cách thực hiện theo các bước đơn giản được đề cập bên dưới:

Mẫu mã sau đây cho thấy cách trích xuất văn bản có định dạng từ từng trang một bằng C#.

// Tạo một thể hiện của lớp Parser
using (Parser parser = new Parser(@"C:\Files\sample.docx"))
{
    // Kiểm tra xem tài liệu có hỗ trợ trích xuất văn bản có định dạng không
    if (!parser.Features.FormattedText)
    {
        Console.WriteLine("Document isn't supports formatted text extraction.");
        return;
    }

    // Nhận thông tin tài liệu
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    // Kiểm tra xem tài liệu có trang không
    if (documentInfo.PageCount == 0)
    {
        Console.WriteLine("Document hasn't pages.");
        return;
    }

    // Lặp lại qua các trang
   for (int p = 0; p < documentInfo.PageCount; p++)
    {
        // In số trang 
        Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
        // Trích xuất văn bản đã định dạng vào trình đọc
        using (TextReader reader = parser.GetFormattedText(p, new FormattedTextOptions(FormattedTextMode.Html)))
        {
            // In văn bản được định dạng từ tài liệu
            // Chúng tôi bỏ qua việc kiểm tra null vì chúng tôi đã kiểm tra hỗ trợ tính năng trích xuất văn bản được định dạng trước đó
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
Trích xuất văn bản được định dạng từ các trang bằng C#

Trích xuất văn bản được định dạng từ các trang bằng C#

Lớp Trình phân tích cú pháp cung cấp thuộc tính Tính năng đại diện cho lớp Tính năng. Nó có thể được sử dụng để kiểm tra xem một tính năng có được hỗ trợ cho tài liệu hay không. Bạn có thể đọc thêm về các tính năng được hỗ trợ trong phần “Nhận các tính năng được hỗ trợ".

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không bị giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã học cách trích xuất văn bản từ tài liệu Word bằng C#. Bạn có thể tìm hiểu thêm về GroupDocs.Parser cho .NET API bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm