在 Word 文档中,分页符是重要的页面布局工具,可以帮助你在任意位置开始新页面。插入分页符后,前一页的所有格式都会应用于新页面,从而使得整个文档整洁有序。本文将介绍如何使用 Spire.Doc for C++ 通过程序实现在 Word 文档中添加或删除分页符。
安装 Spire.Doc for C++
有两种方法可以将 Spire.Doc for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。
如何将 Spire.Doc for C++ 集成到 C++ 程序中
在 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<Break*>(obj);
//删除分页符
p->GetChildObjects()->Remove(b);
}
}
}
//保存文档
document->SaveToFile(outputFile.c_str(), FileFormat::Docx2013);
document->Close();
delete document;
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。