Πώς να προσθέσετε σχόλια στο PowerPoint σε .NET

Πώς να προσθέσετε σχόλια στο PowerPoint σε .NET

Το Aspose.Slides FOSS για .NET υποστηρίζει δύο μηχανισμούς σχολιασμού:

  • Threaded comments: συνδεδεμένα σε μια διαφάνεια σε συγκεκριμένη θέση, ορατά στο πλαίσιο Review του PowerPoint
  • Speaker notes: κείμενο ανά διαφάνεια ορατό στην Προβολή Παρουσιαστή και στο πλαίσιο Notes

Προαπαιτούμενα

dotnet add package Aspose.Slides.Foss

Προσθήκη σχολίου

Τα σχόλια ανήκουν σε ένα αντικείμενο author. Δημιουργήστε πρώτα έναν author, στη συνέχεια προσθέστε σχόλια μέσω author.Comments:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();

// Create a comment author with name and initials
var author = prs.CommentAuthors.AddAuthor("Jane Smith", "JS");

var slide = prs.Slides[0];

// Add a comment at (2.0, 2.0) inches from the slide top-left corner
author.Comments.AddComment(
    "Please review the figures on this slide",
    slide,
    new PointF(2.0f, 2.0f),
    DateTime.Now
);

prs.Save("commented.pptx", SaveFormat.Pptx);

Οι συντεταγμένες PointF είναι σε ίντσες από το πάνω αριστερό μέρος της διαφάνειας. Πολλές κλήσεις στο AddComment() δημιουργούν μια αλυσίδα νήματος σχολίων κάτω από τον ίδιο συγγραφέα.


Πολλαπλοί Συγγραφείς και Σχόλια

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var author1 = prs.CommentAuthors.AddAuthor("Alice Brown", "AB");
var author2 = prs.CommentAuthors.AddAuthor("Bob Davis", "BD");

var slide = prs.Slides[0];

author1.Comments.AddComment(
    "Initial draft: needs revision",
    slide, new PointF(1.0f, 1.0f), DateTime.Now
);
author2.Comments.AddComment(
    "Approved after changes",
    slide, new PointF(3.0f, 1.0f), DateTime.Now
);

prs.Save("multi-author.pptx", SaveFormat.Pptx);

Ανάγνωση σχολίων από υπάρχον αρχείο

using Aspose.Slides.Foss;

using var prs = new Presentation("commented.pptx");
foreach (var author in prs.CommentAuthors)
{
    Console.WriteLine($"Author: {author.Name} ({author.Initials})");
    foreach (var comment in author.Comments)
    {
        Console.WriteLine($"  Slide: {comment.Text}");
    }
}

Προσθήκη σημειώσεων ομιλητή σε μια διαφάνεια

Οι σημειώσεις του ομιλητή προστίθενται μέσω slide.NotesSlideManager:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 50, 600, 300
).AddTextFrame("Main slide content");

// Create the notes slide and write text
var notes = slide.NotesSlideManager.AddNotesSlide();
notes.NotesTextFrame.Text =
    "Mention the Q3 revenue increase. Emphasize the 24% YoY growth.";

prs.Save("with-notes.pptx", SaveFormat.Pptx);

Προσθήκη Σημειώσεων σε Πολλές Διαφάνειες

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

string[] noteTexts = {
    "Opening: introduce the agenda and set expectations.",
    "Key metrics: emphasize Q4 results and growth trajectory.",
    "Closing: summarize and call to action.",
};

using var prs = new Presentation();
var layout = prs.Slides[0].LayoutSlide;
prs.Slides.AddEmptySlide(layout);
prs.Slides.AddEmptySlide(layout);

for (int i = 0; i < prs.Slides.Count; i++)
{
    var slide = prs.Slides[i];
    slide.Shapes.AddAutoShape(
        ShapeType.Rectangle, 50, 50, 600, 300
    ).AddTextFrame($"Slide {i + 1}");

    var n = slide.NotesSlideManager.AddNotesSlide();
    n.NotesTextFrame.Text = noteTexts[i];
}

prs.Save("all-notes.pptx", SaveFormat.Pptx);

Ελέγξτε εάν οι σημειώσεις υπάρχουν ήδη

NotesSlideManager.NotesSlide επιστρέφει null εάν δεν έχει δημιουργηθεί διαφάνεια σημειώσεων:

using Aspose.Slides.Foss;

using var prs = new Presentation("existing.pptx");
for (int i = 0; i < prs.Slides.Count; i++)
{
    var existing = prs.Slides[i].NotesSlideManager.NotesSlide;
    if (existing != null)
        Console.WriteLine($"Slide {i + 1}: {existing.NotesTextFrame.Text[..60]}");
    else
        Console.WriteLine($"Slide {i + 1}: no notes");
}

Δείτε επίσης

 Ελληνικά