مدیریت نظرات ارائه در Python
نمای کلی
این مقاله توضیح میدهد که چگونه نظرات ارائه را در Aspose.Slides مدیریت کنید. انواع اصلی مرتبط با نظرات را نشان میدهد و نحوه افزودن نظرات به اسلایدها، دسترسی به نظرات موجود، کار با پاسخها، استفاده از نظرات مدرن، و حذف نظرات از یک ارائه را به تصویر میکشد.
مثالها بر سناریوهای رایج بازبینی و همکاری در PowerPoint تمرکز دارند، مانند اختصاص نظرات به نویسندگان، خواندن محتوای نظر و فرادادهها، ساخت زنجیرههای پاسخ، و پاکسازی تمام نظرات یا حذف نظرات انتخابی.
در PowerPoint، یک نظر بهعنوان یادداشت یا حاشیهنویسی بر روی اسلاید ظاهر میشود. وقتی روی یک نظر کلیک میشود، محتوا یا پیامهای آن نمایش داده میشود.
چرا نظرات را به ارائهها اضافه کنیم؟
ممکن است بخواهید برای ارائه بازخورد یا ارتباط با همکارانتان هنگام بازبینی ارائهها از نظرات استفاده کنید.
برای این که بتوانید از نظرات در ارائههای PowerPoint استفاده کنید، Aspose.Slides for Python via .NET ارائه میدهد
- کلاس Presentation که شامل مجموعههای نویسندگان (از ویژگی CommentAuthorCollection ) است. نویسندگان نظرات را به اسلایدها اضافه میکنند.
- کلاس CommentCollection که مجموعهای از نظرات برای هر نویسنده را شامل میشود.
- کلاس Comment که شامل اطلاعاتی درباره نویسندگان و نظرات آنهاست: کسی که نظر را اضافه کرده، زمان افزودن نظر، موقعیت نظر و غیره.
- کلاس CommentAuthor که شامل اطلاعاتی درباره هر نویسنده است: نام نویسنده، حروف اولیه او، نظرات مربوط به نام نویسنده و غیره.
افزودن نظر به اسلاید
این کد Python نشان میدهد که چگونه یک نظر به اسلایدی در یک ارائه PowerPoint اضافه کنید:
import aspose.slides as slides
import aspose.pydrawing as draw
import datetime
# یک شی از کلاس Presentation را ایجاد میکند
with slides.Presentation() as presentation:
# یک اسلاید خالی اضافه میکند
presentation.slides.add_empty_slide(presentation.layout_slides[0])
# یک نویسنده اضافه میکند
author = presentation.comment_authors.add_author("Jawad", "MF")
# موقعیت نظرات را تنظیم میکند
point = draw.PointF(0.2, 0.2)
# یک نظر اسلاید برای نویسنده در اسلاید 1 اضافه میکند
author.comments.add_comment("Hello Jawad, this is slide comment", presentation.slides[0], point, datetime.date.today())
# یک نظر اسلاید برای نویسنده در اسلاید 2 اضافه میکند
author.comments.add_comment("Hello Jawad, this is second slide comment", presentation.slides[1], point, datetime.date.today())
# دسترسی به ISlide 1
slide = presentation.slides[0]
# هنگامی که null بهعنوان آرگومان پاس داده شود، نظرات تمام نویسندگان به اسلاید انتخاب شده منتقل میشوند
comments = slide.get_slide_comments(author)
# دسترسی به نظر در ایندکس 0 برای اسلاید 1
str = comments[0].text
presentation.save("Comments_out.pptx", slides.export.SaveFormat.PPTX)
if comments.length > 0:
# مجموعه نظرات نویسنده را در ایندکس 0 انتخاب میکند
commentCollection = comments[0].author.comments
print(commentCollection[0].text)
دسترسی به نظرات اسلاید
این کد Python نشان میدهد که چگونه به یک نظر موجود بر روی اسلایدی در یک ارائه PowerPoint دسترسی پیدا کنید:
import aspose.slides as slides
# یک شی از کلاس Presentation را ایجاد میکند
with slides.Presentation("Comments1.pptx") as presentation:
for author in presentation.comment_authors:
for comment in author.comments:
print("ISlide :" + str(comment.slide.slide_number) +
" has comment: " + comment.text +
" with Author: " + comment.author.name +
" posted on time :" + str(comment.created_time) + "\n")
پاسخ به نظرات
یک نظر والد، نظر اصلی یا بالایی در یک سلسلهمراتب نظرات یا پاسخها است. با استفاده از ویژگی parent_comment (از کلاس Comment) میتوانید یک نظر والد را تنظیم یا دریافت کنید.
این کد Python نشان میدهد که چگونه نظرات را اضافه کنید و پاسخهای آنها را دریافت کنید:
import aspose.slides as slides
import aspose.pydrawing as draw
import datetime
with slides.Presentation() as pres:
# افزودن یک نظر
author1 = pres.comment_authors.add_author("Author_1", "A.A.")
comment1 = author1.comments.add_comment("comment1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
# افزودن یک پاسخ به comment1
author2 = pres.comment_authors.add_author("Autror_2", "B.B.")
reply1 = author2.comments.add_comment("reply 1 for comment 1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
reply1.parent_comment = comment1
# افزودن یک پاسخ دیگر به comment1
reply2 = author2.comments.add_comment("reply 2 for comment 1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
reply2.parent_comment = comment1
# افزودن یک پاسخ به پاسخ موجود
subReply = author1.comments.add_comment("subreply 3 for reply 2", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
subReply.parent_comment = reply2
comment2 = author2.comments.add_comment("comment 2", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
comment3 = author2.comments.add_comment("comment 3", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
reply3 = author1.comments.add_comment("reply 4 for comment 3", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
reply3.parent_comment = comment3
# نمایش سلسله مراتب نظرات در کنسول
slide = pres.slides[0]
comments = slide.get_slide_comments(None)
for i in range(comments.length):
comment = comments[i]
while comment.parent_comment is not None:
print("\t")
comment = comment.parent_comment
print(comments[i].author.name + " : " + comments[i].text)
print("\r\n")
pres.save("parent_comment.pptx", slides.export.SaveFormat.PPTX)
# حذف comment1 و تمام پاسخهای آن
comment1.remove()
pres.save("remove_comment.pptx", slides.export.SaveFormat.PPTX)
Attention
- هنگامی که متد
remove(از کلاس Comment) برای حذف یک نظر استفاده میشود، پاسخهای آن نظر نیز حذف میشوند. - اگر تنظیم
parent_commentمنجر به یک ارجاع حلقوی شود،PptxEditExceptionپرتاب خواهد شد.
افزودن نظر مدرن
در سال 2021، مایکروسافت نظرات مدرن را در PowerPoint معرفی کرد. ویژگی نظرات مدرن بهطور چشمگیری همکاری در PowerPoint را بهبود میبخشد. از طریق نظرات مدرن، کاربران PowerPoint میتوانند نظرات را حل کنند، نظرات را به اشیاء و متون متصل کنند و تعاملات را بسیار آسانتر نسبت به قبل انجام دهند.
ما پشتیبانی از نظرات مدرن را با افزودن کلاس ModernComment پیادهسازی کردیم. متدهای add_modern_comment و insert_modern_comment به کلاس CommentCollection اضافه شدند.
این کد Python نشان میدهد که چگونه یک نظر مدرن به اسلایدی در یک ارائه PowerPoint اضافه کنید:
import aspose.pydrawing as draw
import aspose.slides as slides
from datetime import date
with slides.Presentation() as pres:
newAuthor = pres.comment_authors.add_author("Some Author", "SA")
modernComment = newAuthor.comments.add_modern_comment("This is a modern comment", pres.slides[0], None, draw.PointF(100, 100), date.today())
pres.save("example.pptx", slides.export.SaveFormat.PPTX)
حذف نظر
حذف همه نظرات و نویسندگان
این کد Python نشان میدهد که چگونه تمام نظرات و نویسندگان را در یک ارائه حذف کنید:
import aspose.slides as slides
with slides.Presentation("example.pptx") as presentation:
# تمام نظرات را از ارائه حذف میکند
for author in presentation.comment_authors:
author.comments.clear()
# تمام نویسندگان را حذف میکند
presentation.comment_authors.clear()
presentation.save("example_out.pptx", slides.export.SaveFormat.PPTX)
حذف نظرات خاص
این کد Python نشان میدهد که چگونه نظرات خاصی را بر روی اسلاید حذف کنید:
import aspose.pydrawing as draw
import aspose.slides as slides
from datetime import date
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# افزودن نظرات...
author = presentation.comment_authors.add_author("Author", "A")
author.comments.add_comment("comment 1", slide, draw.PointF(0.2, 0.2), date.today())
author.comments.add_comment("comment 2", slide, draw.PointF(0.3, 0.2), date.today())
# حذف تمام نظراتی که متن "comment 1" دارند
for commentAuthor in presentation.comment_authors:
toRemove = []
for comment in slide.get_slide_comments(commentAuthor):
if comment.text == "comment 1":
toRemove.append(comment)
for comment in toRemove:
commentAuthor.comments.remove(comment)
presentation.save("pres.pptx", slides.export.SaveFormat.PPTX)
FAQ
آیا Aspose.Slides وضعیت «حل شده» را برای نظرات مدرن پشتیبانی میکند؟
بله. نظرات مدرن یک ویژگی status را ارائه میدهند؛ میتوانید وضعیت نظر را بخوانید و تنظیم کنید (به عنوان مثال، آن را بهعنوان حل شده علامتگذاری کنید)، و این وضعیت در فایل ذخیره شده و توسط PowerPoint تشخیص داده میشود.
آیا بحثهای زنجیرهای (زنجیرههای پاسخ) پشتیبانی میشوند و آیا محدودیتی برای تو در تو بودن وجود دارد؟
بله. هر نظر میتواند به parent comment خود ارجاع دهد، که امکان ساخت زنجیرههای پاسخ دلخواه را فراهم میکند. API محدودیت خاصی برای عمق تو در تو اعلام نمیکند.
موقعیت علامتگذاری نظر بر روی اسلاید در چه سیستم مختصاتی تعریف میشود؟
موقعیت به صورت یک نقطه شناور در سیستم مختصات اسلاید ذخیره میشود. این به شما اجازه میدهد علامتگذاری نظر را دقیقاً در مکانی که نیاز دارید قرار دهید.