Python'da Sunum Özelliklerini Yönetme

Giriş

Aspose.Slides belge özelliklerinin iki türünü destekler: Built-in ve Custom. Bu özellik türlerine Aspose.Slides API’si aracılığıyla kolayca erişilebilir ve yönetilebilir.

Aspose.Slides, sunum belge özellikleriyle çalışmanıza DocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/documentproperties/ sınıfı üzerinden olanak tanır. Bu sınıfın bir örneği Presentation.getDocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/presentation/#getDocumentProperties tarafından döndürülür. Aşağıdaki örnekler bu özelliklerin nasıl okunacağını, değiştirileceğini ve yönetileceğini gösterir.

PowerPoint’ta Belge Özellikleri

Microsoft PowerPoint 2007, sunum dosyalarının belge özelliklerini yönetmenize olanak tanır. Aşağıda gösterildiği gibi Office simgesine tıklayın ve Prepare | Properties | Advanced Properties seçeneğini seçin:

Gelişmiş Özellikler menüsü öğesini seçme
PowerPoint belge özellikleri

Advanced Properties seçtikten sonra, PowerPoint dosyasının belge özelliklerini yönetebileceğiniz bir iletişim kutusu görüntülenir:

Özellikler İletişim Kutusu
PowerPoint belge özellikleri

Properties Dialog General, Summary, Statistics, Contents ve Custom gibi sekmeler içerir. Bu sekmeler, PowerPoint dosyaları hakkında farklı türde bilgiler yapılandırmanıza olanak tanır. Özel özellikleri yönetmek için Custom sekmesini kullanın.

Aspose.Slides for Python via Java Kullanarak Belge Özellikleriyle Çalışma

Yukarıda açıklandığı gibi, Aspose.Slides for Python via Java hem Built-in hem de Custom belge özelliklerini destekler. DocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/documentproperties/ sınıfı, bir sunum dosyasıyla ilişkili belge özelliklerini temsil eder.

Bu özelliklere Presentation.getDocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/presentation/#getDocumentProperties ile erişin.

Şifreli Bir Sunumdan Genel Özellikleri Okuma

Açma parolası, genellikle sunum içeriğini ve belge özelliklerini korur. ProtectionManager.setEncryptDocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/protectionmanager/#setEncryptDocumentProperties‘a false geçirilerek bir sunum şifrelendiğinde, belge özellikleri genel kalır. Bir uygulama daha sonra LoadOptions.setOnlyLoadDocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/loadoptions/#setOnlyLoadDocumentProperties‘a true geçirerek açma parolasını sağlamadan genel üst verileri okuyabilir.

Belge‑özellikleri‑yalnızca seçeneği, Aspose.Slides’ın neyi yüklediğini kontrol eder; hiçbir şeyi şifre çözmez. Özellikler şifreleme içinde dahil edilmişse, parolasız yükleme başarısız olur. Sunum şifrelenmemişse, seçenek yok sayılır ve tam sunum yüklenir.

Aşağıdaki örnek, ProtectionManager.isOnlyDocumentPropertiesLoadedhttps://reference.aspose.com/slides/tr/python-java/aspose.slides/protectionmanager/#isOnlyDocumentPropertiesLoaded aracılığıyla yükleme modunu doğrular ve ardından Presentation.getDocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/presentation/#getDocumentProperties ile yerleşik özellikleri okur:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, LoadOptions

load_options = LoadOptions()
load_options.setOnlyLoadDocumentProperties(True)

presentation = Presentation("public-properties-encrypted.pptx", load_options)
try:
    if presentation.getProtectionManager().isOnlyDocumentPropertiesLoaded():
        properties = presentation.getDocumentProperties()

        print("Author: ", properties.getAuthor())
        print("Title: ", properties.getTitle())
        print("Keywords: ", properties.getKeywords())
    else:
        print("The presentation was not loaded in document-properties-only mode.")

