Ogranicz Edycję Dokumentów
Czasami może być konieczne ograniczenie możliwości edycji dokumentu i zezwolenie tylko na określone działania z nim. Może to być przydatne, aby uniemożliwić innym osobom edytowanie poufnych i poufnych informacji w dokumencie.
Aspose.Words umożliwia ograniczenie edycji dokumentu poprzez ustawienie typu ograniczenia. Ponadto Aspose.Words umożliwia również określenie ustawień ochrony przed zapisem dla dokumentu.
W tym artykule wyjaśniono, jak używać Aspose.Words do wybierania typu ograniczenia, jak dodawać lub usuwać ochronę oraz jak tworzyć nieograniczone edytowalne regiony.
Wybierz Typ Ograniczenia Edycji
Aspose.Words pozwala kontrolować sposób ograniczania zawartości za pomocą parametru wyliczenia ProtectionType. Umożliwi to wybranie dokładnego rodzaju ochrony, takiego jak:
- AllowOnlyComments
- AllowOnlyFormFields
- AllowOnlyRevisions
- ReadOnly
- NoProtection
Wszystkie typy są zabezpieczone hasłem, a jeśli to hasło nie zostanie wprowadzone poprawnie, użytkownik nie będzie mógł legalnie zmienić treści dokumentu. Tak więc, jeśli twój dokument zostanie Ci zwrócony bez wymogu podania niezbędnego hasła, jest to znak, że coś jest nie tak.
Jeśli nie ustawiłeś hasła przy wyborze typu zabezpieczeń, inni użytkownicy mogą po prostu zignorować ochronę Twojego dokumentu.
Dodaj Ochronę Dokumentów
Dodanie ochrony do dokumentu to prosty proces, ponieważ wszystko, co musisz zrobić, to zastosować jedną z metod ochrony opisanych w tej sekcji.
Aspose.Words umożliwia ochronę dokumentów przed zmianami przy użyciu metody Protect. Ta metoda nie jest funkcją bezpieczeństwa i nie szyfruje dokumentu.
W Microsoft Word możesz ograniczyć edycję w podobny sposób, używając obu:
- Ogranicz Edycję (Plik → Informacje → Chroń Dokument)
- Alternatywna funkcja - " Ogranicz edycję “(Recenzja → Chroń → Ogranicz edycję)
Poniższy przykład kodu pokazuje, jak dodać ochronę hasłem do dokumentu:
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"); |
Poniższy przykład kodu pokazuje, jak ograniczyć edycję w dokumencie, aby możliwa była tylko edycja w polach formularza:
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"); |
Usuń Ochronę Dokumentów
Aspose.Words umożliwia usunięcie ochrony z dokumentu za pomocą prostej i bezpośredniej modyfikacji dokumentu. Możesz usunąć ochronę dokumentu bez znajomości rzeczywistego hasła lub podać prawidłowe hasło, aby odblokować dokument za pomocą metody Unprotect. Oba sposoby usuwania nie mają różnicy.
Poniższy przykład kodu pokazuje, jak usunąć ochronę z dokumentu:
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"); |
Określ Nieograniczone Edytowalne Regiony
Możesz ograniczyć edycję dokumentu i jednocześnie zezwolić na zmiany w wybranych jego częściach. Tak więc każdy, kto otworzy Twój dokument, będzie mógł uzyskać dostęp do tych nieograniczonych części i wprowadzić zmiany w treści.
Aspose.Words umożliwia zaznaczanie części, które można zmienić w dokumencie przy użyciu metod StartEditableRange i EndEditableRange.
Poniższy przykład kodu pokazuje, jak oznaczyć cały dokument jako Tylko do odczytu i określić w nim edytowalne regiony:
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"); |
Możesz także wybrać różne ograniczenia edycji dokumentów dla różnych sekcji.
Poniższy przykład kodu pokazuje, jak dodać ograniczenie dla całego dokumentu, a następnie usunąć ograniczenie dla jednej z sekcji:
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()); |