Belge Düzenlemeyi Kısıtla

Bazen bir belgeyi düzenleme yeteneğinizi sınırlamanız ve belgeyle yalnızca belirli işlemlere izin vermeniz gerekebilir. Bu, diğer kişilerin belgenizdeki hassas ve gizli bilgileri düzenlemesini önlemek için yararlı olabilir.

Aspose.Words, bir kısıtlama türü ayarlayarak bir belgenin düzenlenmesini kısıtlamanıza olanak tanır. Ayrıca Aspose.Words, bir belge için yazma koruması ayarlarını belirlemenize de olanak tanır.

Bu makalede, bir kısıtlama türü seçmek için Aspose.Words’in nasıl kullanılacağı, korumanın nasıl ekleneceği veya kaldırılacağı ve sınırsız düzenlenebilir bölgelerin nasıl oluşturulacağı açıklanmaktadır.

Düzenleme Kısıtlama Türünü Seçin

Aspose.Words, ProtectionType numaralandırma parametresini kullanarak içeriği kısıtlama şeklinizi kontrol etmenize olanak tanır. Bu, aşağıdakiler gibi tam bir koruma türünü seçmenizi sağlayacaktır:

Tüm türler şifre korumalıdır ve bu şifre doğru girilmezse kullanıcı belgenizin içeriğini yasal olarak değiştiremez. Dolayısıyla belgeniz gerekli şifreyi girmenize gerek kalmadan size iade edilirse, bu bir şeylerin ters gittiğinin işaretidir.

Güvenlik türünü seçerken şifre belirlemediyseniz diğer kullanıcılar belgenizin korumasını göz ardı edebilir.

Belge Koruması Ekle

Belgenize koruma eklemek basit bir işlemdir; tek yapmanız gereken bu bölümde ayrıntıları verilen koruma yöntemlerinden birini uygulamaktır.

Aspose.Words, Document.protect yöntemini kullanarak belgelerinizi değişikliklerden korumanıza olanak tanır. Bu yöntem bir güvenlik özelliği değildir ve belgeyi şifrelemez.

Aşağıdaki kod örneği belgenize nasıl parola koruması ekleyeceğinizi gösterir:

import aspose.words as aw

doc = aw.Document()

# Apply document protection.
doc.protect(aw.ProtectionType.NO_PROTECTION, "password")

doc.save(docs_base.artifacts_dir + "DocumentProtection.PasswordProtection.docx");

Aşağıdaki kod örneği, yalnızca form alanlarında düzenlemenin mümkün olması için bir belgede düzenlemenin nasıl kısıtlanacağını gösterir:

import aspose.words as aw

# Insert two sections with some text.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("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(aw.ProtectionType.ALLOW_ONLY_FORM_FIELDS, "password")

# Save the protected document.
doc.save(docs_base.artifacts_dir + "DocumentProtection.AllowOnlyFormFieldsProtect.docx");

Belge Korumasını Kaldır

Aspose.Words, basit ve doğrudan belge değişikliğiyle bir belgedeki korumayı kaldırmanıza olanak tanır. Gerçek şifreyi bilmeden belge korumasını kaldırabilir veya unprotect yöntemini kullanarak belgenin kilidini açmak için doğru şifreyi sağlayabilirsiniz. Her iki çıkarma yönteminin de hiçbir farkı yoktur.

Aşağıdaki kod örneği, belgenizdeki korumanın nasıl kaldırılacağını gösterir:

import aspose.words as aw

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.writeln("Text added to a document.")

# Documents can have protection removed either with no password, or with the correct password.
doc.unprotect()
doc.protect(aw.ProtectionType.READ_ONLY, "newPassword")
doc.unprotect("newPassword")

doc.save(docs_base.artifacts_dir + "DocumentProtection.RemoveDocumentProtection.docx");

Kısıtlanmamış Düzenlenebilir Bölgeleri Belirtin

Belgenizin düzenlenmesini kısıtlayabilir ve aynı zamanda belgenin seçilen kısımlarında değişiklik yapılmasına izin verebilirsiniz. Böylece belgenizi açan herkes bu sınırsız kısımlara ulaşabilecek ve içerikte değişiklik yapabilecektir.

Aspose.Words, belgenizde değiştirilebilecek kısımları start_editable_range ve end_editable_range yöntemlerini kullanarak işaretlemenize olanak sağlar.

Aşağıdaki kod örneği, belgenin tamamının salt okunur olarak nasıl işaretleneceğini ve içinde düzenlenebilir bölgelerin nasıl belirtileceğini gösterir:

import aspose.words as aw

# Upload a document and make it as read-only.
doc = aw.Document(docs_base.my_dir + "Document.docx")
builder = aw.DocumentBuilder(doc)

doc.protect(aw.ProtectionType.READ_ONLY, "MyPassword")

builder.writeln("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.
edRangeStart = builder.start_editable_range()
# An EditableRange object is created for the EditableRangeStart that we just made.
editableRange = edRangeStart.editable_range

# Put something inside the editable range.
builder.writeln("Paragraph inside first editable range")

# An editable range is well-formed if it has a start and an end.
edRangeEnd = builder.end_editable_range()

builder.writeln("This paragraph is outside any editable ranges, and cannot be edited.");

doc.save(docs_base.artifacts_dir + "DocumentProtection.UnrestrictedEditableRegions.docx");

Ayrıca farklı bölümler için farklı belge düzenleme kısıtlamaları da seçebilirsiniz.

Aşağıdaki kod örneği, belgenin tamamı için bir kısıtlamanın nasıl ekleneceğini ve ardından bölümlerden biri için kısıtlamanın nasıl kaldırılacağını gösterir:

import aspose.words as aw

# Insert two sections with some text.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.writeln("Section 1. Unprotected.")
builder.insert_break(aw.BreakType.SECTION_BREAK_CONTINUOUS)
builder.writeln("Section 2. Protected.")

# Section protection only works when document protection is turned and only editing in form fields is allowed.
doc.protect(aw.ProtectionType.ALLOW_ONLY_FORM_FIELDS, "password")

# By default, all sections are protected, but we can selectively turn protection off.
doc.sections[0].protected_for_forms = False
doc.save(docs_base.artifacts_dir + "DocumentProtection.UnrestrictedSection.docx");

doc = aw.Document(docs_base.artifacts_dir + "DocumentProtection.UnrestrictedSection.docx");
self.assertFalse(doc.sections[0].protected_for_forms)
self.assertTrue(doc.sections[1].protected_for_forms);