Работа с водяными знаками

Работа с водяными знаками

Работа с водяными знаками

Это руководство показывает, как добавлять, настраивать и удалять водяные знаки документов в Aspose.Words FOSS для .NET используя Watermark класс, получаемый через Document.Watermark. Водяной знак может быть текстовым или изображением, и одновременно на документе может быть активен только один водяной знак — установка нового заменяет предыдущий.


Добавление текстового водяного знака

Watermark.SetText(text) добавляет текстовый водяной знак с форматированием по умолчанию. Перегрузка SetText(text, options) принимает экземпляр TextWatermarkOptions для управления его внешним видом: FontFamily, Color и FontSize контролируют форматирование текста, IsSemitrasparent переключает полупрозрачный эффект, характерный для водяных знаков, а Layout (значение WatermarkLayout — Horizontal или Diagonal) управляет его ориентацией относительно страницы.


Добавление графического водяного знака

Watermark.SetImage(image) добавляет изображение-водяной знак из уже загруженного Image. Перегрузки, которые также принимают экземпляр ImageWatermarkOptions — SetImage(image, options), SetImage(imagePath, options) (загрузка из пути к файлу) и SetImage(imageStream, options) (загрузка из Stream) — позволяют управлять Scale (коэффициентом масштабирования изображения, выраженным в виде дроби) и IsWashout (эффектом выцветания, который не позволяет изображению водяного знака затмить содержимое страницы).


Проверка и удаление водяного знака

Watermark.Type сообщает тип текущего водяного знака как значение WatermarkType — Text, Image или None, если водяной знак не установлен. Вызовите Watermark.Remove(), чтобы удалить текущий водяной знак из документа.


Советы и лучшие практики

  • Проверьте Watermark.Type перед тем, как предполагать наличие водяного знака — он возвращает WatermarkType.None для документа, в котором никогда не был установлен водяной знак.
  • Установка нового водяного знака через SetText() или SetImage() заменяет любой существующий водяной знак; невозможно иметь более одного активного водяного знака одновременно.
  • Используйте WatermarkLayout.Diagonal, чтобы воспроизвести ориентацию диагонального водяного знака по умолчанию в Word, или Horizontal для водяного знака, расположенного параллельно краям страницы.
  • Отдавайте предпочтение перегрузкам ImageWatermarkOptions/TextWatermarkOptions вместо простых вызовов SetImage(image) / SetText(text), когда необходимо управлять непрозрачностью, масштабом или шрифтом — перегрузки без параметров используют значения по умолчанию Word.

Распространённые проблемы

ПроблемаПричинаИсправление
Новая водяная метка не отображается рядом со старойSetText()/SetImage() заменяет существующую водяную метку вместо добавления второйВызывайте Remove() сначала только в том случае, если нужно очистить её перед установкой другого типа; в остальных случаях замена происходит автоматически
Изображение-водяная метка перекрывает содержимое страницыImageWatermarkOptions.IsWashout был оставлен отключённымУстановите IsWashout в true при построении ImageWatermarkOptions
Шрифт текстовой водяной метки не соответствует задуманному шрифтуTextWatermarkOptions.FontFamily не был установлен (или был написан с ошибкой)Установите FontFamily в имя шрифта, доступного в среде рендеринга

FAQ

Как проверить, содержит ли документ уже водяной знак?

Прочитайте Document.Watermark.Type; он возвращает WatermarkType.Text, WatermarkType.Image или WatermarkType.None.

Как удалить водяной знак?

Вызовите Document.Watermark.Remove().

Можно ли управлять прозрачностью водяного знака?

Да – для текстовых водяных знаков установите TextWatermarkOptions.IsSemitrasparent; для изображений водяных знаков установите ImageWatermarkOptions.IsWashout.

Как загрузить изображение водяного знака с диска вместо Image в памяти?

Используйте перегрузку Watermark.SetImage(imagePath, options), передавая путь к файлу как строку вместе с экземпляром ImageWatermarkOptions.


API Reference Сводка

Класс / ПеречислениеОписание:
WatermarkВодяной знак документа, через Document.Watermark; SetText(), SetImage(), Remove(), Type
WatermarkTypeПеречисление, определяющее текущий тип водяного знака: Text, Image, None
WatermarkLayoutПеречисление ориентации водяного знака: Horizontal, Diagonal
TextWatermarkOptionsФорматирование текстового водяного знака: FontFamily, Color, FontSize, IsSemitrasparent, Layout
ImageWatermarkOptionsПараметры водяного знака изображения: Scale, IsWashout

См. также:

 Русский