This demo uses the DevExpress Word Processing Document API to add a watermark to a predefined sample file.
Specify the required watermark type in the panel below. You can specify content and layout options for a text watermark. The demo uses a predefined image for an image watermark. Use the Add Watermark and Save as... dropdown button to select the output format, apply a watermark, and download the result.
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using System.Drawing;
Stream ApplyTextWatermark(Stream inputStream, string watermarkText, string fontName, int fontSize, Color textColor,
WatermarkLayout layout, bool semitransparent, DocumentFormat targetFormat) {
using var wordProcessor = new RichEditDocumentServer();
wordProcessor.LoadDocument(inputStream);
Document document = wordProcessor.Document;
TextWatermarkOptions options = new() {
FontFamily = fontName,
FontSize = fontSize,
Color = textColor,
Layout = layout,
Semitransparent = semitransparent
};
document.WatermarkManager.SetText(watermarkText, options);
var outputStream = new MemoryStream();
wordProcessor.SaveDocument(outputStream, targetFormat);
outputStream.Position = 0;
return outputStream;
}
Stream ApplyImageWatermark(Stream inputStream, Stream imageStream, double imageScale, bool washout, DocumentFormat targetFormat) {
using var wordProcessor = new RichEditDocumentServer();
wordProcessor.LoadDocument(inputStream);
Document document = wordProcessor.Document;
ImageWatermarkOptions options = new() {
Scale = imageScale,
Washout = washout
};
DocumentImageSource imageSource = DocumentImageSource.FromStream(imageStream);
document.WatermarkManager.SetImage(imageSource, options);
var outputStream = new MemoryStream();
wordProcessor.SaveDocument(outputStream, targetFormat);
outputStream.Position = 0;
return outputStream;
}