Documentbewerking Beperken

Soms moet u de mogelijkheid om een document te bewerken beperken en alleen bepaalde acties ermee toestaan. Dit kan handig zijn om te voorkomen dat andere mensen gevoelige en vertrouwelijke informatie in uw document bewerken.

Met Aspose.Words kunt u het bewerken van een document beperken door een beperkingstype in te stellen. Daarnaast kunt u met Aspose.Words ook schrijfbeveiligingsinstellingen opgeven voor een document.

In dit artikel wordt uitgelegd hoe u Aspose.Words kunt gebruiken om een beperkingstype te selecteren, hoe u bescherming kunt toevoegen of verwijderen en hoe u onbeperkte bewerkbare gebieden kunt maken.

Selecteer Het Type Bewerkingsbeperking

Met Aspose.Words kunt u bepalen hoe u de inhoud beperkt met behulp van de parameter ProtectionType opsomming. Hiermee kunt u een exact type bescherming selecteren, zoals de volgende:

  • AllowOnlyComments
  • AllowOnlyFormFields
  • AllowOnlyRevisions
  • ReadOnly
  • NoProtection

Alle typen zijn beveiligd met een wachtwoord en als dit wachtwoord niet correct wordt ingevoerd, kan een gebruiker de inhoud van uw document niet legaal wijzigen. Als uw document dus aan u wordt geretourneerd zonder dat u het vereiste wachtwoord hoeft op te geven, is dit een teken dat er iets mis is.

Als u geen wachtwoord hebt ingesteld bij het kiezen van het beveiligingstype, kunnen andere gebruikers de bescherming van uw document gewoon negeren.

Documentbeveiliging Toevoegen

Het toevoegen van bescherming aan uw document is een eenvoudig proces, omdat u alleen een van de beveiligingsmethoden in deze sectie hoeft toe te passen.

Met Aspose.Words kunt u uw documenten beschermen tegen wijzigingen met behulp van de methode Protect. Deze methode is geen beveiligingsfunctie en versleutelt een document niet.

Het volgende codevoorbeeld laat zien hoe u wachtwoordbeveiliging aan uw document kunt toevoegen:

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");

Het volgende codevoorbeeld laat zien hoe u het bewerken in een document kunt beperken, zodat alleen bewerken in formuliervelden mogelijk is:

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");

Documentbeveiliging Verwijderen

Met Aspose.Words kunt u de bescherming van een document verwijderen met eenvoudige en directe documentaanpassing. U kunt de documentbeveiliging verwijderen zonder het werkelijke wachtwoord te kennen of het juiste wachtwoord opgeven om het document te ontgrendelen met behulp van de methode Unprotect. Beide manieren van verwijderen hebben geen verschil.

Het volgende codevoorbeeld laat zien hoe u bescherming uit uw document kunt verwijderen:

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");

Onbeperkte Bewerkbare Regio ' S Opgeven

U kunt het bewerken van uw document beperken en tegelijkertijd wijzigingen in geselecteerde delen ervan toestaan. Iedereen die uw document opent, heeft dus toegang tot deze onbeperkte delen en kan wijzigingen aanbrengen in de inhoud.

Met Aspose.Words kunt u de delen markeren die in uw document kunnen worden gewijzigd met behulp van de methoden StartEditableRange en EndEditableRange.

Het volgende codevoorbeeld laat zien hoe u het hele document als alleen-lezen kunt markeren en bewerkbare gebieden erin kunt opgeven:

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");

U kunt ook verschillende beperkingen voor het bewerken van documenten voor verschillende secties kiezen.

Het volgende codevoorbeeld toont hoe u een beperking voor het hele document toevoegt en vervolgens de beperking voor een van de secties verwijdert:

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());