Lucrul cu comentarii și note de vorbitor — Aspose.Slides FOSS pentru Python
Aspose.Slides FOSS for Python supports two types of annotations: comentarii în lanț pentru diapozitiv (vizibil în modul de revizuire) și note ale prezentatorului (vizibil în modul Prezentare și în panoul Note).
Comentarii în lanț
Comentariile sunt atașate unui diapozitiv și asociate cu un autor. Colecția prs.comment_authors colecție gestionează toți autorii; fiecare autor are o comments colecție pentru adăugarea și citirea comentariilor.
Adăugați un comentariu
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)Colecția PointF poziția este în inci de la colțul stânga-sus al diapozitivului. Comentarii multiple pot fi adăugate aceluiași diapozitiv prin apelarea add_comment() din nou.
Mai mulți autori și comentarii
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)Citiți comentariile dintr-un fișier existent
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}")Note ale prezentatorului
Notele prezentatorului sunt stocate pe bază de diapozitiv printr-un NotesSlide obiect. Accesați-l prin slide.notes_slide_manager.
Adăugați note de vorbitor la un diapozitiv
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)Exemplu simplu de note
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)Verificați dacă există deja un diapozitiv de note
notes_slide_manager.notes_slide returnează None dacă nu a fost încă creat niciun diapozitiv de note:
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")Adăugați note la mai multe diapozitive
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)