此示例演示如何取消对文档的保护(如果知道密码)。 // 获取示例PDF文件的新副本。 // 此示例中的密码为“user”和“owner”。 string filename = "HelloWorld (protected).pdf"; File.Copy(Path.Combine("../../../../PDFs/", filename), Path.Combine(Directory.GetCurrentDirectory(), filename), true); PdfDocument document; // 打开文档将失败,密码无效。 try { document = PdfReader.Open(filename, "invalid password"); } catch (Exception ex) { Debug.WriteLine(ex.Message); } // 可以指定委托,如果文档需要密码。如果要修改文档,必须提供所有者密码 document = PdfReader.Open(filename, PdfDocumentOpenMode.Modify, new PdfPasswordProvider(PasswordProvider)); // 用用户密码打开文档。 document = PdfReader.Open(filename, "user", PdfDocumentOpenMode.ReadOnly); // 使用属性hasOwnerPermissions确定是否使用了密码 // 是用户或所有者密码。在这两种情况下,PDFSharp都提供 // 访问PDF文档。由使用PDFSharp的程序员决定 // 尊重访问权。PDFSharp不尝试保护文档 // 因为这对开放源码库没有什么意义。 bool hasOwnerAccess = document.SecuritySettings.HasOwnerPermissions; // 用所有者密码打开文档。 document = PdfReader.Open(filename, "owner"); hasOwnerAccess = document.SecuritySettings.HasOwnerPermissions; // 使用所有者密码打开的文档完全不受保护,可以修改。 XGraphics gfx = XGraphics.FromPdfPage(document.Pages[0]); gfx.DrawString("Some text...", new XFont("Times", 12), XBrushes.Firebrick, 50, 100); // 修改后的文档将在不应用任何保护的情况下保存。 PdfDocumentSecurityLevel level = document.SecuritySettings.DocumentSecurityLevel; //如果要将其保存为受保护的,则必须设置documentsecuritylevel或应用新密码。在当前实现中,旧密码不会自动重用。有关更多信息,请参阅“ProtectDocument”示例。 // 保存 document.Save(filename); // 预览 Process.Start(filename); |
PDFsharp用法:取消文档保护
最新推荐文章于 2023-05-05 17:14:10 发布