Работа с водяными знаками
Работа с водяными знаками
Это руководство показывает, как добавлять, настраивать и удалять водяные знаки документов в 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 |