Trích xuất văn bản từ tài liệu MS Word trong C#

Tài liệu Microsoft Word được sử dụng rộng rãi để tạo và chia sẻ nội dung văn bản. Nếu bạn đang làm việc với các tài liệu Word trong các ứng dụng C#, bạn có thể cần trích xuất văn bản từ tài liệu Word bằng C# ASP.NET và trích xuất văn bản giữ nguyên định dạng. Ví dụ, bạn có thể muốn phân tích văn bản, trích xuất các phần cụ thể của tài liệu hoặc kết hợp chúng thành một tài liệu duy nhất. Trong bài viết này, chúng ta sẽ khám phá cách trích xuất văn bản từ tài liệu Word trong C# bằng thư viện C# tốt nhất cho việc trích xuất văn bản từ tài liệu Word.

Thư viện C# để trích xuất văn bản từ tài liệu Word

Aspose.Words for .NET là một thư viện phong phú tính năng và dễ sử dụng để làm việc với các tài liệu Word. Nó cung cấp một loạt các khả năng, bao gồm trích xuất văn bản tài liệu Word .NET, tạo tài liệu, thao tác và chuyển đổi. Với Aspose.Words for .NET, bạn có thể xử lý nhiều khía cạnh của các tài liệu Word, biến nó thành một công cụ giá trị cho các nhà phát triển đang tìm kiếm trích xuất văn bản Word C# hiệu quả.

Bạn có thể tải xuống DLL hoặc cài đặt thư viện trực tiếp từ NuGet thông qua bảng điều khiển quản lý gói.

PM> Install-Package Aspose.Words

Trích xuất văn bản từ tài liệu Word

Một tài liệu MS Word bao gồm nhiều phần tử như đoạn văn, bảng, hình ảnh, v.v. Do đó, yêu cầu trích xuất văn bản có thể khác nhau giữa các tình huống khác nhau. Ví dụ, bạn có thể cần trích xuất văn bản từ tài liệu Word quét C# hoặc trích xuất văn bản từ tệp Word C# .NET. Mỗi loại phần tử trong một tài liệu Word được biểu diễn dưới dạng một nút. Do đó, để xử lý một tài liệu, bạn sẽ phải tương tác với các nút. Hãy bắt đầu và xem cách trích xuất văn bản từ tài liệu Word trong các tình huống khác nhau trong khi đảm bảo rằng chúng tôi xử lý định dạng văn bản khi trích xuất văn bản C# một cách hiệu quả.

Trích xuất văn bản từ một tài liệu DOC trong C#

Trong phần này, chúng ta sẽ thực hiện một trình trích xuất văn bản C# cho các tài liệu Word, và quy trình trích xuất văn bản sẽ như sau:

  • Đầu tiên, chúng ta sẽ xác định các nút mà chúng ta muốn bao gồm trong quy trình trích xuất văn bản.
  • Sau đó, chúng ta sẽ trích xuất nội dung giữa các nút đã chỉ định (bao gồm hoặc loại trừ các nút bắt đầu và kết thúc).
  • Cuối cùng, chúng tôi sẽ sử dụng một bản sao của các nút đã trích xuất, ví dụ, để tạo một tài liệu Word mới có nội dung đã trích xuất.

Bây giờ hãy viết một phương thức có tên ExtractContent mà chúng ta sẽ chuyển các nút và một số tham số khác để thực hiện việc trích xuất văn bản. Phương thức này sẽ phân tích tài liệu và sao chép các nút. Những tham số sau đây là những gì chúng ta sẽ truyền cho phương thức này:

  1. StartNodeEndNode là điểm bắt đầu và kết thúc cho việc trích xuất nội dung, tương ứng. Đây có thể là cả nút mức khối (Paragraph, Table) hoặc nút mức dòng (ví dụ, Run, FieldStart, BookmarkStart, v.v.).
    1. Để truyền một trường, bạn nên chuyển đối tượng FieldStart tương ứng.
    2. Để truyền đánh dấu, các nút BookmarkStartBookmarkEnd nên được chuyển.
    3. Đối với nhận xét, các nút CommentRangeStartCommentRangeEnd nên được sử dụng.
  2. IsInclusive xác định xem các dấu hiệu có được bao gồm trong việc trích xuất hay không. Nếu tùy chọn này được thiết lập thành false và cùng một nút hoặc các nút liên tiếp được truyền, thì một danh sách rỗng sẽ được trả về.

Dưới đây là triển khai hoàn chỉnh của phương thức ExtractContent mà trích xuất nội dung giữa các nút đã được truyền, chính xác trích xuất văn bản từ tài liệu Word được bảo vệ C#.

Một số phương thức trợ giúp cũng cần thiết cho phương thức ExtractContent để thực hiện hoạt động trích xuất văn bản, được cho dưới đây.

Bây giờ chúng ta đã sẵn sàng để sử dụng những phương thức này và trích xuất văn bản từ tài liệu Word bằng C#.

