在 word 文档中,分页符是重要的页面布局工具,可以帮助你在任意位置开始新页面。插入分页符后,前一页的所有格式都会应用于新页面,从而使得整个文档整洁有序。本文将介绍如何使用 spire.doc for c 通过程序实现在 word 文档中添加或删除分页符。
安装 spire.doc for c
有两种方法可以将 spire.doc for c 集成到您的应用程序中。一种方法是通过 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 nuget 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。
在 word 文档中的指定段落后插入分页符
spire.doc for c 提供的 paragraph->appendbreak(breaktype::pagebreak) 方法可用于在段落后插入分页符。插入分页符后,插入的位置将显示分页符提示。以下是在指定段落后插入分页符的详细操作步骤:
- 创建 document 的对象。
- 使用 document->loadfromfile() 方法载入 word 文档。
- 使用 document->getsections()->getitem(sectionindex) 方法获取指定节。
- 使用 section->getparagraphs()->getitem(paragraphindex) 方法获取指定段落。
- 使用 paragraph->appendbreak(breaktype::pagebreak) 方法在段落末尾添加分页符。
- 使用 document->savetofile() 方法保存文档。
- c
#include "spire.doc.o.h"
using namespace spire::doc;
int main() {
//指定输入和输出文件路径
std::wstring inputfile = l"c:/狼去哪儿了.docx";
std::wstring outputfile = l"output/段落后插入分页符.docx";
//创建document的对象
document* document = new document();
//载入word文档
document->loadfromfile(inputfile.c_str());
//获取第一节
section* section = document->getsections()->getitem(0);
//获取第一节的第三个段落
paragraph* paragraph = section->getparagraphs()->getitem(2);
//插入分页符到第三段末尾
paragraph->appendbreak(breaktype::pagebreak);
//保存文档
document->savetofile(outputfile.c_str(), fileformat::docx2013);
document->close();
delete document;
}
在 word 文档中的指定文本后插入分页符
除了在段落后插入分页符外,spire.doc for c 还允许查找指定文本并在该文本后添加分页符。以下是详细操作步骤:
- 创建 document 的对象。
- 使用 document->loadfromfile() 方法载入 word 文档。
- 使用 document->findstring() 方法查找指定文本。
- 使用 textselection->getasonerange() 获取查找到的文本的范围。
- 使用 textrange->getownerparagraph() 方法获取查找到的文本所在的段落。
- 使用 paragraph->getchildobjects()->indexof() 方法获取查找到的文本在段落中的位置参数。
- 创建 break 的对象以创建分页符。
- 使用 paragraph->getchildobjects()->insert() 方法将分页符插入到查找到的文本后。
- 使用 document->savetofile() 方法保存文档。
- c
#include "spire.doc.o.h"
using namespace spire::doc;
int main() {
//指定输入和输出文件路径
std::wstring inputfile = l"c:/狼去哪儿了.docx";
std::wstring outputfile = l"output/文本后插入分页符.docx";
//创建document的对象
document* document = new document();
//载入word文档
document->loadfromfile(inputfile.c_str());
//查找指定文本
textselection* selection = document->findstring(l"进化现象", true, true);
//获取查找到的文本的范围
textrange* range = selection->getasonerange();
//获取查找到的文本所在的段落
paragraph* paragraph = range->getownerparagraph();
//获取查找到的文本在段落中的位置参数
int index = paragraph->getchildobjects()->indexof(range);
//创建分页符
break* pagebreak = new break(document, breaktype::pagebreak);
//插入分页符到查找到的文本后
paragraph->getchildobjects()->insert(index 1, pagebreak);
//保存文档
document->savetofile(outputfile.c_str(), fileformat::docx2013);
document->close();
delete document;
}
移除 word 文档中的分页符
一些错误添加的分页符可能会使整个文档的结构变得混乱,因此很有必要将其删除以恢复文档结构。以下是详细操作步骤:
- 创建 document 的对象。
- 使用 document->loadfromfile() 方法载入 word 文档。
- 循环遍历文档第一节的所有段落,以及段落中的所有子对象。
- 判断子对象是否为分页符。如果是,则使用 paragraph->getchildobjects()->remove() 方法将其删除。
- 使用 document->savetofile() 方法保存文档。
- c
#include "spire.doc.o.h"
using namespace spire::doc;
int main() {
//指定输入和输出文件路径
std::wstring inputfile = l"output/段落后插入分页符.docx";
std::wstring outputfile = l"output/删除分页符.docx";
//创建document的对象
document* document = new document();
//载入word文档
document->loadfromfile(inputfile.c_str());
//循环遍历文档第一节的每所有段落
for (int j = 0; j < document->getsections()->getitem(0)->getparagraphs()->getcount(); j )
{
paragraph* p = document->getsections()->getitem(0)->getparagraphs()->getitem(j);
//循环遍历段落中的所有子对象
for (int i = 0; i < p->getchildobjects()->getcount(); i )
{
documentobject* obj = p->getchildobjects()->getitem(i);
//判断子对象是否为分页符
if (obj->getdocumentobjecttype() == documentobjecttype::break)
{
break* b = dynamic_cast(obj);
//删除分页符
p->getchildobjects()->remove(b);
}
}
}
//保存文档
document->savetofile(outputfile.c_str(), fileformat::docx2013);
document->close();
delete document;
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。