0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C++ で Word 文書に背景色または背景画像を追加する方法

0
Posted at

Word 文書の背景を設定することは、文書の視覚的な印象を変える手段の一つです。単色の背景色やグラデーション、画像を用いることで、文書の目的や用途に応じた見た目に調整できます。プレゼンテーション資料や報告書など、見栄えが重視される場面で利用されることがあります。

本記事では、Spire.Doc for C++ を使用して、C++ で Word 文書に背景色、グラデーション背景、背景画像を追加する方法を紹介します。Spire.Doc for C++ は、Microsoft Office に依存せず Word 文書の読み込み、編集、保存を行える C++ ライブラリです。

環境構築

Spire.Doc for C++ をプロジェクトに導入する方法は主に2つあります。

  1. NuGet 経由でのインストール: Visual Studio の「NuGet パッケージの管理」から spire.doc.cpp を検索してインストールします。
  2. 手動での追加: パッケージをダウンロードし、ヘッダーファイルとライブラリファイルをプロジェクトに手動で追加します。

導入後、以下のようにヘッダーファイルをインクルードして使用します。

#include "Spire.Doc.o.h"

文書に背景色を追加する

文書に単色の背景色を設定する手順は以下の通りです。

  1. Document クラスのインスタンスを生成し、LoadFromFile() で文書を読み込む
  2. GetBackground() で文書の背景オブジェクトを取得する
  3. SetType(BackgroundType::Color) で背景タイプを「色」に設定する
  4. SetColor() で背景色を指定する
  5. SaveToFile() で文書を保存する
#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main()
{
    // Document インスタンスを生成し、Word 文書を読み込み
    intrusive_ptr<Document> document = new Document();
    document->LoadFromFile(L"Sample.docx");

    // 文書の背景を取得
    intrusive_ptr<Background> background = document->GetBackground();
    
    // 背景タイプを「色」に設定
    background->SetType(BackgroundType::Color);
    
    // 背景色を設定(例:アリスブルー)
    background->SetColor(Color::GetAliceBlue());

    // 結果を保存
    document->SaveToFile(L"AddBackgroundColor.docx", FileFormat::Docx2013);
    document->Close();
}

SetColor メソッドには Color::GetAliceBlue()Color::GetLightGray() など、あらかじめ定義された色定数を指定できます。また、以下のように Color::FromArgb() を使用してRGB値で任意の色を指定することも可能です。

// RGB値でカスタムカラーを指定(例:薄いオレンジ)
background->SetColor(Color::FromArgb(255, 240, 200));

文書にグラデーション背景を追加する

グラデーション背景を設定するには、背景タイプを Gradient に設定し、開始色と終了色の2色を指定します。

#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main()
{
    intrusive_ptr<Document> document = new Document();
    document->LoadFromFile(L"Sample.docx");

    // 背景を取得
    intrusive_ptr<Background> background = document->GetBackground();
    
    // 背景タイプを「グラデーション」に設定
    background->SetType(BackgroundType::Gradient);

    // グラデーションの2色を指定
    background->GetGradient()->SetColor1(Color::GetWhite());
    background->GetGradient()->SetColor2(Color::GetLightBlue());

    document->SaveToFile(L"AddGradientBackground.docx", FileFormat::Docx2013);
    document->Close();
}

この設定により、指定した2色間のグラデーションが文書の背景に適用されます。

文書に背景画像を追加する

背景画像を設定するには、背景タイプを Picture に設定し、画像ファイルを読み込みます。

#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main()
{
    intrusive_ptr<Document> document = new Document();
    document->LoadFromFile(L"Sample.docx");

    // 背景を取得
    intrusive_ptr<Background> background = document->GetBackground();
    
    // 背景タイプを「画像」に設定
    background->SetType(BackgroundType::Picture);

    // 背景画像を読み込み
    background->SetPicture(L"background.jpg");

    document->SaveToFile(L"AddPictureBackground.docx", FileFormat::Docx2013);
    document->Close();
}

SetPicture メソッドには、画像ファイルのパスを指定します。JPEG、PNG、BMP などの一般的な画像形式が使用できます。画像は文書全体の背景として配置され、文書のサイズに合わせて自動的に拡大・縮小されます。

注意点

  • Word 文書の背景は、通常「印刷レイアウト」表示モードでのみ表示されます。「下書き」モードなどでは表示されない点に注意してください。
  • 背景色や背景画像は文書のファイルサイズに影響を与える場合があります。特に高解像度の画像を使用するとファイルサイズが大きくなることがあります。
  • 本ライブラリは Microsoft Office のインストールを必要としませんが、商用利用の場合はライセンスが必要です。利用前にライセンス条項を確認してください。
  • 背景設定は文書全体に適用されます。特定のセクションやページのみに背景を設定したい場合は、セクションごとの設定を検討する必要があります。

おわりに

本記事では、Spire.Doc for C++ を用いて Word 文書に背景を追加する方法として、単色の背景色、グラデーション背景、背景画像の3つの設定方法を紹介しました。いずれも Document クラスの GetBackground() から背景オブジェクトを取得し、SetType で背景の種類を指定した上で色や画像を設定する流れで実装できます。文書の見た目をプログラムから調整したい場合に、一つの手段として参考にしてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?