Batasi Pengeditan Dokumen
Terkadang Anda mungkin perlu membatasi kemampuan untuk mengedit dokumen dan hanya mengizinkan tindakan tertentu dengannya. Ini dapat berguna untuk mencegah orang lain mengedit informasi sensitif dan rahasia dalam dokumen Anda.
Aspose.Words memungkinkan Anda membatasi pengeditan dokumen dengan menetapkan jenis pembatasan. Selain itu, Aspose.Words juga memungkinkan Anda menentukan pengaturan proteksi penulisan untuk dokumen.
Artikel ini menjelaskan cara menggunakan Aspose.Words untuk memilih jenis pembatasan, cara menambah atau menghapus perlindungan, dan cara membuat wilayah yang dapat diedit tanpa batas.
Pilih Jenis Pembatasan Pengeditan
Aspose.Words memungkinkan Anda mengontrol cara Anda membatasi konten menggunakan parameter enumerasi ProtectionType. Ini akan memungkinkan Anda untuk memilih jenis perlindungan yang tepat seperti berikut ini:
- AllowOnlyComments
- AllowOnlyFormFields
- AllowOnlyRevisions
- ReadOnly
- NoProtection
Semua jenis diamankan dengan kata sandi, dan jika kata sandi ini tidak dimasukkan dengan benar, pengguna tidak akan dapat mengubah konten dokumen Anda secara legal. Jadi, jika dokumen Anda dikembalikan kepada Anda tanpa persyaratan untuk memberikan kata sandi yang diperlukan, ini adalah tanda bahwa ada sesuatu yang salah.
Jika Anda tidak menetapkan kata sandi saat memilih jenis keamanan, pengguna lain dapat mengabaikan perlindungan dokumen Anda.
Tambahkan Perlindungan Dokumen
Menambahkan perlindungan ke dokumen Anda adalah proses yang sederhana, karena yang perlu Anda lakukan hanyalah menerapkan salah satu metode perlindungan yang dirinci di bagian ini.
Aspose.Words memungkinkan Anda melindungi dokumen dari perubahan menggunakan metode Protect. Metode ini bukan fitur keamanan dan tidak mengenkripsi dokumen.
Di Microsoft Word, Anda dapat membatasi pengeditan dengan cara yang sama menggunakan keduanya:
- Batasi Pengeditan (File Info Info →
- Fitur alternatif – “Batasi Pengeditan” (Tinjau → Lindungi →
Contoh kode berikut menunjukkan cara menambahkan perlindungan kata sandi ke dokumen Anda:
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"); |
Contoh kode berikut menunjukkan cara membatasi pengeditan dalam dokumen sehingga hanya pengeditan di bidang formulir yang dimungkinkan:
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"); |
Hapus Perlindungan Dokumen
Aspose.Words memungkinkan Anda menghapus perlindungan dari dokumen dengan modifikasi dokumen yang sederhana dan langsung. Anda dapat menghapus perlindungan dokumen tanpa mengetahui kata sandi yang sebenarnya atau memberikan kata sandi yang benar untuk membuka kunci dokumen dengan menggunakan metode Unprotect. Kedua cara menghilangkan tidak memiliki perbedaan.
Contoh kode berikut menunjukkan cara menghapus perlindungan dari dokumen Anda:
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"); |
Tentukan Wilayah yang Tidak Dibatasi dan Dapat Diedit
Anda dapat membatasi pengeditan dokumen Anda dan pada saat yang sama mengizinkan perubahan pada bagian yang dipilih. Jadi, siapa pun yang membuka dokumen Anda akan dapat mengakses bagian yang tidak dibatasi ini dan membuat perubahan pada kontennya.
Aspose.Words memungkinkan Anda menandai bagian-bagian yang dapat diubah dalam dokumen Anda menggunakan metode StartEditableRange dan EndEditableRange.
Contoh kode berikut menunjukkan cara menandai seluruh dokumen sebagai hanya-baca dan menentukan wilayah yang dapat diedit di dalamnya:
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"); |
Anda juga dapat memilih batasan pengeditan dokumen yang berbeda untuk bagian yang berbeda.
Contoh kode berikut menunjukkan cara menambahkan batasan untuk seluruh dokumen, lalu menghapus batasan untuk salah satu bagian:
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()); |