finally:
    presentation.dispose()

Bu modda slayt içeriği yüklenmez. Slaytlar, ana şablonlar, düzenler, şekiller, medya ve diğer sunum nesneleri kullanılamaz. Uygulamalar, tam sunum nesne modelini gerektiren bir işlem yapmadan önce her zaman ProtectionManager.isOnlyDocumentPropertiesLoadedhttps://reference.aspose.com/slides/tr/python-java/aspose.slides/protectionmanager/#isOnlyDocumentPropertiesLoaded kontrol etmelidir.

Şifreli Bir Sunumun Özelliklerini Güncelleme

Şifreli bir PPTX dosyası için, belge‑özellikleri‑yalnızca modunda yüklü bir sunum, yalnızca genel üst verileri okumak içindir. Aspose.Slides, bu yalnızca‑üst‑veri nesnesindeki değiştirilen özellikleri kaydedemez; çünkü genel özellikler şifreli sunum içindeki ilgili verilerle tutarlı olmalıdır. Bu nedenle güncelleme, doğru açma parolasını sağlayarak tam yükleme gerektirir.

Aşağıdaki örnek, LoadOptions.setPasswordhttps://reference.aspose.com/slides/tr/python-java/aspose.slides/loadoptions/#setPassword ile sunumu açar, genel yerleşik özellikleri günceller ve sonucu kaydeder. Ardından PresentationInfo.isEncryptedhttps://reference.aspose.com/slides/tr/python-java/aspose.slides/presentationinfo/#isEncrypted kullanarak şifrelemenin korunduğunu doğrular ve yeni değerleri kontrol etmek için parolasız olarak genel üst verileri tekrar açar:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, LoadOptions, PresentationFactory, SaveFormat

input_path = "public-properties-encrypted.pptx"
output_path = "updated-public-properties-encrypted.pptx"

load_options = LoadOptions()
load_options.setPassword("open_password")

presentation = Presentation(input_path, load_options)
try:
    presentation.getDocumentProperties().setTitle("Updated Product Roadmap")
    presentation.getDocumentProperties().setKeywords("roadmap, planning, indexed")
    presentation.save(output_path, SaveFormat.Pptx)
finally:
    presentation.dispose()

presentation_info = PresentationFactory.getInstance().getPresentationInfo(output_path)
print("The presentation is encrypted: ", presentation_info.isEncrypted())

metadata_load_options = LoadOptions()
metadata_load_options.setOnlyLoadDocumentProperties(True)

metadata_presentation = Presentation(output_path, metadata_load_options)
try:
    if metadata_presentation.getProtectionManager().isOnlyDocumentPropertiesLoaded():
        print("Title: ", metadata_presentation.getDocumentProperties().getTitle())
        print("Keywords: ", metadata_presentation.getDocumentProperties().getKeywords())
    else:
        print("The presentation was not loaded in document-properties-only mode.")

finally:
    metadata_presentation.dispose()

Bir uygulama sunum içeriğini şifreleyemiyor veya yükleyemiyorsa, şifreli bir PPTX dosyasının genel özelliklerini yalnızca okuma‑yazma olarak değerlendirmelidir.

Yerleşik Özelliklere Erişim

DocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/documentproperties/ tarafından sunulan yerleşik özellikler şunlardır: Creator (Yazar), Description, Created (Oluşturulma Tarihi), Modified (Değiştirilme Tarihi), Printed (Son Yazdırma Tarihi), LastModifiedBy, Keywords, SharedDoc (Farklı üreticiler arasında paylaşılıyor mu?), PresentationFormat, Subject ve Title.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, DocumentProperties

