Tách tài liệu Word C ++

MS Word là một định dạng phổ biến để lưu trữ và chia sẻ thông tin. Có thể có tình huống bạn muốn chia tài liệu Word thành nhiều tệp. Ví dụ, một tài liệu có thể chứa các phần khác nhau cần được chia sẻ với những người khác nhau hoặc chứa một số thông tin bí mật cần được tách biệt. Trong những trường hợp như vậy, việc chia nhỏ tài liệu Word tỏ ra hữu ích. Trong bài này, bạn sẽ học cách chia nhỏ tài liệu MS Word bằng C ++.

API C ++ để tách tài liệu Word

Aspose.Words for C ++ là một thư viện C ++ gốc cho phép bạn tạo, thay đổi và chuyển đổi các tài liệu Microsoft Word. Ngoài ra, nó còn hỗ trợ chia nhỏ tài liệu Word thành nhiều tập tin. Bạn có thể cài đặt API thông qua NuGet hoặc tải xuống trực tiếp từ phần Tải xuống.

PM> Install-Package Aspose.Words.Cpp

Chia tài liệu Word theo trang bằng C ++

Sau đây là các bước chia nhỏ tệp Word bằng C ++.

  • Tải tài liệu Word bằng lớp Tài liệu.
  • Tạo một thể hiện của lớp DocumentPageSplitter và khởi tạo nó bằng đối tượng Document đã tạo ở bước trước.
  • Lặp lại các trang của Tài liệu.
  • Giải nén từng trang bằng phương thức DocumentPageSplitter.GetDocumentOfPage (int32t PageIndex).
  • Lưu tài liệu bằng phương thức Document-> Save (System :: String fileName).

Sau đây là mã mẫu để chia tài liệu Word theo từng trang.

// Tài liệu Word mẫu
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Tải tài liệu Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Tạo và khởi tạo bộ chia trang tài liệu
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Đường dẫn tệp đầu ra
System::String outputPath = u"OutputDirectory\\";

// Lưu từng trang thành một tài liệu riêng biệt
for (int page = 1; page <= document->get_PageCount(); page++)
{
    auto pageDoc = splitter.GetDocumentOfPage(page);
    pageDoc->Save(outputPath + u"SplitDocumentPageByPageOut_" + System::Convert::ToString(page) + u".docx");
}

Sử dụng Phạm vi trang để tách tài liệu Word

Thay vì tách từng trang, bạn cũng có thể chia tài liệu Word bằng cách cung cấp một phạm vi trang. Sau đây là các bước để chia tài liệu Word bằng phạm vi trang.

  • Đầu tiên, tải tài liệu Word bằng lớp Document.
  • Tạo một thể hiện của lớp DocumentPageSplitter và khởi tạo nó bằng đối tượng Tài liệu của bước trước.
  • Truy xuất các trang trong phạm vi được yêu cầu bằng phương thức DocumentPageSplitter.GetDocumentOfPageRange (int32t pageIndex, int32t pageIndex).
  • Cuối cùng, lưu tài liệu Word bằng phương pháp Document-> Save (System :: String fileName).

Sau đây là mã mẫu để tách tài liệu Word bằng phạm vi trang.

// Tài liệu Word mẫu
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Tải tài liệu Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Tạo và khởi tạo bộ chia trang tài liệu
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Nhận phạm vi trang
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);

// Đường dẫn tệp đầu ra
System::String outputPath = u"OutputDirectory\\";

// Lưu dưới dạng tệp DOCX
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");

Chia tài liệu Word theo từng phần bằng C ++

Tệp Word có thể chứa một hoặc nhiều phần có thể có định dạng khác nhau và có thể bao gồm bất kỳ số lượng trang nào. Để thêm một phần mới trong tệp Word, hãy sử dụng tùy chọn Bố cục> Ngắt> Ngắt Phần. Sau đây là các bước để chia tệp Word theo các phần bằng cách sử dụng API Aspose.Words cho C ++.

Sau đây là mã mẫu để chia tài liệu Word theo từng phần.

// Tài liệu Word mẫu
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Tải tài liệu Word
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);

// Đường dẫn tệp đầu ra
System::String outputPath = u"OutputDirectory\\";

for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
    // Chia tài liệu thành các phần nhỏ hơn, trong trường hợp này là chia theo phần
    auto section = document->get_Sections()->idx_get(i)->Clone();

    // Tạo một tài liệu mới
    auto newDoc = System::MakeObject<Aspose::Words::Document>();
    newDoc->get_Sections()->Clear();

    //Thêm phần mới vào tài liệu mới tạo
    auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
    newDoc->get_Sections()->Add(newSection);

    // Lưu từng phần thành một tài liệu riêng biệt
    newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}

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

Bạn có thể dùng thử API mà không có 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í.

Sự kết luận

Trong bài này, bạn đã biết cách chia tài liệu Word thành nhiều tệp bằng C ++. Bạn đã học cách sử dụng API Aspose.Words cho C ++ để chia tài liệu word theo trang, phạm vi trang và phần. Bạn có thể khám phá API chi tiết bằng cách sử dụng tài liệu chính thức. Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm