C# 如何使用c打开受密码保护的pdf#

C# 如何使用c打开受密码保护的pdf#,c#,pdf,adobe,itextsharp,password-protection,C#,Pdf,Adobe,Itextsharp,Password Protection,我想在c#.net windows应用程序面板内或使用adobe reader打开受密码保护的pdf 我的想法是我想通过系统传递密码并打开pdf。用户可以看到pdf,但无法保存。甚至用户也可以将我们保存在他们的计算机中,当他们重新打开pdf时,文件会询问密码。这意味着当他们想要阅读pdf时,他们必须使用系统,如果他们将pdf带到外部,他们无法打开密码的cos 我试过使用AdobePDF dll,这个无法传递密码。 我也试过用itextsharp,这个可以传递密码,但传递密码后,需要保存pdf。因

我想在c#.net windows应用程序面板内或使用adobe reader打开受密码保护的pdf

我的想法是我想通过系统传递密码并打开pdf。用户可以看到pdf,但无法保存。甚至用户也可以将我们保存在他们的计算机中,当他们重新打开pdf时,文件会询问密码。这意味着当他们想要阅读pdf时,他们必须使用系统,如果他们将pdf带到外部,他们无法打开密码的cos

我试过使用AdobePDF dll,这个无法传递密码。 我也试过用itextsharp,这个可以传递密码,但传递密码后,需要保存pdf。因此,当我打开pdf时,文件没有密码


我想通过系统直接打开受密码保护的pdf。我不想再保存了。

有一个类似的问题,我复制了该问题的部分内容并放在这里

public static void unprotectPdf(string input, string output) 
{ 
    bool passwordProtected = PdfDocument.IsPasswordProtected(input); 
    if (passwordProtected) 
    { 
        string password = null; // retrieve the password somehow 

        using (PdfDocument doc = new PdfDocument(input, password)) 
        { 
            // clear both passwords in order 
            // to produce unprotected document 
            doc.OwnerPassword = ""; 
            doc.UserPassword = ""; 

            doc.Save(output); 
        } 
    } 
    else 
    { 
        // no decryption is required 
        File.Copy(input, output, true); 
    } 
} 

如果我理解正确,您希望实施一些数字版权管理(DRM)

要做到这一点,您需要对PDF查看组件进行一些控制,或者该组件必须受到足够的限制。否则,即,如果您只是以某种方式将密码转发给Adobe Acrobat,则该组件将假定用户是文档的实际所有者,因此允许用户保存文件的未受保护副本。当然,如果您临时创建了一个未受保护的副本,例如使用iText(Sharp),那么这个临时文件可以很容易地被抢走

不幸的是,您没有明确说明“在c#.net windows应用程序面板内部或使用adobe reader”的选择是由您还是由用户决定

因此,如果需要支持Adobe Acrobat/Reader,则必须将DRM实施集成到这些产品中,参见(“开发数字版权管理(DRM)插件”)


另一方面,如果您可以选择,您只需要一些适当的PDF查看器组件。不幸的是,我不知道.NET的可用浏览者;如果您使用Java,JPedal可以适当定制。

谢谢您的帖子。如果我使用此功能,pdf文件已被删除密码。因此,用户可以保存在他们的本地驱动器,他们可以随时打开无密码。实际上我不想删除密码。打开pdf后,他们可以保存,但在保存后,当他们再次打开pdf时,他们需要输入密码。