# Sunumu temsil eden Presentation sınıfını örnekleyin
presentation = Presentation("Presentation.pptx")
try:
    # Presentation ile ilişkili DocumentProperties nesnesine bir referans oluşturun
    properties = presentation.getDocumentProperties()

    # Yerleşik özellikleri görüntüle
    print("Category : ", properties.getCategory())
    print("Current Status : ", properties.getContentStatus())
    print("Creation Date : ", properties.getCreatedTime())
    print("Author : ", properties.getAuthor())
    print("Description : ", properties.getComments())
    print("KeyWords : ", properties.getKeywords())
    print("Last Modified By : ", properties.getLastSavedBy())
    print("Supervisor : ", properties.getManager())
    print("Modified Date : ", properties.getLastSavedTime())
    print("Presentation Format : ", properties.getPresentationFormat())
    print("Last Print Date : ", properties.getLastPrinted())
    print("Is Shared between producers : ", properties.getSharedDoc())
    print("Subject : ", properties.getSubject())
    print("Title : ", properties.getTitle())
finally:
    presentation.dispose()

Yerleşik Özellikleri Değiştirme

Yerleşik özellikleri değiştirmek, onlara erişmek kadar basittir. Yeni bir değer atamak için ilgili ayarlayıcıyı kullanın. Aşağıdaki örnek, Aspose.Slides for Python via Java kullanarak yerleşik belge özelliklerini değiştirir.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, DocumentProperties

