チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»C++»Spire.Doc for C++»ページ設定»C++:Word ドキュメントに改ページを挿入、削除する方法
2023-03-20

C++:Word ドキュメントに改ページを挿入、削除する方法

Word ドキュメントの改ページは、ページレイアウトの重要な機能で、好きな場所で新しいページを開始するのに役立ちます。改ページを挿入すると、前のページのすべての書式が新しいページに適用され、ドキュメント全体がすっきりと整理されます。この記事では、Spire.Doc for C++ を使用して、プログラムで 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;
}

C++:Word ドキュメントに改ページを挿入、削除する方法

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;
}

C++:Word ドキュメントに改ページを挿入、削除する方法

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;
}

C++:Word ドキュメントに改ページを挿入、削除する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 655 times