チュートリアル

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

チュートリアル».NET»Spire.Presentation for .NET»透かし»C#:PowerPoint スライドに透かしを挿入する方法
2024-11-08

C#:PowerPoint スライドに透かしを挿入する方法

PowerPoint プレゼンテーションにテキストの透かしを追加することで、知的財産を保護し、文書の信頼性を確保する効果的な方法となります。Spire.Presentation for .NET を使用すると、プログラムを通じて PowerPoint スライドにテキストの透かしを柔軟に挿入できます。PowerPoint の標準機能と異なり、この方法では一括処理や透かしの位置や外観の正確な制御が可能で、さらに .NET アプリケーションへの統合も容易です。この記事では、C# で Spire.Presentation for .NET ライブラリを使用して PowerPoint プレゼンテーションにテキストの透かしを挿入する方法を説明します。

Spire.Presentation for .NET をインストールします

まず、Spire.Presentation for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Presentation

単一の透かしを PowerPoint スライドに挿入する

Spire.Presentation for .NET を利用することで、開発者はカスタムスタイルで透明なロック付きテキストボックスとして透かしを作成し、各ページに挿入することで PowerPoint プレゼンテーションに単一のテキスト透かしを追加できます。以下に手順を示します:

  • Presentation クラスのインスタンスを作成し、Presentation.LoadFromFile() メソッドで PowerPoint ファイルを読み込みます。
  • 透かしテキストを定義し、Font オブジェクトを作成してテキストのサイズを測定します。
  • Presentation.SlideSize.Size プロパティを使用してプレゼンテーション内のスライドのサイズを取得します。
  • テキストサイズとスライドサイズに基づき、RectangleF オブジェクトを作成します。
  • プレゼンテーション内のスライドをループ処理し、各スライドで以下を実行します:
    • ISlide.Shapes.AppendShape() メソッドを使用して、指定した位置に IAutoShape オブジェクトを作成します。
    • IAutoShape クラスのプロパティを用いてシェイプのスタイルを設定します。
    • IAutoShape.TextFrame.Text プロパティでシェイプに透かしテキストを追加します。
    • IAutoShape.TextFrame.TextRange プロパティを使い、透かしテキストを TextRange オブジェクトとして取得します。
    • TextRange クラスのプロパティを用いて透かしテキストの書式を設定します。
  • Presentation.SaveToFile() メソッドを使用してプレゼンテーションを保存します。
  • C#
using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Drawing;

namespace SingleTextWatermarkPowerPoint
{
    class Program
    {
        static void Main(string[] args)
        {
            // Presentationのインスタンスを作成
            Presentation presentation = new Presentation();

            // PowerPointファイルを読み込む
            presentation.LoadFromFile("Sample.pptx");

            // 透かし文字を定義し、フォントを作成
            string text = "透かしの例";
            // フォントオブジェクトを作成
            Font font = new Font("Yu Gothic UI", 50);
            // 透かし文字のサイズを測定
            Graphics graphics = Graphics.FromImage(new Bitmap(1, 1));
            SizeF size = graphics.MeasureString(text, font);

            // スライドサイズを取得
            SizeF slideSize = presentation.SlideSize.Size;

            // テキストサイズとページサイズに基づいて矩形を作成
            RectangleF rect = new RectangleF((slideSize.Width - size.Width) / 2, (slideSize.Height - size.Height) / 2, size.Width, size.Height);

            // プレゼンテーション内のスライドを反復処理
            foreach (ISlide slide in presentation.Slides)
            {
                // 各スライドに透かしの形を作成
                IAutoShape watermark = slide.Shapes.AppendShape(ShapeType.Rectangle, rect);
                // 透かしのスタイルを設定
                watermark.Fill.FillType = FillFormatType.None;
                watermark.ShapeStyle.LineColor.Color = Color.Empty;
                watermark.Rotation = -45;
                watermark.Locking.SelectionProtection = true;
                watermark.Line.FillType = FillFormatType.None;
                // 透かし文字を形に追加
                watermark.TextFrame.Text = text;
                // 透かし文字のスタイルを設定
                TextRange textRange = watermark.TextFrame.TextRange;
                textRange.Fill.FillType = FillFormatType.Solid;
                textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.HotPink);
                textRange.FontHeight = 50;
            }