presentation = Presentation("Presentation.pptx")
try:
    # Presentation ile ilişkili DocumentProperties nesnesine bir referans oluşturun
    properties = presentation.getDocumentProperties()

    # Yerleşik özellikleri ayarlayın
    properties.setAuthor("Aspose.Slides for Python via Java")
    properties.setTitle("Modifying Presentation Properties")
    properties.setSubject("Aspose Subject")
    properties.setComments("Aspose Description")
    properties.setManager("Aspose Manager")

    # Sunumunuzu bir dosyaya kaydedin
    presentation.save("DocProps.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Bu örnek, aşağıda gösterildiği gibi sunumun yerleşik özelliklerini değiştirir:

Değişiklikten Sonra Yerleşik Belge Özellikleri
PowerPoint belge özellikleri

Özel Belge Özellikleri Ekleme

Aspose.Slides for Python via Java, geliştiricilerin sunumlara özel belge özellikleri eklemesine de izin verir. Aşağıdaki örnek üç özel özellik ekler, ardından 2. indekste saklanan adı bulur ve bu özelliği kaldırır; böylece kaydedilen sunum iki özelliği tutar. Özel özellikler alfabetik sırayla indekslenir, eklenme sırasına göre değil.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation()
try:
    # Belge Özelliklerini Almak
    properties = presentation.getDocumentProperties()

    # Özel özellikler ekleme
    properties.set_Item("New Custom", jpype.JInt(12))
    properties.set_Item("My Name", "Mudassir")
    properties.set_Item("Custom", jpype.JInt(124))

    # Belirli bir indeksdeki özellik adını alıyor
    property_name = properties.getCustomPropertyName(2)

    # Seçilen özelliği kaldırma
    properties.removeCustomProperty(property_name)

    # Sunumu kaydetme
    presentation.save("CustomDemo.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()
Eklenmiş Özel Belge Özellikleri
PowerPoint belge özellikleri

Özel Özelliklere Erişim ve Değiştirme

Aspose.Slides for Python via Java, geliştiricilerin özel özellik değerlerine erişmesine de imkan tanır. Aşağıdaki örnek, bir sunumdaki tüm özel özelliklere nasıl erişileceğini ve değiştirileceğini gösterir.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, DocumentProperties

presentation = Presentation("Presentation.pptx")
try:
    # Presentation ile ilişkili DocumentProperties nesnesine bir referans oluşturun
    properties = presentation.getDocumentProperties()

    # Özel özelliklere eriş ve değiştir
    for i in range(properties.getCountOfCustomProperties()):
        property_name = properties.getCustomPropertyName(i)
        # Özel özelliklerin adlarını ve değerlerini görüntüle
        print("Custom Property Name : ", property_name)
        print("Custom Property Value : ", properties.get_Item(property_name))

        # Özel özelliklerin değerlerini değiştir
        properties.set_Item(property_name, f"New Value {i + 1}")

    # Sunumunuzu bir dosyaya kaydedin
    presentation.save("CustomDemoModified.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Bu örnek, PPTX sunumunun özel özelliklerini değiştirir. Aşağıdaki figürler, değişiklik öncesi ve sonrası sunum özel özelliklerini gösterir:

Değişiklik Öncesi Özel Özellikler
PowerPoint belge özellikleri
Değişiklik Sonrası Özel Özellikler
PowerPoint belge özellikleri

Gelişmiş Belge Özellikleri

İki yeni yöntem readDocumentProperties ve updateDocumentProperties, PresentationInfo sınıfına eklenmiştir. Bu yöntemler, belge özelliklerine hızlı erişim sağlar ve tüm sunumu yüklemeden özellikleri değiştirme ve güncelleme imkanı tanır.

Özellikleri yükleme, değerlerini değiştirme ve belgeyi güncelleme tipik iş akışı aşağıdaki gibi uygulanabilir:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PresentationFactory

# Sunum bilgilerini oku
presentation_info = PresentationFactory.getInstance().getPresentationInfo("presentation.pptx")

# Mevcut özellikleri al
properties = presentation_info.readDocumentProperties()

# Yazar ve Başlık alanlarının yeni değerlerini ayarla
properties.setAuthor("New Author")
properties.setTitle("New Title")

# Sunumu yeni değerlerle güncelle
presentation_info.updateDocumentProperties(properties)
presentation_info.writeBindedPresentation("presentation.pptx")

Belirli bir sunumun özelliklerini şablon olarak kullanıp diğer sunumlarda özellikleri güncellemenin başka bir yolu da vardır:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PresentationFactory

presentation_info = PresentationFactory.getInstance().getPresentationInfo("template.pptx")
template = presentation_info.readDocumentProperties()

template.setAuthor("Template Author")
template.setTitle("Template Title")
template.setCategory("Template Category")
template.setKeywords("Keyword1, Keyword2, Keyword3")
template.setCompany("Our Company")
template.setComments("Created from template")
template.setContentType("Template Content")
template.setSubject("Template Subject")

for path in ["doc1.pptx", "doc2.odp", "doc3.ppt"]:
    presentation_to_update = PresentationFactory.getInstance().getPresentationInfo(path)
    presentation_to_update.updateDocumentProperties(template)
    presentation_to_update.writeBindedPresentation(path)
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PresentationFactory

def update_by_template(path, template):
    presentation_to_update = PresentationFactory.getInstance().getPresentationInfo(path)
    presentation_to_update.updateDocumentProperties(template)
    presentation_to_update.writeBindedPresentation(path)

Sıfırdan yeni bir şablon oluşturulabilir ve ardından birden fazla sunumu güncellemek için kullanılabilir:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PresentationFactory, DocumentProperties

template = DocumentProperties()

template.setAuthor("Template Author")
template.setTitle("Template Title")
template.setCategory("Template Category")
template.setKeywords("Keyword1, Keyword2, Keyword3")
template.setCompany("Our Company")
template.setComments("Created from template")
template.setContentType("Template Content")
template.setSubject("Template Subject")

for path in ["doc1.pptx", "doc2.odp", "doc3.ppt"]:
    presentation_to_update = PresentationFactory.getInstance().getPresentationInfo(path)
    presentation_to_update.updateDocumentProperties(template)
    presentation_to_update.writeBindedPresentation(path)

Düzeltme Diline Ayar

Aspose.Slides, PortionFormat.setLanguageIdhttps://reference.aspose.com/slides/tr/python-java/aspose.slides/portionformat/#setLanguageId metodunu sağlar; bu metod, bir PowerPoint belgesi için düzeltme dilini ayarlamanıza olanak tanır. Düzeltme dili, sunumdaki yazım ve dilbilgisi denetiminin yapılacağı dildir.

Bu Python kodu, bir PowerPoint için düzeltme dilinin nasıl ayarlanacağını gösterir:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, Portion, FontData

pptx_file_name = "presentation.pptx"

presentation = Presentation(pptx_file_name)
try:
    auto_shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)

    paragraph = auto_shape.getTextFrame().getParagraphs().get_Item(0)
    paragraph.getPortions().clear()

    new_portion = Portion()

    font = FontData("SimSun")
    portion_format = new_portion.getPortionFormat()
    portion_format.setComplexScriptFont(font)
    portion_format.setEastAsianFont(font)
    portion_format.setLatinFont(font)

    portion_format.setLanguageId("zh-CN") # set the Id of a proofing language

    new_portion.setText("1。")
    paragraph.getPortions().add(new_portion)
finally:
    presentation.dispose()

Varsayılan Dile Ayar

Bu Python kodu, tüm bir PowerPoint sunumu için varsayılan dilin nasıl ayarlanacağını gösterir:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, LoadOptions, ShapeType

load_options = LoadOptions()
load_options.setDefaultTextLanguage("en-US")

presentation = Presentation(load_options)
try:
    # Metin içeren bir dikdörtgen şekil ekler
    shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 50)
    shape.getTextFrame().setText("New Text")

    # İlk bölümün dilini kontrol eder
    print(shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getLanguageId())
finally:
    presentation.dispose()

Canlı Örnek

Aspose.Slides API’si aracılığıyla belge özellikleriyle nasıl çalışılacağını görmek için Aspose.Slides Metadata çevrimiçi uygulamasını deneyin:

PowerPoint Üst Verilerini Görüntüle ve Düzenle

SSS

Bir sunumdan yerleşik bir özelliği nasıl kaldırabilirim?

Yerleşik özellikler sunumun ayrılmaz bir parçasıdır ve tamamen kaldırılamaz. Ancak, izin verilen bir özellik ise değerlerini değiştirebilir veya boş bir değere ayarlayabilirsiniz.

Zaten var olan bir özel özelliği eklersem ne olur?

Var olan bir özel özelliği eklediğinizde, mevcut değeri yeni değerle üzerine yazılır. Özelliği önceden kaldırmanıza veya kontrol etmenize gerek yoktur; Aspose.Slides otomatik olarak değeri günceller.

Sunumu tamamen yüklemeden sunum özelliklerine erişebilir miyim?

Evet. PresentationFactory.getPresentationInfohttps://reference.aspose.com/slides/tr/python-java/aspose.slides/presentationfactory/#getPresentationInfo ve ardından PresentationInfo.readDocumentPropertieshttps://reference.aspose.com/slides/tr/python-java/aspose.slides/presentationinfo/#readDocumentProperties kullanarak bir Presentationhttps://reference.aspose.com/slides/tr/python-java/aspose.slides/presentation/ örneği oluşturmadan saklanan belge üst verilerini okuyabilirsiniz. Tam raporlama örneği ve format‑spesifik sınırlamalar için Build a Lightweight Presentation Inventory bölümüne bakın.

Şifreli bir sunumun genel özelliklerini açma parolasını bilmeden okuyabilir miyim?

Evet. Belge‑özelliği şifrelemesi, sunum şifrelenmeden önce devre dışı bırakılmış olmalı ve sunum belge‑özellikleri‑yalnızca modunda yüklenmiş olmalıdır.

Şifreli bir PPTX dosyasını belge‑özellikleri‑yalnızca modunda güncelleyebilir miyim?

Hayır. Genel ve şifreli özellik verileri tutarlı olmalıdır; bu nedenle bir şifreli PPTX dosyasını güncellemek, doğru açma parolasıyla tam yükleme gerektirir.