Yes, you can add watermarks to your PDF Files. Use the PDF Watermark application to recognize your PDFs as a logo, image, or text. The tool can watermark your PDF File at one time on every Page of the PDF file. The tool's Best feature is customized watermarks of your choice and some multiple-time increases of the opacity level from lighter to darker and darker to lighter. The tool permits enough flexibility in setting position to the top, left, right, center, and middle. The software is a user-friendly application that a non-technician can understand and operate without technical help. Download the tool today.
I would encourage you to download a free trial version of Telerik Document Processing Libraries and see whether it would meet the requirements you need to cover.
I have also prepared a sample code snippet demonstrating how to achieve watermarks over the pages in a PDF document:
static void Main(string[] args) { string fileName = "sample.pdf"; PdfFormatProvider provider = new PdfFormatProvider(); RadFixedDocument document = provider.Import(File.ReadAllBytes(fileName)); foreach (RadFixedPage page in document.Pages) { AddWatermarkText(page, "Watermark text!", 100); } string exportFileName = "testWatermarks.pdf"; File.Delete(exportFileName); File.WriteAllBytes(exportFileName, new PdfFormatProvider().Export(document)); ProcessStartInfo psi = new ProcessStartInfo() { FileName = exportFileName, UseShellExecute = true }; Process.Start(psi); } private static void AddWatermarkText(RadFixedPage page, string text, byte transparency) { FixedContentEditor editor = new FixedContentEditor(page); Block block = new Block(); block.TextProperties.FontSize = 80; block.TextProperties.TrySetFont(new FontFamily("Arial"), FontStyles.Normal, FontWeights.Bold); block.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Center; block.GraphicProperties.FillColor = new RgbColor(transparency, 255, 0, 0); block.InsertText(text); double angle = -45; editor.Position.Rotate(angle); editor.Position.Translate(0, page.Size.Width); editor.DrawBlock(block, new Size(page.Size.Width / Math.Abs(Math.Sin(angle)), double.MaxValue)); }
I hope this information helps.