ทำงานกับความคิดเห็นและบันทึกผู้พูด — Aspose.Slides FOSS for .NET

Aspose.Slides FOSS for .NET supports two types of annotations: ความคิดเห็นสไลด์แบบเป็นเธรด (มองเห็นได้ในโหมดรีวิว) และ บันทึกของผู้บรรยาย (มองเห็นได้ในมุมมองผู้นำเสนอและแผงบันทึก).


ความคิดเห็นแบบเชื่อมต่อ

ความคิดเห็นจะถูกแนบกับสไลด์และเชื่อมโยงกับผู้เขียน. The prs.CommentAuthors คอลเลกชันจัดการผู้เขียนทั้งหมด; แต่ละผู้เขียนมี 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 initials
var author = prs.CommentAuthors.AddAuthor("Jane Smith", "JS");

var slide = prs.Slides[0];

// Add a comment at position (2.0, 2.0) inches from the slide top-left
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);

The 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", slide, new PointF(1.0f, 1.0f), DateTime.Now);
author2.Comments.AddComment("Approved", 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($"  [{comment.Slide.SlideNumber}] {comment.Text}");
    }
}

บันทึกผู้บรรยาย

บันทึกของผู้บรรยายจะถูกจัดเก็บตามสไลด์โดยผ่าน NotesSlide ออบเจกต์. เข้าถึงมันผ่าน 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, 400, 200);

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

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

ตัวอย่างบันทึกที่ง่ายกว่า

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

using var prs = new Presentation();
var slide = prs.Slides[0];
slide.Shapes.AddAutoShape(ShapeType.Rectangle, 100, 100, 500, 250).AddTextFrame("Main Content");

var notes = slide.NotesSlideManager.AddNotesSlide();
notes.NotesTextFrame.Text = "These are the speaker notes for this slide.";

prs.Save("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 existingNotes = prs.Slides[i].NotesSlideManager.NotesSlide;
    if (existingNotes != null)
    {
        var text = existingNotes.NotesTextFrame.Text;
        Console.WriteLine($"Slide {i + 1} notes: {text[..Math.Min(60, text.Length)]}...");
    }
    else
    {
        Console.WriteLine($"Slide {i + 1}: no notes");
    }
}

เพิ่มบันทึกลงในหลายสไลด์

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

var noteTexts = new[]
{
    "Opening remarks: introduce the agenda.",
    "Key metrics: emphasize Q4 results.",
    "Closing: call to action.",
};

using var prs = new Presentation();
// Add slides 2 and 3
var layout = prs.Slides[0].LayoutSlide;
prs.Slides.AddEmptySlide(layout);
prs.Slides.AddEmptySlide(layout);

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

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

ดูเพิ่มเติม

 ภาษาไทย