Restricţionează editarea documentelor

Uneori s-ar putea să ai nevoie să limitezi capacitatea de a edita un document și doar să permiți anumite acțiuni cu el. Acest lucru poate fi util pentru a împiedica alte persoane să editeze informații sensibile și confidențiale în documentul dumneavoastră.

Aspose.Words vă permite să restricționați editarea unui document prin stabilirea unui tip de restricție. În plus, Aspose.Words vă permite și să specificați setările de protecție la scriere pentru un document.

Acest articol explică cum să folosești Aspose.Words pentru a selecta un tip de restricție, cum să adaugi sau să îndepărtezi protecție și cum să faci regiuni ne restricționate editabile.

Select tipul de restricție a editarii

Aspose.Words vă permite să controlaţi modul în care restricţionaţi conţinutul folosind parametrul enumerare ProtectionType. Aceasta va permite să selectaţi un tip exact de protecţie, cum ar fi următoarele:

  • AllowOnlyComments
  • AllowOnlyFormFields
  • AllowOnlyRevisions
  • Doar pentru citire *NoProtection

Toate tipurile sunt securizate prin parole și dacă această parolă nu este introdusă corect, un utilizator nu va putea schimba legal conținutul documentului dumneavoastră. Astfel, dacă documentul tău este returnat fără o cerinţă de a furniza parola necesară, acesta este un semn că ceva este în neregulă.

Dacă nu ai stabilit o parolă atunci când alegi tipul de securitate, alți utilizatori pot ignora pur și simplu protecția documentului tău.

Adăugare protecție document

Adăugarea unei protecții pentru document este un proces simplu, deoarece tot ce trebuie să faceți este să aplicați una din metodele de protecție detaliate în această secțiune.

Aspose.Words îți permite să protejezi documentele de modificări folosind metoda Protect. Această metodă nu este un element de securitate și nu criptează un document.

Exemplul următor de cod arată cum să adăugați protecția parolei la documentul dumneavoastră:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
// Apply document protection.
doc.Protect(ProtectionType.NoProtection, "password");
doc.Save(ArtifactsDir + "DocumentProtection.PasswordProtection.docx");

Exemplul de cod următor arată cum să restricționezi editarea într-un document astfel încât să fie posibilă doar editarea în câmpurile formularului":

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Insert two sections with some text.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Text added to a document.");
// A document protection only works when document protection is turned and only editing in form fields is allowed.
doc.Protect(ProtectionType.AllowOnlyFormFields, "password");
// Save the protected document.
doc.Save(ArtifactsDir + "DocumentProtection.AllowOnlyFormFieldsProtect.docx");

Elimină protecția documentului

Aspose.Words vă permite să eliminați protecția unui document cu modificarea simplă și directă. “Puteți fie să eliminați protecția documentului fără a cunoaște parola reală sau furnizați parola corectă pentru deblocarea documentului prin utilizarea metodei Unprotect”. Ambele metode de eliminare nu au nicio diferență.

Exemplul de cod următor arată cum să scoţi protecţia din documentul tău:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Text added to a document.");
// Documents can have protection removed either with no password, or with the correct password.
doc.Unprotect();
doc.Protect(ProtectionType.ReadOnly, "newPassword");
doc.Unprotect("newPassword");
doc.Save(ArtifactsDir + "DocumentProtection.RemoveDocumentProtection.docx");

Specificaţi regiuni ne restricţionate, editabile

Puteți restricționa editarea documentului dvs. și, în același timp, să permiteți modificări pentru părțile selectate ale acestuia. Așadar, oricine deschide documentul dvs., va putea accesa aceste părți necontrolate și va face modificări conținutului.

Aspose.Words vă permite să marcați părțile care pot fi modificate în documentul dvs. folosind metodele StartEditableRange și EndEditableRange.

Exemplul de cod următor arată cum se marchează întregul document ca fiind doar pentru citire și cum se specifică regiuni editabile în acesta:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Upload a document and make it as read-only.
Document doc = new Document(MyDir + "Document.docx");
DocumentBuilder builder = new DocumentBuilder(doc);
doc.Protect(ProtectionType.ReadOnly, "MyPassword");
builder.Writeln("Hello world! Since we have set the document's protection level to read-only, " + "we cannot edit this paragraph without the password.");
// Start an editable range.
EditableRangeStart edRangeStart = builder.StartEditableRange();
// An EditableRange object is created for the EditableRangeStart that we just made.
EditableRange editableRange = edRangeStart.EditableRange;
// Put something inside the editable range.
builder.Writeln("Paragraph inside first editable range");
// An editable range is well-formed if it has a start and an end.
EditableRangeEnd edRangeEnd = builder.EndEditableRange();
builder.Writeln("This paragraph is outside any editable ranges, and cannot be edited.");
doc.Save(ArtifactsDir + "DocumentProtection.UnrestrictedEditableRegions.docx");

Puteți alege, de asemenea, diferite restricții de editare a documentelor pentru diferite secțiuni.

Exemplul de cod următor arată cum să adăugați o restricție pentru întregul document și apoi să eliminați restricția pentru una dintre secțiuni:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Insert two sections with some text.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Section 1. Unprotected.");
builder.InsertBreak(BreakType.SectionBreakContinuous);
builder.Writeln("Section 2. Protected.");
// Section protection only works when document protection is turned and only editing in form fields is allowed.
doc.Protect(ProtectionType.AllowOnlyFormFields, "password");
// By default, all sections are protected, but we can selectively turn protection off.
doc.Sections[0].ProtectedForForms = false;
doc.Save(ArtifactsDir + "DocumentProtection.UnrestrictedSection.docx");
doc = new Document(ArtifactsDir + "DocumentProtection.UnrestrictedSection.docx");
Assert.False(doc.Sections[0].ProtectedForForms);
Assert.True(doc.Sections[1].ProtectedForForms);