Adding the ability to edit permission area in a Word document can help users specify certain sections for others to edit while protecting the rest of the document from accidental modifications. This is particularly useful for scenarios like collaborative documents, document reviews, and comments. On the other hand, removing editable area functionality allows the document to be restored to a read-only state when specific sections do not need to be edited, ensuring the integrity and security of the document content. This article will explain how to use Spire.Doc for .NET to add or remove editable area in a Word document within a C# project.
Install Spire.Doc for .NET
To begin with, you need to add the DLL files included in the Spire.Doc for .NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.
PM> Install-Package Spire.Doc
Add Editable Area in a Word Document in C#
The steps to add editable area in a Word document involve inserting PermissionStart and PermissionEnd objects in the document and setting the document to read-only protection mode to ensure that the content within the specified areas can be edited while the rest remains read-only. Here are the detailed steps:
- Create a Document object.
- Load a Word document using the Document.LoadFromFile() method.
- Access a section of the document through the Document.Sections[index] property.
- Create a PermissionStart object using PermissionStart permissionStart = new PermissionStart(document, id) to mark the beginning of the editable area .
- Create a PermissionEnd object using PermissionEnd permissionEnd = new PermissionEnd(document, id) to mark the end of the editable area .
- Access a paragraph using the Section.Paragraphs[index] property.
- Insert the permission start object at the beginning of the paragraph using the Paragraph.ChildObjects.Insert(0, permissionStart) method.
- Add the permission end object at the end of the paragraph using the Paragraph.ChildObjects.Add(permissionEnd) method.
- Set the document to read-only protection mode and restrict editing permissions using the Document.Protect(ProtectionType.AllowOnlyReading, password) method.
- Save the resulting document using the Document.SaveToFile() method.
- C#
using Spire.Doc; using Spire.Doc.Documents; namespace SpireDocDemo { internal class Program { static void Main(string[] args) { // Create a new document object Document document = new Document(); // Load the document from the specified path document.LoadFromFile("Sample1.docx"); // Get the first section of the document Section section = document.Sections[0]; // Create a permission start object PermissionStart permissionStart = new PermissionStart(document, "restricted1"); // Create a permission end object PermissionEnd permissionEnd = new PermissionEnd(document, "restricted1"); // Get the second paragraph in the section Paragraph paragraph = section.Paragraphs[1]; // Insert the permission start object at the beginning of the paragraph paragraph.ChildObjects.Insert(0, permissionStart); // Add the permission end object at the end of the paragraph paragraph.ChildObjects.Add(permissionEnd); // Set the document to be read-only protected document.Protect(ProtectionType.AllowOnlyReading, "123456"); // Save the modified document to the specified path document.SaveToFile("AddedEditingPermissionsArea.docx", FileFormat.Docx); // Close the document and release the resources occupied by the document object document.Close(); document.Dispose(); } } }
Remove Editable Area in a Word Document in C#
The key steps to remove editable area in a Word document involve iterating through each paragraph of the document and removing the PermissionStart and PermissionEnd objects. Here are the detailed steps:
- Create a Document object.
- Load a Word document using the Document.LoadFromFile() method.
- Iterate through each paragraph in each section of the document, check for the presence of PermissionStart or PermissionEnd objects, and remove them.
- Save the resulting document using the Document.SaveToFile() method.
- C#
using Spire.Doc; using Spire.Doc.Documents; namespace SpireDocDemo { internal class Program { static void Main(string[] args) { // Create a new document object Document document = new Document(); // Load the document from the specified path document.LoadFromFile("Sample2.docx"); // Iterate through the sections of the document for (int a = 0; a < document.Sections.Count; a++) { // Get the body of the current section Body body = document.Sections[a].Body; // Iterate through the child objects of the body for (int i = 0; i < body.ChildObjects.Count; i++) { // Check if the child object is a paragraph if (body.ChildObjects[i] is Paragraph) { // Get the current paragraph Paragraph paragraph = (Paragraph)body.ChildObjects[i]; // Iterate backwards from the last child object of the paragraph for (int j = paragraph.ChildObjects.Count - 1; j >= 0; j--) { // Get the current child object DocumentObject documentObject = paragraph.ChildObjects[j]; // Remove the current child object if it is a permission start object if (documentObject.DocumentObjectType == DocumentObjectType.PermissionStart) { paragraph.ChildObjects.RemoveAt(j); } // Remove the current child object if it is a permission end object else if (documentObject.DocumentObjectType == DocumentObjectType.PermissionEnd) { paragraph.ChildObjects.RemoveAt(j); } } } } } // Save the modified document to the specified path document.SaveToFile("RemovedEditingPermissionsArea.docx", FileFormat.Docx); // Close the document and release the resources occupied by the document object document.Close(); document.Dispose(); } } }
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.