1. 程式人生 > >C# 設置Word文檔保護(加密、解密、權限設置)

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

C# .NET Word API 控件 免費類庫 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");
        }
    }
}

調試運行程序,生成文檔後,可見如下文檔效果:
正確輸入密碼後就可以打開文檔了。
技術分享圖片

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 這裏是設置了編輯權限的,如果想要編輯需要輸入密碼。
技術分享圖片

以上全部內容為本次關於Word文檔加密、解密以及文檔操作權限設置的全部代碼操作,代碼供參考。如果喜歡,歡迎轉載(轉載請註明出處)。
感謝瀏覽!

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