Einschränken von Präsentationsbearbeitungen mit Form‑Sperren in Python
Hintergrund
Eine häufige Verwendung von Aspose.Slides für Python über .NET besteht darin, PowerPoint‑Präsentationen (PPTX) zu erstellen, zu aktualisieren und zu speichern, um sie in einen automatisierten Workflow einzubinden. Wenn Benutzer diese Präsentationen erhalten, kann das Einschränken von Änderungen an Formen dabei helfen, das beabsichtigte Layout und den Inhalt zu erhalten.
Dieser Artikel erklärt, wie Formen auf Folien organisiert sind und wie Form‑Sperren in einer PPTX‑Präsentation angewendet und entfernt werden. Diese Sperren ermöglichen es, bestimmte Bearbeitungsaktionen für einzelne Formen einzuschränken.
Zusammensetzung einer Folie
Eine Folie einer Präsentation besteht aus Komponenten wie Autoformen, Tabellen, OLE‑Objekten, Gruppierten Formen, Bildrahmen, Video‑rahmen, Verbindern und anderen Elementen, die zum Erstellen einer Präsentation verwendet werden. In Aspose.Slides für Python über .NET wird jedes Element einer Folie durch ein Objekt dargestellt, das von der Klasse Shape erbt.
Verschiedene Formtypen bieten unterschiedliche Sperroptionen. Die Klasse BaseShapeLock ist die Basisklasse für Form‑Sperren. Aspose.Slides für Python über .NET stellt die folgenden Sperrklassen bereit:
- AutoShapeLock sperrt Autoformen.
- ConnectorLock sperrt Verbinderformen.
- GraphicalObjectLock sperrt grafische Objekte.
- GroupShapeLock sperrt Gruppierte Formen.
- PictureFrameLock sperrt Bildrahmen.
Um Sperren über eine Presentation hinweg anzuwenden, iterieren Sie durch deren Folien und setzen die entsprechenden Sperren für jede unterstützte Form.
Schutz anwenden und entfernen
Form‑Sperren beschränken Vorgänge wie das Auswählen, Verschieben und Ändern der Größe von Formen. Sie machen die gesamte Präsentation nicht uneditierbar.
Schutz auf PPTX‑Formen anwenden
Aspose.Slides für Python über .NET stellt die Klasse Shape zur Verfügung, um mit Formen auf einer Folie zu arbeiten.
Das Beispiel setzt select_locked, position_locked und size_locked für Autoformen auf True, mit entsprechenden Sperren für Gruppierte Formen, Verbinder und Bildrahmen. Verbinder verwenden position_move für die Bewegung; Gruppen verwenden zudem grouping_locked , um das Gruppieren zu beschränken.
Das Beispiel lädt eine vorhandene PPTX‑Präsentation, prüft die Formen in der Form‑Sammlung jeder Folie und speichert eine Kopie mit den angewendeten Einschränkungen. Formen, die nicht zu den vier behandelten Typen gehören, bleiben unverändert. Die Schleife durchläuft nicht die Kindformen innerhalb einer Gruppe.
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
for slide in presentation.slides:
for shape in slide.shapes:
if isinstance(shape, slides.AutoShape):
shape.shape_lock.position_locked = True
shape.shape_lock.select_locked = True
shape.shape_lock.size_locked = True
elif isinstance(shape, slides.GroupShape):
shape.shape_lock.grouping_locked = True
shape.shape_lock.position_locked = True
shape.shape_lock.select_locked = True
shape.shape_lock.size_locked = True
elif isinstance(shape, slides.Connector):
shape.shape_lock.position_move = True
shape.shape_lock.select_locked = True
shape.shape_lock.size_locked = True
elif isinstance(shape, slides.PictureFrame):
shape.shape_lock.position_locked = True
shape.shape_lock.select_locked = True
shape.shape_lock.size_locked = True
presentation.save("ProtectedSample.pptx", slides.export.SaveFormat.PPTX)
Schutz entfernen
Um eine Form‑Sperre zu entfernen, setzen Sie deren Wert auf False. Das folgende Beispiel lädt eine Präsentation mit Form‑Sperren und entfernt die Auswahl‑, Bewegungs‑ und Größenänderungs‑Einschränkungen über AutoShapeLock, GroupShapeLock, ConnectorLock und PictureFrameLock. Zusätzlich wird GroupShapeLock.grouping_locked zurückgesetzt und eine Kopie der Präsentation gespeichert. Andere Sperreinstellungen bleiben unverändert.
import aspose.slides as slides
with slides.Presentation("ProtectedSample.pptx") as presentation:
for slide in presentation.slides:
for shape in slide.shapes:
if isinstance(shape, slides.AutoShape):
shape.shape_lock.position_locked = False
shape.shape_lock.select_locked = False
shape.shape_lock.size_locked = False
elif isinstance(shape, slides.GroupShape):
shape.shape_lock.grouping_locked = False
shape.shape_lock.position_locked = False
shape.shape_lock.select_locked = False
shape.shape_lock.size_locked = False
elif isinstance(shape, slides.Connector):
shape.shape_lock.position_move = False
shape.shape_lock.select_locked = False
shape.shape_lock.size_locked = False
elif isinstance(shape, slides.PictureFrame):
shape.shape_lock.position_locked = False
shape.shape_lock.select_locked = False
shape.shape_lock.size_locked = False
presentation.save("RemovedProtectionSample.pptx", slides.export.SaveFormat.PPTX)
Fazit
Aspose.Slides für Python über .NET ermöglicht es, bestimmte Bearbeitungsaktionen für einzelne Formen einzuschränken oder dieselben Einschränkungen über Folien hinweg anzuwenden. Wählen Sie die von jedem Formtyp unterstützten Sperren aus und setzen Sie deren Werte auf False, wenn Sie diese Einschränkungen entfernen möchten.
FAQ
Kann ich Form‑Sperren und Passwortschutz in derselben Präsentation kombinieren?
Ja. Form‑Sperren beschränken bestimmte Bearbeitungsaktionen, während password protection das Öffnen oder Ändern der Präsentation einschränken kann. Sie können beide in derselben Datei verwenden.
Kann ich die Bearbeitung auf bestimmten Folien einschränken, ohne andere zu beeinflussen?
Ja. Wenden Sie Sperren nur auf die Formen der ausgewählten Folien an. Dadurch werden die Sperreinstellungen anderer Folien nicht verändert.
Wie kann ich Sperren auf einzelne Formen innerhalb einer Gruppe anwenden?
Iterieren Sie durch die shapes‑Sammlung der Gruppe und wenden Sie die entsprechenden Sperren auf jede Kindform an. Wiederholen Sie dies für verschachtelte Gruppen. Die obigen Beispiele verarbeiten nur die Form‑Sammlung der Folie, sodass sie keine Sperren für einzelne Gruppenmitglieder setzen.