天天看點

C# 設定Word文檔保護(加密、解密、權限設定)

對于一些重要的word文檔,出于防止資料被他人檢視,或者防止文檔被修改的目的,我們在選擇文檔保護時可以選擇文檔打開添加密碼或者設定文檔操作權限等,在下面的文章中将介紹如何使用類庫 Free Spire.Doc for .NET 來加密、解密以及給文檔設定操作權限等,主要分為以下幾個要點來具體闡述

  • 添加Word密碼保護
  • 解除Word密碼保護
  • 設定word文檔操作權限
  • 設定Word部分内容編輯權限

工具使用:

安裝

Free Spire.Doc之後,在程式中引用Spire.Doc.dll即可(dll可以在安裝路徑下的Bin檔案夾中擷取)

1.  Word文檔加密

using Spire.Doc;

namespace EncryptWord_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化一個Document類執行個體并加載需要加密的Word文檔
            Document doc = new Document(@"C:\Users\Administrator\Desktop\sample.docx");
            //設定打開Word文檔的密碼
            doc.Encrypt("abc123");
            //儲存并打開文檔
            doc.SaveToFile("加密檔案.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("加密檔案.docx");
        }
    }
}      

調試運作程式,生成文檔後,可見如下文檔效果:

正确輸入密碼後就可以打開文檔了。

C# 設定Word文檔保護(加密、解密、權限設定)

2.  Word文檔解密

using Spire.Doc;

namespace DecryptWord_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化一個Document類執行個體
            Document doc = new Document();
            //加載密碼參數為"adc123"的Word文檔
            doc.LoadFromFile("加密檔案.docx", FileFormat.Docx2013, "abc123");

            //調用方法RemoveEncryption()解除密碼保護
            doc.RemoveEncryption();
            //儲存文檔并打開文檔
            doc.SaveToFile("解密檔案.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("解密檔案.docx");
        }
    }
}      

此時打開文檔時已經沒有密碼保護了。

3.  Word文檔操作權限設定

(這裡提供了4種不同類型的操作權限,可以根據自己的需要選擇相應的類型)

using Spire.Doc;

namespace EditPermissions_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立一個Document類對象并加載需要設定編輯權限的Word文檔
            Document doc = new Document(@"C:\Users\Administrator\Desktop\sample.docx");
                  
            //不允許任何更改(隻讀),設定解除限制編輯的密碼
            doc.Protect(ProtectionType.AllowOnlyReading, "123");

            //隻允許填寫窗體,設定解除限制編輯的密碼
            doc.Protect(ProtectionType.AllowOnlyFormFields, "123");

            //隻允許批注,設定解除限制編輯的密碼
            doc.Protect(ProtectionType.AllowOnlyComments, "123");

            //隻允許修訂,設定解除限制編輯的密碼
            doc.Protect(ProtectionType.AllowOnlyRevisions, "123");

            //儲存并預覽檔案
            doc.SaveToFile("有限權限文檔3.docx",FileFormat.Docx2013);
            System.Diagnostics.Process.Start("有限權限文檔3.docx");
        }
    }
}      

4. 設定部分文檔内容權限

(當文檔中部分内容不想被他人修改時,也可以設定該部分内容的可編輯權限,參考如下代碼。)

using Spire.Doc;

namespace LockSpecifiedSections_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立一個Document類對象
            Document doc = new Document();  
            //初始化2個section類執行個體,并添加文本内容到section
            Section s1 = doc.AddSection();
            Section s2 = doc.AddSection();
            s1.AddParagraph().AppendText("section 1");
            s2.AddParagraph().AppendText("section 2");

            //設定保護模式及密碼
            doc.Protect(ProtectionType.AllowOnlyFormFields, "123");
            //設定section2 的保護屬性為false,即,可編輯
             s2.ProtectForm = false;

            //儲存并打開文檔
            doc.SaveToFile("Protect_Section.docx",FileFormat.Docx2010);
            System.Diagnostics.Process.Start("Protect_Section.docx");
        }
    }
}      

此時,生成的文檔中,section1 這裡是設定了編輯權限的,如果想要編輯需要輸入密碼。

C# 設定Word文檔保護(加密、解密、權限設定)

以上全部内容為本次關于Word文檔加密、解密以及文檔操作權限設定的全部代碼操作,代碼供參考。如果喜歡,歡迎轉載(轉載請注明出處)。

感謝浏覽!