            // プレゼンテーションを保存
            presentation.SaveToFile("output/PowerPointの単一のテキスト透かし.pptx", FileFormat.Auto);
            presentation.Dispose();
        }
    }
}

PowerPoint スライドに単一のテキスト透かし

繰り返しの透かしを PowerPoint スライドに挿入する

指定された間隔で同一のテキスト透かしを複数配置することで、スライドに繰り返しの透かしを挿入することも可能です。以下に手順を示します:

  • Presentation クラスのインスタンスを作成し、Presentation.LoadFromFile() メソッドで PowerPoint ファイルを読み込みます。
  • 透かしテキストを定義し、Font オブジェクトを作成してテキストのサイズを測定します。
  • Presentation.SlideSize.Size プロパティでプレゼンテーションのスライドサイズを取得します。
  • プレゼンテーション内のスライドをループ処理し、以下を実行します:
    • 開始位置と間隔を設定します。
    • 透かしシェイプとテキストを追加し、それらの書式を設定します。
    • 透かしの追加が完了したら、次の間隔に水平位置を移動します。
    • 各行の透かしの追加が完了したら、次の行に縦位置を移動します。
  • Presentation.SaveToFile() メソッドでプレゼンテーションを保存します。
  • C#
using Spire.Presentation.Drawing;
using Spire.Presentation;
using System.Drawing;

namespace RepeatedTextWatermarkPowerPoint
{
    class Program
    {
        static void Main(string[] args)
        {
            // Presentationのインスタンスを作成
            Presentation presentation = new Presentation();

            // PowerPointファイルを読み込む
            presentation.LoadFromFile("Sample.pptx");

            // 透かし文字を定義し、フォントを作成
            string text = "透かしの例";
            // フォントオブジェクトを作成
            Font font = new Font("Yu Gothic UI", 20);
            // 透かし文字のサイズを測定
            Graphics graphics = Graphics.FromImage(new Bitmap(1, 1));
            SizeF size = graphics.MeasureString(text, font);

            // スライドサイズを取得
            SizeF slideSize = presentation.SlideSize.Size;

            // プレゼンテーション内のスライドを反復処理
            foreach (ISlide slide in presentation.Slides)
            {
                float x = 30;
                float y = 80;
                for (int i = 0; i < 3; i++)
                {
                    for (int j = 0; j < 3; j++)
                    {
                        // 矩形を作成
                        RectangleF rect = new RectangleF(x, y, size.Width, size.Height);
                        IAutoShape watermark = slide.Shapes.AppendShape(ShapeType.Rectangle, rect);
                        // 透かしのスタイルを設定
                        watermark.Fill.FillType = FillFormatType.None;
                        watermark.ShapeStyle.LineColor.Color = Color.Empty;
                        watermark.Rotation = -45;
                        watermark.Locking.SelectionProtection = true;
                        watermark.Line.FillType = FillFormatType.None;
                        // 透かし文字を形に追加
                        watermark.TextFrame.Text = text;
                        // 透かし文字のスタイルを設定
                        TextRange textRange = watermark.TextFrame.TextRange;
                        textRange.Fill.FillType = FillFormatType.Solid;
                        textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.HotPink);
                        textRange.FontHeight = 20;
                        x += ((slideSize.Width - 60) / 3 + size.Width / 2);
                    }
                    x = 30;
                    y += ((slideSize.Height - 160) / 3 + size.Height / 2);
                }
            }

            // プレゼンテーションを保存
            presentation.SaveToFile("output/PowerPoint繰り返しテキスト透かし.pptx", FileFormat.Auto);
            presentation.Dispose();
        }
    }
}

 PowerPoint スライドに繰り返しテキスト透かし

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

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

Read 91 times