Following code is an example on how to add protection to Microsoft Word document using C# without needing to have Microsoft Word installed.
Prerequisites
Following prerequisites are required to create Microsoft Word document programmatically:
DocX package from Codeplex or straight from GitHub sources
Visual Studio 2013 / Visual Studio 2015 (Free Community Edition will do)
Basic understanding on how to code in C# (C Sharp)
Basic tutorial on how to start coding with DocX package can be found on our blog post DocX – A short tutorial for beginners HelloWorld()
Example code
Following code provides basic example usage
static void HelloWorldProtectedDocument() { Console.WriteLine("\tHelloWorldPasswordProtected()"); // Create a new document. using (DocX document = DocX.Create(@"docs\HelloWorldPasswordProtected.docx")) { // Insert a Paragraph into this document. Paragraph p = document.InsertParagraph(); // Append some text and add formatting. p.Append("Hello World!^011Hello World!") .Font(new FontFamily("Times New Roman")) .FontSize(32) .Color(Color.Blue) .Bold(); // Save this document to disk with different options // Protected with password for Read Only EditRestrictions erReadOnly = EditRestrictions.readOnly; document.AddProtection(erReadOnly, "SomePassword"); document.SaveAs(@"docs\\HelloWorldPasswordProtectedReadOnly.docx"); Console.WriteLine("\tCreated: docs\\HelloWorldPasswordProtectedReadOnly.docx\n"); // Protected with password for Comments EditRestrictions erComments = EditRestrictions.comments; document.AddProtection(erComments, "SomePassword"); document.SaveAs(@"docs\\HelloWorldPasswordProtectedCommentsOnly.docx"); Console.WriteLine("\tCreated: docs\\HelloWorldPasswordProtectedCommentsOnly.docx\n"); // Protected with password for Forms EditRestrictions erForms = EditRestrictions.forms; document.AddProtection(erForms, "SomePassword"); document.SaveAs(@"docs\\HelloWorldPasswordProtectedFormsOnly.docx"); Console.WriteLine("\tCreated: docs\\HelloWorldPasswordProtectedFormsOnly.docx\n"); // Protected with password for Tracked Changes EditRestrictions erTrackedChanges = EditRestrictions.trackedChanges; document.AddProtection(erTrackedChanges, "SomePassword"); document.SaveAs(@"docs\\HelloWorldPasswordProtectedTrackedChangesOnly.docx"); Console.WriteLine("\tCreated: docs\\HelloWorldPasswordProtectedTrackedChangesOnly.docx\n"); // But it's also possible to add restrictions without protecting it with password. // Protected with password for Read Only document.AddProtection(erReadOnly); document.SaveAs(@"docs\\HelloWorldWithoutPasswordReadOnly.docx"); Console.WriteLine("\tCreated: docs\\HelloWorldWithoutPasswordReadOnly.docx\n"); // Protected with password for Comments document.AddProtection(erComments); document.SaveAs(@"docs\\HelloWorldWithoutPasswordCommentsOnly.docx"); Console.WriteLine("\tCreated: docs\\HelloWorldWithoutPasswordCommentsOnly.docx\n"); // Protected with password for Forms document.AddProtection(erForms); document.SaveAs(@"docs\\HelloWorldWithoutPasswordFormsOnly.docx"); Console.WriteLine("\tCreated: docs\\HelloWorldWithoutPasswordFormsOnly.docx\n"); // Protected with password for Tracked Changes document.AddProtection(erTrackedChanges); document.SaveAs(@"docs\\HelloWorldWithoutPasswordTrackedChangesOnly.docx"); Console.WriteLine("\tCreated: docs\\HelloWorldWithoutPasswordTrackedChangesOnly.docx\n"); } }