Εργασία με Σχόλια και Σημειώσεις Ομιλητή — Aspose.Slides FOSS για Python
Aspose.Slides FOSS for Python supports two types of annotations: σχόλια διαφάνειας με νήμα (ορατό σε λειτουργία ελέγχου) και σημειώσεις ομιλητή (ορατό στην Προβολή Παρουσιαστή και στο πλαίσιο Σημειώσεων).
Σχόλια με Νήματα
Τα σχόλια συνδέονται με μια διαφάνεια και συσχετίζονται με έναν συγγραφέα. Το prs.comment_authors η συλλογή διαχειρίζεται όλους τους συγγραφείς· κάθε συγγραφέας έχει ένα comments συλλογή για την προσθήκη και ανάγνωση σχολίων.
Προσθήκη Σχολίου
from aspose.slides_foss.drawing import PointF
from datetime import datetime
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
# Create a comment author with initials
author = prs.comment_authors.add_author("Jane Smith", "JS")
slide = prs.slides[0]
# Add a comment at position (2.0, 2.0) inches from the slide top-left
author.comments.add_comment(
"Please review the figures on this slide",
slide,
PointF(2.0, 2.0),
datetime.now()
)
prs.save("commented.pptx", SaveFormat.PPTX)Το PointF η θέση είναι σε ίντσες από την επάνω αριστερή γωνία της διαφάνειας. Πολλαπλά σχόλια μπορούν να προστεθούν στην ίδια διαφάνεια καλώντας add_comment() ξανά.
Πολλαπλοί Συγγραφείς και Σχόλια
from aspose.slides_foss.drawing import PointF
from datetime import datetime
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
author1 = prs.comment_authors.add_author("Alice Brown", "AB")
author2 = prs.comment_authors.add_author("Bob Davis", "BD")
slide = prs.slides[0]
author1.comments.add_comment("Initial draft", slide, PointF(1.0, 1.0), datetime.now())
author2.comments.add_comment("Approved", slide, PointF(3.0, 1.0), datetime.now())
prs.save("multi-author.pptx", SaveFormat.PPTX)Ανάγνωση Σχολίων από Υπάρχον Αρχείο
import aspose.slides_foss as slides
with slides.Presentation("commented.pptx") as prs:
for author in prs.comment_authors:
print(f"Author: {author.name} ({author.initials})")
for comment in author.comments:
print(f" [{comment.slide.slide_number}] {comment.text}")Σημειώσεις ομιλητή
Οι σημειώσεις ομιλητή αποθηκεύονται ανά διαφάνεια μέσω ενός NotesSlide αντικειμένου. Πρόσβαση σε αυτό μέσω slide.notes_slide_manager.
Προσθήκη Σημειώσεων Ομιλητή σε Διαφάνεια
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 50, 50, 400, 200)
# Create the notes slide and set text
notes = slide.notes_slide_manager.add_notes_slide()
notes.notes_text_frame.text = "Mention the Q3 revenue increase on this slide. Emphasize the 24% growth."
prs.save("with-notes.pptx", SaveFormat.PPTX)Παράδειγμα Απλούστερων Σημειώσεων
from aspose.slides_foss import ShapeType
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 100, 100, 500, 250).add_text_frame("Main Content")
notes = slide.notes_slide_manager.add_notes_slide()
notes.notes_text_frame.text = "These are the speaker notes for this slide."
prs.save("notes.pptx", SaveFormat.PPTX)Έλεγχος Εάν Υπάρχει Ήδη Διαφάνεια Σημειώσεων
notes_slide_manager.notes_slide επιστρέφει None αν δεν έχει δημιουργηθεί ακόμη διαφάνεια σημειώσεων:
import aspose.slides_foss as slides
with slides.Presentation("existing.pptx") as prs:
for i, slide in enumerate(prs.slides):
existing_notes = slide.notes_slide_manager.notes_slide
if existing_notes:
text = existing_notes.notes_text_frame.text
print(f"Slide {i + 1} notes: {text[:60]}...")
else:
print(f"Slide {i + 1}: no notes")Προσθήκη Σημειώσεων σε Πολλές Διαφάνειες
from aspose.slides_foss import ShapeType
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
note_texts = [
"Opening remarks: introduce the agenda.",
"Key metrics: emphasize Q4 results.",
"Closing: call to action.",
]
with slides.Presentation() as prs:
# Add slides 2 and 3
layout = prs.slides[0].layout_slide
prs.slides.add_empty_slide(layout)
prs.slides.add_empty_slide(layout)
for i, slide in enumerate(prs.slides):
slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 600, 300).add_text_frame(f"Slide {i + 1}")
n = slide.notes_slide_manager.add_notes_slide()
n.notes_text_frame.text = note_texts[i]
prs.save("all-notes.pptx", SaveFormat.PPTX)