Restreindre la Modification des Documents

Parfois, vous devrez peut-être limiter la possibilité de modifier un document et n’autoriser que certaines actions avec celui-ci. Cela peut être utile pour empêcher d’autres personnes de modifier des informations sensibles et confidentielles dans votre document.

Aspose.Words vous permet de restreindre la modification d’un document en définissant un type de restriction. De plus, Aspose.Words vous permet également de spécifier des paramètres de protection en écriture pour un document.

Cet article explique comment utiliser Aspose.Words pour sélectionner un type de restriction, comment ajouter ou supprimer une protection et comment rendre les régions modifiables sans restriction.

Sélectionnez le Type de Restriction d’édition

Aspose.Words vous permet de contrôler la manière dont vous restreignez le contenu à l’aide du paramètre d’énumération ProtectionType. Cela vous permettra de sélectionner un type exact de protection tel que le suivant:

  • AllowOnlyComments
  • AllowOnlyFormFields
  • AllowOnlyRevisions
  • ReadOnly
  • NoProtection

Tous les types sont sécurisés par mot de passe, et si ce mot de passe n’est pas entré correctement, un utilisateur ne pourra pas légalement modifier le contenu de votre document. Ainsi, si votre document vous est retourné sans obligation de fournir le mot de passe nécessaire, c’est le signe que quelque chose ne va pas.

Si vous n’avez pas défini de mot de passe lors du choix du type de sécurité, les autres utilisateurs peuvent simplement ignorer la protection de votre document.

Ajouter une Protection des Documents

L’ajout d’une protection à votre document est un processus simple, car il vous suffit d’appliquer l’une des méthodes de protection détaillées dans cette section.

Aspose.Words vous permet de protéger vos documents des modifications à l’aide de la méthode Protect. Cette méthode n’est pas une fonctionnalité de sécurité et ne chiffre pas un document.

L’exemple de code suivant montre comment ajouter une protection par mot de passe à votre document:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Create a new document and protect it with a password.
auto doc = System::MakeObject<Document>();
// Apply Document Protection.
doc->Protect(ProtectionType::NoProtection, u"password");
// Save the document.
doc->Save(ArtifactsDir + u"DocumentProtection.PasswordProtection.docx");

L’exemple de code suivant montre comment restreindre la modification dans un document afin que seule la modification dans les champs de formulaire soit possible:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Insert two sections with some text.
auto doc = System::MakeObject<Document>();
auto builder = System::MakeObject<DocumentBuilder>(doc);
builder->Writeln(u"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, u"password");
// Save the protected document.
doc->Save(ArtifactsDir + u"DocumentProtection.PasswordProtection.docx");

Supprimer la Protection des Documents

Aspose.Words vous permet de supprimer la protection d’un document avec une modification simple et directe du document. Vous pouvez soit supprimer la protection du document sans connaître le mot de passe réel, soit fournir le mot de passe correct pour déverrouiller le document en utilisant la méthode Unprotect. Les deux méthodes d’élimination n’ont aucune différence.

L’exemple de code suivant montre comment supprimer la protection de votre document:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Create a new document and protect it with a password.
auto doc = System::MakeObject<Document>();
// Add text.
auto builder = System::MakeObject<DocumentBuilder>(doc);
builder->Writeln(u"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, u"newPassword");
doc->Unprotect(u"newPassword");
// Save the document.
doc->Save(ArtifactsDir + u"DocumentProtection.RemoveDocumentProtection.docx");

Spécifier Des Régions Modifiables Illimitées

Vous pouvez restreindre l’édition de votre document et en même temps autoriser des modifications sur certaines parties de celui-ci. Ainsi, toute personne qui ouvre votre document pourra accéder à ces parties sans restriction et apporter des modifications au contenu.

Aspose.Words vous permet de marquer les parties qui peuvent être modifiées dans votre document à l’aide des méthodes StartEditableRange et EndEditableRange.

L’exemple de code suivant montre comment marquer l’ensemble du document en lecture seule et y spécifier des régions modifiables:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Upload a document and make it as read-only.
auto doc = System::MakeObject<Document>(MyDir + u"Document.docx");
auto builder = System::MakeObject<DocumentBuilder>(doc);
doc->Protect(ProtectionType::ReadOnly, u"MyPassword");
builder->Writeln(u"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.
auto edRangeStart = builder->StartEditableRange();
// An EditableRange object is created for the EditableRangeStart that we just made.
auto editableRange = edRangeStart->get_EditableRange();
// Put something inside the editable range.
builder->Writeln(u"Paragraph inside first editable range");
// An editable range is well-formed if it has a start and an end.
auto edRangeEnd = builder->EndEditableRange();
// Save your document.
builder->Writeln(u"This paragraph is outside any editable ranges, and cannot be edited.");
doc->Save(ArtifactsDir + u"DocumentProtection.UnrestrictedEditableRegions.docx");

Vous pouvez également choisir différentes restrictions d’édition de documents pour différentes sections.

L’exemple de code suivant montre comment ajouter une restriction pour l’ensemble du document, puis supprimer la restriction pour l’une des sections:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Insert two sections with some text.
auto doc = System::MakeObject<Document>();
auto builder = System::MakeObject<DocumentBuilder>(doc);
builder->Writeln(u"Section 1. Unprotected.");
builder->InsertBreak(BreakType::SectionBreakContinuous);
builder->Writeln(u"Section 2. Protected.");
// Section protection only works when document protection is turned and only editing in form fields is allowed.
doc->Protect(ProtectionType::AllowOnlyFormFields, u"password");
// By default, all sections are protected, but we can selectively turn protection off.
doc->get_Sections()->idx_get(0)->set_ProtectedForForms(false);
doc->Save(ArtifactsDir + u"DocumentProtection.UnrestrictedSection.docx");
doc = System::MakeObject<Document>(ArtifactsDir + u"DocumentProtection.UnrestrictedSection.docx");
ASSERT_FALSE(doc->get_Sections()->idx_get(0)->get_ProtectedForForms());
ASSERT_TRUE(doc->get_Sections()->idx_get(1)->get_ProtectedForForms());