Trích xuất văn bản giữa các đoạn trong tài liệu Word

Hãy xem cách trích xuất nội dung giữa hai đoạn trong một tài liệu DOCX. Các bước sau đây thực hiện hoạt động này trong C#.

  • Đầu tiên, tải tài liệu Word sử dụng lớp Document.
  • Lấy tham chiếu đến các đoạn bắt đầu và kết thúc vào hai đối tượng sử dụng phương thức Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  • Gọi phương thức ExtractContent(startPara, endPara, true) để trích xuất các nút vào một đối tượng.
  • Gọi phương thức trợ giúp GenerateDocument(Document, extractedNodes) để tạo một tài liệu có nội dung đã trích xuất.
  • Cuối cùng, lưu tài liệu đã trả về bằng phương thức Document.Save(string).

Mẫu mã sau đây cho thấy cách trích xuất văn bản hiệu quả từ các tệp Word lớn bằng cách trích xuất văn bản giữa các đoạn thứ 7 và thứ 11 trong một tài liệu Word trong C#.

Trích xuất văn bản giữa các loại nút khác nhau

Bạn cũng có thể trích xuất nội dung giữa các loại nút khác nhau. Để minh họa, hãy trích xuất nội dung giữa một đoạn và một bảng và lưu nó vào một tài liệu Word mới. Các bước sau đây thực hiện hoạt động này.

  • Tải tài liệu Word bằng lớp Document.
  • Lấy tham chiếu đến các nút bắt đầu và kết thúc vào hai đối tượng sử dụng phương thức Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  • Gọi phương thức ExtractContent(startPara, endPara, true) để trích xuất các nút vào một đối tượng.
  • Gọi phương thức trợ giúp GenerateDocument(Document, extractedNodes) để tạo một tài liệu có nội dung đã trích xuất.
  • Lưu tài liệu đã trả về bằng phương thức Document.Save(string).

Mẫu mã sau đây cho thấy cách trích xuất văn bản giữa một đoạn và một bảng trong C#.

Trích xuất văn bản giữa các đoạn dựa trên kiểu

Bây giờ hãy cùng kiểm tra cách trích xuất nội dung giữa các đoạn dựa trên kiểu. Để minh họa, chúng ta sẽ trích xuất nội dung giữa “Heading 1” đầu tiên và “Heading 3” đầu tiên trong tài liệu Word. Các bước sau đây minh họa cách thực hiện điều này trong C#.

  • Đầu tiên, tải tài liệu Word sử dụng lớp Document.
  • Sau đó, trích xuất các đoạn vào một đối tượng bằng phương thức trợ giúp ParagraphsByStyleName(Document, “Heading 1”).
  • Trích xuất các đoạn vào một đối tượng khác bằng phương thức trợ giúp ParagraphsByStyleName(Document, “Heading 3”).
  • Gọi phương thức ExtractContent(startPara, endPara, true) và truyền các phần tử đầu tiên trong cả hai mảng đoạn làm tham số đầu tiên và thứ hai.
  • Gọi phương thức trợ giúp GenerateDocument(Document, extractedNodes) để tạo một tài liệu có nội dung đã trích xuất.
  • Cuối cùng, lưu tài liệu đã trả về bằng phương thức Document.Save(string).

Mẫu mã sau đây cho thấy cách trích xuất nội dung giữa các đoạn dựa trên kiểu.

Tìm hiểu thêm về Trích xuất văn bản

Bạn có thể khám phá các kịch bản khác của API .NET cho việc trích xuất văn bản tài liệu Word bằng cách sử dụng bài viết tài liệu này.

Nhận thư viện Trích xuất văn bản Word miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để trích xuất văn bản mà không bị giới hạn về đánh giá.

Kết luận

Aspose.Words for .NET là một thư viện đa năng giúp đơn giản hóa quá trình C# trích xuất văn bản từ Word giữ nguyên định dạng. Với các tính năng phong phú và API dễ sử dụng, bạn có thể làm việc hiệu quả với các tài liệu Word và tự động hóa nhiều tình huống của việc xử lý ký tự đặc biệt trong quá trình trích xuất văn bản C#. Cho dù bạn đang xây dựng các ứng dụng cần xử lý tài liệu Word hoặc chỉ đơn thuần trích xuất văn bản, Aspose.Words for .NET là một công cụ quý giá cho các nhà phát triển.

Bạn có thể khám phá các tính năng khác của Aspose.Words for .NET qua tài liệu. Nếu bạn có bất kỳ câu hỏi nào, hãy cho chúng tôi biết qua diễn đàn.

Xem thêm

Mẹo: Bạn có thể muốn kiểm tra trình chuyển đổi Aspose PowerPoint để Word vì nó minh họa quy trình chuyển đổi từ bài thuyết trình sang tài liệu Word phổ biến.