Verwalten von Präsentationskommentaren in Python
In PowerPoint erscheint ein Kommentar als Hinweis oder Anmerkung auf einer Folie. Wenn ein Kommentar angeklickt wird, werden dessen Inhalte oder Nachrichten angezeigt.
Warum Kommentare zu Präsentationen hinzufügen?
Sie können Kommentare verwenden, um Feedback zu geben oder mit Ihren Kollegen zu kommunizieren, wenn Sie Präsentationen überprüfen.
Damit Sie Kommentare in PowerPoint‑Präsentationen verwenden können, bietet Aspose.Slides für Python über .NET
- Die Presentation Klasse, die die Sammlungen von Autoren enthält (aus der Eigenschaft CommentAuthorCollection). Die Autoren fügen Folien Kommentare hinzu.
- Die CommentCollection Klasse, die die Sammlung von Kommentaren für einzelne Autoren enthält.
- Die Comment Klasse, die Informationen zu Autoren und deren Kommentaren enthält: wer den Kommentar hinzugefügt hat, wann der Kommentar hinzugefügt wurde, die Position des Kommentars usw.
- Die CommentAuthor Klasse, die Informationen zu einzelnen Autoren enthält: den Namen des Autors, seine Initialen, mit dem Namen des Autors verbundene Kommentare usw.
Folienkommentar hinzufügen
Dieser Python‑Code zeigt, wie Sie einen Kommentar zu einer Folie in einer PowerPoint‑Präsentation hinzufügen:
import aspose.slides as slides
import aspose.pydrawing as draw
import datetime
# Instanziiert die Presentation-Klasse
with slides.Presentation() as presentation:
# Fügt eine leere Folie hinzu
presentation.slides.add_empty_slide(presentation.layout_slides[0])
# Fügt einen Autor hinzu
author = presentation.comment_authors.add_author("Jawad", "MF")
# Setzt die Position für Kommentare
point = draw.PointF(0.2, 0.2)
# Fügt einen Folienkommentar für einen Autor auf Folie 1 hinzu
author.comments.add_comment("Hello Jawad, this is slide comment", presentation.slides[0], point, datetime.date.today())
# Fügt einen Folienkommentar für einen Autor auf Folie 2 hinzu
author.comments.add_comment("Hello Jawad, this is second slide comment", presentation.slides[1], point, datetime.date.today())
# Zugriff auf ISlide 1
slide = presentation.slides[0]
# Wenn null als Argument übergeben wird, werden Kommentare aller Autoren zur ausgewählten Folie gebracht
comments = slide.get_slide_comments(author)
# Greift auf den Kommentar mit Index 0 für Folie 1 zu
str = comments[0].text
presentation.save("Comments_out.pptx", slides.export.SaveFormat.PPTX)
if comments.length > 0:
# Wählt die Kommentarsammlung des Autors am Index 0 aus
commentCollection = comments[0].author.comments
print(commentCollection[0].text)
Auf Folienkommentare zugreifen
Dieser Python‑Code zeigt, wie Sie auf einen bestehenden Kommentar zu einer Folie in einer PowerPoint‑Präsentation zugreifen:
import aspose.slides as slides
# Instanziiert die Presentation-Klasse
with slides.Presentation("Comments1.pptx") as presentation:
for author in presentation.comment_authors:
for comment in author.comments:
print("ISlide :" + str(comment.slide.slide_number) +
" has comment: " + comment.text +
" with Author: " + comment.author.name +
" posted on time :" + str(comment.created_time) + "\n")
Kommentare beantworten
Ein übergeordneter Kommentar ist der oberste bzw. ursprüngliche Kommentar in einer Hierarchie von Kommentaren oder Antworten. Mit der parent_comment‑Eigenschaft (aus der Comment Klasse) können Sie einen übergeordneten Kommentar setzen oder abrufen.
Dieser Python‑Code zeigt, wie Sie Kommentare hinzufügen und Antworten darauf erhalten:
import aspose.slides as slides
import aspose.pydrawing as draw
import datetime
with slides.Presentation() as pres:
# Fügt einen Kommentar hinzu
author1 = pres.comment_authors.add_author("Author_1", "A.A.")
comment1 = author1.comments.add_comment("comment1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
# Fügt eine Antwort zu Kommentar1 hinzu
author2 = pres.comment_authors.add_author("Autror_2", "B.B.")
reply1 = author2.comments.add_comment("reply 1 for comment 1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
reply1.parent_comment = comment1
# Fügt eine weitere Antwort zu Kommentar1 hinzu
reply2 = author2.comments.add_comment("reply 2 for comment 1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
reply2.parent_comment = comment1
# Fügt eine Antwort auf eine vorhandene Antwort hinzu
subReply = author1.comments.add_comment("subreply 3 for reply 2", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
subReply.parent_comment = reply2
comment2 = author2.comments.add_comment("comment 2", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
comment3 = author2.comments.add_comment("comment 3", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
reply3 = author1.comments.add_comment("reply 4 for comment 3", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
reply3.parent_comment = comment3
# Gibt die Kommentarhierarchie in der Konsole aus
slide = pres.slides[0]
comments = slide.get_slide_comments(None)
for i in range(comments.length):
comment = comments[i]
while comment.parent_comment is not None:
print("\t")
comment = comment.parent_comment
print(comments[i].author.name + " : " + comments[i].text)
print("\r\n")
pres.save("parent_comment.pptx", slides.export.SaveFormat.PPTX)
# Entfernt Kommentar1 und alle zugehörigen Antworten
comment1.remove()
pres.save("remove_comment.pptx", slides.export.SaveFormat.PPTX)
Achtung
- Wenn die
remove‑Methode (aus der Comment Klasse) verwendet wird, um einen Kommentar zu löschen, werden auch die Antworten auf den Kommentar gelöscht. - Falls die Einstellung
parent_commentzu einer zirkulären Referenz führt, wird einePptxEditExceptionausgelöst.
Modernen Kommentar hinzufügen
Im Jahr 2021 hat Microsoft moderne Kommentare in PowerPoint eingeführt. Die Funktion moderner Kommentare verbessert die Zusammenarbeit in PowerPoint erheblich. Durch moderne Kommentare können PowerPoint‑Benutzer Kommentare auflösen, Kommentare an Objekten und Texten verankern und viel einfacher interagieren als zuvor.
Wir haben die Unterstützung für moderne Kommentare implementiert, indem wir die ModernComment Klasse hinzugefügt haben. Die Methoden add_modern_comment und insert_modern_comment wurden zur CommentCollection Klasse hinzugefügt.
Dieser Python‑Code zeigt, wie Sie einen modernen Kommentar zu einer Folie in einer PowerPoint‑Präsentation hinzufügen:
import aspose.pydrawing as draw
import aspose.slides as slides
from datetime import date
with slides.Presentation() as pres:
newAuthor = pres.comment_authors.add_author("Some Author", "SA")
modernComment = newAuthor.comments.add_modern_comment("This is a modern comment", pres.slides[0], None, draw.PointF(100, 100), date.today())
pres.save("example.pptx", slides.export.SaveFormat.PPTX)
Kommentar entfernen
Alle Kommentare und Autoren löschen
Dieser Python‑Code zeigt, wie Sie alle Kommentare und Autoren in einer Präsentation entfernen:
import aspose.slides as slides
with slides.Presentation("example.pptx") as presentation:
# Löscht alle Kommentare aus der Präsentation
for author in presentation.comment_authors:
author.comments.clear()
# Löscht alle Autoren
presentation.comment_authors.clear()
presentation.save("example_out.pptx", slides.export.SaveFormat.PPTX)
Bestimmte Kommentare löschen
Dieser Python‑Code zeigt, wie Sie bestimmte Kommentare auf einer Folie löschen:
import aspose.pydrawing as draw
import aspose.slides as slides
from datetime import date
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Kommentare hinzufügen...
author = presentation.comment_authors.add_author("Author", "A")
author.comments.add_comment("comment 1", slide, draw.PointF(0.2, 0.2), date.today())
author.comments.add_comment("comment 2", slide, draw.PointF(0.3, 0.2), date.today())
# Entfernt alle Kommentare, die den Text "comment 1" enthalten
for commentAuthor in presentation.comment_authors:
toRemove = []
for comment in slide.get_slide_comments(commentAuthor):
if comment.text == "comment 1":
toRemove.append(comment)
for comment in toRemove:
commentAuthor.comments.remove(comment)
presentation.save("pres.pptx", slides.export.SaveFormat.PPTX)
FAQ
Unterstützt Aspose.Slides einen Status wie „gelöst“ für moderne Kommentare?
Ja. Modern comments stellen eine status‑Eigenschaft bereit; Sie können den Zustand eines Kommentars lesen und setzen (zum Beispiel ihn als gelöst markieren), und dieser Zustand wird in der Datei gespeichert und von PowerPoint erkannt.
Werden verschachtelte Diskussionen (Antwortketten) unterstützt und gibt es ein Begrenzung für die Verschachtelung?
Ja. Jeder Kommentar kann auf seinen parent comment verweisen, wodurch beliebige Antwortketten ermöglicht werden. Die API gibt keine spezifische Begrenzung für die Verschachtelungstiefe vor.
In welchem Koordinatensystem ist die Position eines Kommentar‑Markers auf einer Folie definiert?
Die Position wird als Gleitkommapunkt im Koordinatensystem der Folie gespeichert. Dadurch können Sie den Kommentar‑Marker exakt dort platzieren, wo Sie ihn benötigen.