C#/VB.NET Word に透かしを追加する方法

Wordに透かしを追加することで、ドキュメントの著作権を保護できます。以前に Free Spire.Doc for .NET を使用して、Word に透かしを追加したことがあります。結果文書の効果は良いと思います。このライブラリは、Wordにテキスの透かしと画像の透かしを追加することをサポートしています。ここでは、透かしを追加する方法とコードを共有したいと思います。役に立てばと思います。
## Free Spire.Doc for .NETをインストールする
方法1：[NuGet](https://www.nuget.org/packages/FreeSpire.Doc)でFree Spire.Doc for .NETをインストールする
Visual Studioを開いて新しいプロジェクトを作成します。次に、「Solution Explorer」で「References」を右クリックし、「Nuget Manage Packages」を選択します。Free Spire.Doc for .NETを検索してインストールします。
方法2：手動でSpire.doc.dllを追加する
[Free Spire.Doc for .NET](https://jp.e-iceblue.com/introduce/free-spire-doc-for-net.html)をローカルにダウンロードしインストールします。次に、Visual Studioて新しいプロジェクトを作成し、右側の「Solution Explorer」で「References」を右クリックし、「Add Reference」>「Browse」を選択して、インストールパスの下のBINフォルダのdllファイルを見つけ、「OK」をクリックして、プログラムに参照を追加します。
## Word にテキストの透かしを追加する
* Document クラスのオブジェクトを作成します。
* Document.LoadFromFile() を使用して Word ドキュメントをロードします。
* カスタムのメソッド InsertTextWatermark() を使用して、ドキュメントにテキストの透かしを追加します。
* Doucment.SaveToFile() メソッドを使用して、ドキュメントを保存します。
C#:
```C#
using System;
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;

namespace InsertTextWatermark
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Document クラスのオブジェクトを作成する
            Document document = new Document();

            //Wordドキュメントをロードする
            document.LoadFromFile("sample.docx");

            //テキストの透かしを追加する
            InsertTextWatermark(document.Sections[0]);

            //ドキュメントを保存する
            document.SaveToFile("result1.docx", FileFormat.Docx);
        }
        private static void InsertTextWatermark(Section section)
        {
            TextWatermark txtWatermark = new TextWatermark();
            txtWatermark.Text = "機密";
            txtWatermark.FontSize = 50;
            txtWatermark.Color = Color.Blue;
            txtWatermark.Layout = WatermarkLayout.Diagonal;
            section.Document.Watermark = txtWatermark;

        }
    }
}
```
VB.Net:
```VB
Imports System
Imports System.Drawing
Imports Spire.Doc
Imports Spire.Doc.Documents

Module Program
    Sub Main(args As String())
        'Document クラスのオブジェクトを作成する
        Dim document As New Document()

        'Wordドキュメントをロードする
        document.LoadFromFile("sample.docx")

        'テキストの透かしを追加する
        InsertTextWatermark(document.Sections(0))

        'ドキュメントを保存する
        document.SaveToFile("result1.docx", FileFormat.Docx)
    End Sub
    Private Sub InsertTextWatermark(ByVal section As Section)
        Dim txtWatermark As New Spire.Doc.TextWatermark()
        txtWatermark.Text = "機密"
        txtWatermark.FontSize = 50
        txtWatermark.Color = Color.Blue
        txtWatermark.Layout = WatermarkLayout.Diagonal
        section.Document.Watermark = txtWatermark
    End Sub
End Module
```
![2023-02-24_145308.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/250fd2cb-6840-5801-b1a1-d054aa0da35c.png)

## Word に画像の透かしを追加する
* Document クラスのオブジェクトを作成する。
* Document.LoadFromFile() メソッドを使用して Word ドキュメントをロードします。
* カスタムのメソッド InsertImageWatermark() を使って、ドキュメントに画像の透かしを追加します。
* Document.SaveToFile() メソッドを使用してドキュメントを保存する。
C#:
```C#
using System;
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;

namespace InsertWatermark
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Document クラスのオブジェクトを作成する
            Document document = new Document();

            //Wordドキュメントをロードする
            document.LoadFromFile("sample.docx");

            //画像の透かしを追加する
            InsertImageWatermark(document);

            //ドキュメントを保存する
            document.SaveToFile("result2.docx", FileFormat.Docx);
        }
        private static void InsertImageWatermark(Document document)
        {
            PictureWatermark picture = new PictureWatermark();
            picture.Picture = Image.FromFile("image.png");
            picture.Scaling = 90;
            picture.IsWashout = false;
            document.Watermark = picture;
        }
    }
}
```
VB.NET:
```VB
Imports System
Imports System.Drawing
Imports Spire.Doc
Imports Spire.Doc.Documents

Module Program
    Sub Main(args As String())
        'Document クラスのオブジェクトを作成する
        Dim document As New Document()

        'Wordドキュメントをロードする
        document.LoadFromFile("sample.docx")

        '画像の透かしを追加する
        InsertImageWatermark(document)

        'ドキュメントを保存する
        document.SaveToFile("result2.docx", FileFormat.Docx)
    End Sub
    Private Sub InsertImageWatermark(ByVal document As Document)
        Dim picture As New PictureWatermark()
        picture.Picture = Image.FromFile("image.png")
        picture.Scaling = 90
        picture.IsWashout = False
        document.Watermark = picture
    End Sub
End Module
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/78789440-6555-63dc-2bd1-11212a9f67c2.png)