Omezit Úpravy Dokumentů
Někdy možná budete muset omezit možnost úpravy dokumentu a povolit s ním pouze určité akce. To může být užitečné, aby se zabránilo ostatním lidem v úpravách citlivých a důvěrných informací ve vašem dokumentu.
Aspose.Words umožňuje omezit úpravy dokumentu nastavením typu omezení. Kromě toho Aspose.Words také umožňuje zadat nastavení ochrany proti zápisu pro dokument.
Tento článek vysvětluje, jak použít Aspose.Words k výběru typu omezení, jak přidat nebo odebrat ochranu a jak vytvořit neomezené editovatelné oblasti.
Vyberte Typ Omezení Úprav
Aspose.Words umožňuje řídit způsob omezení obsahu pomocí parametru ProtectionType výčtu. To vám umožní vybrat přesný typ ochrany, například následující:
- AllowOnlyComments
- AllowOnlyFormFields
- AllowOnlyRevisions
- ReadOnly
- NoProtection
Všechny typy jsou zabezpečeny heslem a pokud toto heslo není zadáno správně, uživatel nebude moci legálně změnit obsah vašeho dokumentu. Pokud je Vám tedy dokument vrácen bez požadavku na poskytnutí potřebného hesla, je to známka toho, že něco není v pořádku.
Pokud jste při výběru typu zabezpečení nenastavili heslo, ostatní uživatelé mohou ochranu vašeho dokumentu jednoduše ignorovat.
Přidat Ochranu Dokumentů
Přidání ochrany do dokumentu je jednoduchý proces, protože vše, co musíte udělat, je použít jednu z metod ochrany podrobně popsaných v této části.
Aspose.Words umožňuje chránit vaše dokumenty před změnami pomocí metody Protect. Tato metoda není funkcí zabezpečení a nešifruje dokument.
V Microsoft Word můžete omezit úpravy podobným způsobem pomocí obou:
- Omezit Úpravy (Soubor → Informace → Chránit Dokument)
- Alternativní funkce - “omezit úpravy” (recenze → chránit → omezit úpravy)
Následující příklad kódu ukazuje, jak do dokumentu přidat ochranu heslem:
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"); |
Následující příklad kódu ukazuje, jak omezit úpravy v dokumentu, takže je možné pouze úpravy v polích formuláře:
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"); |
Odebrat Ochranu Dokumentů
Aspose.Words umožňuje odstranit ochranu z dokumentu jednoduchou a přímou úpravou dokumentu. Ochranu dokumentu můžete buď odebrat, aniž byste znali skutečné heslo, nebo zadat správné heslo pro odemknutí dokumentu pomocí metody Unprotect. Oba způsoby odstraňování nemají žádný rozdíl.
Následující příklad kódu ukazuje, jak odebrat ochranu 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"); |
Určete Neomezené Editovatelné Oblasti
Můžete omezit editaci dokumentu a zároveň povolit změny ve vybraných částech dokumentu. Takže každý, kdo otevře váš dokument, bude mít přístup k těmto neomezeným částem a provede změny v obsahu.
Aspose.Words umožňuje označit části, které lze v dokumentu změnit pomocí metod StartEditableRange a EndEditableRange.
Následující příklad kódu ukazuje, jak označit celý dokument jako pouze pro čtení a určit v něm upravitelné oblasti:
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"); |
Můžete také zvolit různá omezení úprav dokumentů pro různé sekce.
Následující příklad kódu ukazuje, jak přidat omezení pro celý dokument a potom odebrat omezení pro jednu z oddílů:
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()); |