Работа с водяными знаками в Word на C#: добавление, водяной знак-изображение и удаление — всё в одной статье
В процессе разработки программных систем функции обработки документов часто являются важной частью корпоративных приложений. Документы Word, как один из самых популярных офисных форматов, нередко требуют защиты содержимого и маркировки статуса. Водяные знаки, как визуальные элементы, не мешающие чтению основного текста, но при этом чётко передающие свойства документа (например, уровень конфиденциальности, принадлежность авторских прав или статус черновика), играют важную роль в управлении документами.
В этой статье подробно рассматривается, как с помощью компонента Free Spire.Doc for .NET реализовать на C# добавление текстовых водяных знаков, добавление водяных знаков-изображений и удаление существующих водяных знаков из документов Word.
1. Обзор компонента Spire.Doc for .NET
Free Spire.Doc for .NET — это профессиональный компонент для работы с документами Word, который позволяет разработчикам создавать, читать, изменять и конвертировать документы Word напрямую через код без установки Microsoft Office. Компонент предоставляет полный набор возможностей для работы с водяными знаками и поддерживает два основных типа:
В отличие от сложных решений, имитирующих водяные знаки через колонтитулы или вставку фигур, Spire.Doc содержит встроенную объектную модель для работы с водяными знаками, что делает их добавление и управление более простым и стандартизированным.
Настройка окружения
Перед началом кодирования необходимо установить Free Spire.Doc в проект через диспетчер пакетов NuGet. Выполните следующую команду в «Консоли диспетчера пакетов» Visual Studio:
Install-Package FreeSpire.Doc
После установки необходимо подключить следующие пространства имён в файле кода:
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing; // Для работы с цветами и изображениями
2. Добавление текстового водяного знака
Текстовый водяной знак — это самая базовая и наиболее часто используемая форма водяных знаков. По сути, это строка текста, отображаемая на фоне каждой страницы документа в полупрозрачном или заданном цвете. Обычно используется крупный шрифт с диагональным или горизонтальным расположением, чтобы визуально отличаться от основного содержимого.
Описание основных свойств
Класс TextWatermark предоставляет следующие настраиваемые свойства:
Реализация кода
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("input.docx");
// Вставка текстового водяного знака
InsertTextWatermark(document);
// Сохранение документа
document.SaveToFile("TextWatermark.docx", FileFormat.Docx);
}
private static void InsertTextWatermark(Document document)
{
TextWatermark txtWatermark = new TextWatermark();
txtWatermark.Text = "НЕ КОПИРОВАТЬ"; // Текст водяного знака
txtWatermark.FontSize = 50; // Размер шрифта
txtWatermark.Color = Color.Blue; // Цвет текста
txtWatermark.Layout = WatermarkLayout.Diagonal; // Диагональное расположение
document.Watermark = txtWatermark;
}
}
}
Ключевые моменты
Водяной знак связан со всем объектом документа, а не с отдельной страницей или разделом. Это означает, что после добавления водяной знак автоматически применяется ко всем страницам документа.
При сохранении необходимо явно указать формат FileFormat.Docx, чтобы информация о водяном знаке была корректно записана в структуру файла Word.
Если требуется горизонтальное центрированное отображение водяного знака, установите свойство Layout в WatermarkLayout.Horizontal.
3. Добавление водяного знака-изображения
По сравнению с текстовыми водяными знаками, водяные знаки-изображения подходят для более широкого круга сценариев:
Добавление логотипа компании в качестве водяного знака во внутренние документы
Наложение изображений с авторскими правами на дизайнерские макеты
Использование изображения подписи как утверждающего водяного знака документа
Описание основных свойств
Класс PictureWatermark предоставляет следующие настраиваемые свойства:
Реализация кода
using System;
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;
namespace InsertImageWatermark
{
internal class Program
{
static void Main(string[] args)
{
// Создание экземпляра объекта Document
Document document = new Document();
// Загрузка документа Word
document.LoadFromFile("Input.docx");
// Вставка водяного знака-изображения
InsertImageWatermark(document);
// Сохранение документа
document.SaveToFile("InsertImageWatermark.docx", FileFormat.Docx);
}
private static void InsertImageWatermark(Document document)
{
PictureWatermark picture = new PictureWatermark();
picture.Picture = Image.FromFile("watermark.png"); // Загрузка изображения
picture.Scaling = 200; // Масштаб (%)
picture.IsWashout = false; // Использовать ли эффект выцветания
document.Watermark = picture;
}
}
}
Два визуальных эффекта для водяного знака-изображения
4. Удаление водяного знака
Жизненный цикл документа обычно включает несколько этапов, и необходимость в водяных знаках не всегда постоянна. Например, документ на стадии проверки может требовать заметного водяного знака «Конфиденциально», но после завершения проверки и официальной публикации водяной знак может стать лишним и потребовать удаления.
Принцип работы
В Spire.Doc удаление водяного знака реализовано очень просто: свойство Document.Watermark по сути является ссылкой на объект. Когда оно указывает на экземпляр TextWatermark или PictureWatermark, это означает, что водяной знак активен. Если же присвоить этому свойству пустую ссылку, водяной знак будет удалён из документа.
Реализация кода
using Spire.Doc;
namespace RemoveWatermark
{
class Program
{
static void Main(string[] args)
{
// Создание экземпляра Document
Document doc = new Document();
// Загрузка документа Word с водяным знаком
doc.LoadFromFile("Input.docx");
// Удаление водяного знака
doc.Watermark = null;
// Сохранение результата
doc.SaveToFile("RemoveWatermark.docx", FileFormat.Docx2013);
}
}
}
⚠️ Важные замечания
Этот способ удаления работает только для стандартных водяных знаков, добавленных через Spire.Doc. Если «водяной знак» реализован нестандартным способом (например, полупрозрачная фигура в колонтитуле или встроенное фоновое изображение), данный метод не сработает — потребуется использовать другие стратегии удаления содержимого документа.
5. Заключение
С помощью Spire.Doc for .NET разработчики могут легко и стандартизированно добавлять и удалять водяные знаки в документах Word с использованием C#. Основные операции, рассмотренные в статье:
Рекомендации по применению
Текстовые водяные знаки : подходят для сценариев с динамической генерацией текста, например отображения различных уровней конфиденциальности в зависимости от прав пользователя
Водяные знаки-изображения : подходят для брендированных сценариев, когда компания использует единый логотип в качестве фона документа
Удаление водяных знаков : подходит для документооборота, например когда документы содержат водяной знак на этапе внутреннего согласования и очищаются перед внешней публикацией
Это решение не зависит от среды Microsoft Office и подходит для развёртывания в серверных приложениях и фоновых службах, обеспечивая хорошую стабильность и масштабируемость.










