// Open an existing document. Providing an unrequired password is ignored. PdfSharp.Pdf.PdfDocument document = PdfReader.Open(pdfFilePath); PdfSecuritySettings securitySettings = document.SecuritySettings; // Setting one of the passwords automatically sets the security level to // PdfDocumentSecurityLevel.Encrypted128Bit. //securitySettings.UserPassword = "user"; securitySettings.OwnerPassword = GGGuid.ToString(); // Don't use 40 bit encryption unless needed for compatibility reasons //securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted40Bit; // Restrict some rights. //除打印权限其他均关闭 securitySettings.PermitAccessibilityExtractContent = false; securitySettings.PermitAnnotations = false; securitySettings.PermitAssembleDocument = false; securitySettings.PermitExtractContent = false; securitySettings.PermitFormsFill = false; securitySettings.PermitFullQualityPrint = true; securitySettings.PermitModifyDocument = false; securitySettings.PermitPrint = true; //水印 for (int i = 0; i < document.Pages.Count; i++) { string watermark = "水印文字"; //水印文字 double emSize = 42; XFont xFont = new XFont("黑体", emSize); var page = document.Pages[i]; var gfx = XGraphics.FromPdfPage(page, XGraphicsPdfPageOptions.Prepend); var size = gfx.MeasureString(watermark, xFont); gfx.TranslateTransform(page.Width / 2, page.Height / 2); gfx.RotateTransform(-Math.Atan(page.Height / page.Width) * 180 / Math.PI); gfx.TranslateTransform(-page.Width / 2, -page.Height / 2); var format = new XStringFormat(); format.Alignment = XStringAlignment.Near; format.LineAlignment = XLineAlignment.Near; XBrush brush = new XSolidBrush(XColor.FromArgb(16, 0, 0, 0)); //循环以实现全屏水印 for (int y = 0; y < 10; y++) { for (int x = 0; x < 10; x++) { gfx.DrawString(watermark, xFont, brush, new XPoint(x * 180 - 300, y * 120), format); } } } document.Save(pdfFilePath);