نحوه افزودن نظرات به پاورپوینت در .NET
Aspose.Slides FOSS for .NET دو مکانیزم حاشیهنویسی را پشتیبانی میکند:
- Threaded comments: به اسلاید در موقعیت خاصی پیوست میشود و در پنل مرور PowerPoint قابل مشاهده است
- Speaker notes: متن هر اسلاید که در نمای ارائهدهنده و پنل یادداشتها قابل مشاهده است
پیشنیازها
dotnet add package Aspose.Slides.Fossافزودن نظر
نظرات متعلق به یک شیء 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");
}