Word ドキュメントの改ページは、ページレイアウトの重要な機能で、好きな場所で新しいページを開始するのに役立ちます。改ページを挿入すると、前のページのすべての書式が新しいページに適用され、ドキュメント全体がすっきりと整理されます。この記事では、Spire.Doc for C++ を使用して、プログラムで Word ドキュメントに改ページを追加または削除する方法について説明します。 Word ドキュメントで特定の段落の後に改ページを挿入する Word ドキュメントで特定のテキストの後に改ページを挿入する Word ドキュメントから改ページを削除する Spire.Doc for C++ をインストールします Spire.Doc for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。 Spire.Doc for C++ を C++ アプリケーションに統合する方法 Word ドキュメントで特定の段落の後に改ページを挿入する Spire.Doc for C++ では、段落の後に改ページを挿入する Paragraph->AppendBreak(BreakType::PageBreak) メソッドを提供しています。改ページが挿入されると、改ページを示す記号が表示されます。以下は、Word ドキュメントで特定の段落の後に改ページを挿入するための詳細な手順である。 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); //セクションの3つ目の段落を取得する 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 ドキュメントから改ページを削除する 誤って追加された改ページがあると、文書全体の構造が乱れてしまうので、それを削除することはかなり必要です。以下は、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()); //1つ目のセクションの各段落をループする 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; } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。