MS Word 是一种用于存储和共享信息的流行格式。在某些情况下,您可能希望将 Word 文档拆分为多个文件。例如,一个文档可能包含需要与不同人共享的不同部分,或者包含一些需要分离的机密信息。在这种情况下,拆分 Word 文档被证明是有帮助的。在本文中,您将学习如何使用 C++ 拆分 MS Word 文档。
用于拆分 Word 文档的 C++ API
Aspose.Words for C++ 是一个原生 C++ 库,允许您生成、更改和转换 Microsoft Word 文档。此外,它还支持将 Word 文档拆分为多个文件。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.Words.Cpp
使用 C++ 按页面拆分 Word 文档
以下是使用 C++ 拆分 Word 文件的步骤。
- 使用 Document 类加载 Word 文档。
- 创建 DocumentPageSplitter 类的实例,并使用上一步中创建的 Document 对象对其进行初始化。
- 循环浏览 Document 的页面。
- 使用 DocumentPageSplitter.GetDocumentOfPage(int32t PageIndex) 方法提取每个页面。
- 使用 Document->Save (System::String fileName) 方法保存文档。
以下是按页拆分 Word 文档的示例代码。
// 示例 Word 文档
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// 加载 Word 文档
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// 创建和初始化文档页面拆分器
DocumentPageSplitter splitter = DocumentPageSplitter(document);
// 输出文件路径
System::String outputPath = u"OutputDirectory\\";
// 将每个页面保存为单独的文档
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");
}
使用页面范围拆分 Word 文档
除了分隔每一页,您还可以通过提供页面范围来拆分 Word 文档。以下是使用页面范围拆分 Word 文档的步骤。
- 首先,使用 Document 类加载 Word 文档。
- 创建 DocumentPageSplitter 类的实例,并使用上一步的 Document 对象对其进行初始化。
- 使用 DocumentPageSplitter.GetDocumentOfPageRange(int32t pageIndex, int32t pageIndex) 方法检索所需范围内的页面。
- 最后,使用 Document->Save (System::String fileName) 方法保存 Word 文档。
以下是使用页面范围拆分 Word 文档的示例代码。
// 示例 Word 文档
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// 加载 Word 文档
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// 创建和初始化文档页面拆分器
DocumentPageSplitter splitter = DocumentPageSplitter(document);
// 获取页面范围
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);
// 输出文件路径
System::String outputPath = u"OutputDirectory\\";
// 另存为 DOCX 文件
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");
使用 C++ 按部分拆分 Word 文档
Word 文件可以包含一个或多个部分,这些部分可能具有不同的格式,并且可能包含任意数量的页面。要在 Word 文件中添加新部分,请使用布局>中断>分节选项。以下是使用 Aspose.Words for C++ API 按部分拆分 Word 文件的步骤。
- 使用 Document 类加载 Word 文件。
- 使用 Document->getSections() 方法检索文档的各个部分并对其进行迭代。
- 使用 Document->getSections()->idxget(int32t index)->Clone() 方法将该部分克隆为 Section 对象。
- 使用 Document 类创建一个新的 Word 文档。
- 使用 Document->getSections()->Add (System::SharedPtr) 将克隆的部分添加到新创建的 Word 文档中Aspose::Words::Node节点) 方法。
- 最后,使用 Document->Save (System::String fileName) 方法保存 Word 文件。
以下是按部分拆分 Word 文档的示例代码。
// 示例 Word 文档
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";
// 加载 Word 文档
System::SharedPtr<Aspose::Words::Document> document = System::MakeObject<Aspose::Words::Document>(sampleFile);
// 输出文件路径
System::String outputPath = u"OutputDirectory\\";
for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
// 将文档拆分成更小的部分,在这种情况下按部分拆分
auto section = document->get_Sections()->idx_get(i)->Clone();
// 创建一个新文档
auto newDoc = System::MakeObject<Aspose::Words::Document>();
newDoc->get_Sections()->Clear();
//将新部分添加到新创建的文档
auto newSection = System::StaticCast<Aspose::Words::Section>(newDoc->ImportNode(section, true));
newDoc->get_Sections()->Add(newSection);
// 将每个部分保存为单独的文档
newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 将 Word 文档拆分为多个文件。您已经学习了如何使用 Aspose.Words for C++ API 按页面、页面范围和部分拆分 word 文档。您可以使用 官方文档 详细探索 API。如果您有任何问题,请随时在 论坛 上与我们联系。