彩票走势图

Word开发工具Aspose.Words功能演示:使用C ++分割MS Word文档

翻译|使用教程|编辑:李显亮|2021-03-04 10:24:41.687|阅读 221 次

概述:MS Word是用于存储和共享信息的流行格式。在某些情况下,想将Word文档拆分为多个文件。在本文中,将学习 如何使用C ++拆分MS Word文档。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

MS Word是用于存储和共享信息的流行格式。在某些情况下,想将Word文档拆分为多个文件。例如,文档可能包含需要与不同人员共享的不同部分,或者包含一些需要分开的机密信息。在这种情况下,拆分Word文档被证明是有帮助的。在本文中,将学习 如何使用C ++拆分MS Word文档。

  • 使用C ++按页面拆分Word文档
  • 使用页面范围分割Word文档
  • 使用C ++按部分拆分Word文档

Aspose.Words for C ++是本机C ++库,允许您生成,更改和转换Microsoft Word文档。此外,它还支持将Word文档拆分为多个文件。

如果你还没有用过C ++版Aspose.Words可以点击这里下载最新版测试。

整合所有格式的Aspose.Total永久授权正在火热促销中,立马1分钟了解全部咨询!

使用C ++按页面拆分Word文档

以下是使用C ++拆分Word文件的步骤。

  • 使用Document类加载Word文档 。
  • 创建DocumentPageSplitter 类的实例, 并使用上一步中创建的Document对象对其进行初始化。
  • 循环浏览文档的页面。
  • 使用DocumentPageSplitter.GetDocumentOfPage(int32_t PageIndex)方法提取每个页面。
  • 使用Document-> Save(System :: String fileName)方法保存文档。

以下是用于按页面拆分Word文档的示例代码。

// Sample Word document
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Load the Word document
System::SharedPtrdocument = System::MakeObject(sampleFile);

// Create and initialize document page splitter
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Output file path
System::String outputPath = u"OutputDirectory\\";

// Save each page as a separate document
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(int32_t pageIndex,int32_t pageIndex)方法检索所需范围内的页面。
  • 最后,使用Document-> Save(System :: String fileName)方法保存Word文档。

以下是用于使用页面范围拆分Word文档的示例代码。

// Sample Word document
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Load the Word document
System::SharedPtrdocument = System::MakeObject(sampleFile);

// Create and initialize document page splitter
DocumentPageSplitter splitter = DocumentPageSplitter(document);

// Get the page range
auto pageDoc = splitter.GetDocumentOfPageRange(2, 3);

// Output file path
System::String outputPath = u"OutputDirectory\\";

// Save as DOCX file
pageDoc->Save(outputPath + u"SplitDocumentByPageRangeOut.docx");

使用C ++按部分拆分Word文档

Word文件可以包含一个或多个部分,这些部分可能具有不同的格式,并且可以由任意数量的页面组成。要在Word文件中添加新部分,请使用Layout> Breaks> Section Breaks选项。以下是使用Aspose.Words for C ++ API按部分拆分Word文件的步骤。

  • 使用Document类加载Word文件 。
  • 使用Document-> get_Sections()方法检索文档的各个部分并对其进行迭代。
  • 使用Document-> get_Sections()-> idx_get(int32_t index)-> Clone()方法将节克隆为Section对象。
  • 使用Document类创建一个新的Word文档。
  • 使用Document-> get_Sections()-> Add(系统:: SharedPtr节点)方法将克隆的部分添加到新创建的Word文档中。
  • 最后,使用Document-> Save(System :: String fileName)方法保存Word文件。

下面是示例代码,用于按部分拆分Word文档。

// Sample Word document
System::String sampleFile = u"SourceDirectory\\Sample 3.docx";

// Load the Word document
System::SharedPtrdocument = System::MakeObject(sampleFile);

// Output file path
System::String outputPath = u"OutputDirectory\\";

for (int i = 0; i < document->get_Sections()->get_Count(); i++)
{
    // Split a document into smaller parts, in this instance split by section
    auto section = document->get_Sections()->idx_get(i)->Clone();

    // Create a new document
    auto newDoc = System::MakeObject();
    newDoc->get_Sections()->Clear();

    //Add new section to the newly created document
    auto newSection = System::StaticCast(newDoc->ImportNode(section, true));
    newDoc->get_Sections()->Add(newSection);

    // Save each section as a separate document
    newDoc->Save(outputPath + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx");
}

还想要更多吗?您可以点击阅读【2020 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP