مدیریت ویژگیهای ارائه در PHP
مقدمه
Aspose.Slides دو نوع ویژگی سند را پشتیبانی میکند: Built-in و Custom. هر دو نوع این ویژگیها به راحتی میتوانند با استفاده از API Aspose.Slides دسترسی و مدیریت شوند.
Aspose.Slides به شما امکان کار با ویژگیهای سند ارائه را از طریق کلاس DocumentProperties میدهد. یک نمونه از این کلاس توسط متد Presentation::getDocumentProperties برگردانده میشود. مثالهای زیر نشان میدهند که چگونه میتوان این ویژگیها را خواند، تغییر داد و مدیریت کرد.
مدیریت ویژگیهای ارائه
Microsoft PowerPoint ویژگی افزودن برخی ویژگیها به فایلهای ارائه را فراهم میکند. این ویژگیهای سند امکان ذخیره اطلاعات مفید همراه با اسناد (فایلهای ارائه) را میدهند. دو نوع ویژگی سند وجود دارد:
- ویژگیهای تعریفشده توسط سیستم (Built-in)
- ویژگیهای تعریفشده توسط کاربر (Custom)
Built-in ویژگیها شامل اطلاعات کلی درباره سند مانند عنوان سند، نام نویسنده، آمار سند و غیره هستند. Custom ویژگیها آنهایی هستند که توسط کاربران به صورت جفت Name/Value تعریف میشوند، که هر دو نام و مقدار توسط کاربر تعیین میشود. با استفاده از Aspose.Slides for PHP via Java، توسعهدهندگان میتوانند به مقادیر ویژگیهای Built-in و همچنین ویژگیهای سفارشی دسترسی پیدا کرده و آنها را تغییر دهند.
ویژگیهای سند در پاورپوینت
Microsoft PowerPoint 2007 امکان مدیریت ویژگیهای سند فایلهای ارائه را میدهد. فقط کافی است روی نماد Office کلیک کنید و سپس گزینه Prepare | Properties | Advanced Properties را در منوی Microsoft PowerPoint 2007 انتخاب کنید همانطور که در زیر نشان داده شده است:
| انتخاب گزینه Advanced Properties | ** ** |
|---|---|
![]() |
|
| پس از انتخاب گزینه Advanced Properties، دیالوگی ظاهر میشود که به شما امکان مدیریت ویژگیهای سند فایل PowerPoint را میدهد همانطور که در تصویر زیر مشاهده میشود: |
| پنجرهٔ ویژگیها | ** ** |
|---|---|
![]() |
|
| در پنجرهٔ ویژگیها بالا میتوانید تبهای متعددی مانند General، Summary، Statistics، Contents و Custom را ببینید. تمام این تبها امکان پیکربندی انواع مختلف اطلاعات مرتبط با فایلهای PowerPoint را فراهم میکنند. تب Custom برای مدیریت ویژگیهای سفارشی فایلهای PowerPoint به کار میرود. |
کار با ویژگیهای سند با استفاده از Aspose.Slides for PHP via Java
همانطور که پیشتر توضیح دادیم Aspose.Slides for PHP via Java دو نوع ویژگی سند را پشتیبانی میکند: ویژگیهای Built-in و Custom. بنابراین، توسعهدهندگان میتوانند با استفاده از API Aspose.Slides for PHP via Java به هر دو نوع ویژگی دسترسی پیدا کنند. Aspose.Slides for PHP via Java کلاسی به نام DocumentProperties ارائه میدهد که ویژگیهای سند مرتبط با یک فایل ارائه را از طریق ویژگی Presentation.DocumentProperties نمایان میکند.
توسعهدهندگان میتوانند از ویژگی DocumentProperties که توسط شیء Presentation افشا میشود، برای دسترسی به ویژگیهای سند فایلهای ارائه همانطور که در زیر شرح داده شده است، استفاده کنند:
دسترسی به ویژگیهای Built-in
این ویژگیها که توسط شیء DocumentProperties نمایان میشوند شامل: Creator (نویسنده)، Description، Keywords، Created (تاریخ ایجاد)، Modified (تاریخ تغییر)، Printed (تاریخ آخرین چاپ)، LastModifiedBy، Keywords، SharedDoc (آیا بین تولیدکنندگان مختلف به اشتراک گذاشته شده است؟)، PresentationFormat، Subject و Title.
# نماد سازی کلاس Presentation که نمایانگر ارائه است
$pres = new Presentation("Presentation.pptx");
try {
# ایجاد مرجع به شیء IDocumentProperties مرتبط با Presentation
$dp = $pres->getDocumentProperties();
# نمایش ویژگیهای داخلی
echo("Category : " . $dp->getCategory());
echo("Current Status : " . $dp->getContentStatus());
echo("Creation Date : " . $dp->getCreatedTime());
echo("Author : " . $dp->getAuthor());
echo("Description : " . $dp->getComments());
echo("KeyWords : " . $dp->getKeywords());
echo("Last Modified By : " . $dp->getLastSavedBy());
echo("Supervisor : " . $dp->getManager());
echo("Modified Date : " . $dp->getLastSavedTime());
echo("Presentation Format : " . $dp->getPresentationFormat());
echo("Last Print Date : " . $dp->getLastPrinted());
echo("Is Shared between producers : " . $dp->getSharedDoc());
echo("Subject : " . $dp->getSubject());
echo("Title : " . $dp->getTitle());
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
تغییر ویژگیهای Built-in
تغییر ویژگیهای Built-in فایلهای ارائه به همان اندازه ساده است که دسترسی به آنها. میتوانید به سادگی یک مقدار رشتهای به هر ویژگی دلخواه اختصاص دهید و مقدار ویژگی تغییر خواهد کرد. در مثال زیر نشان دادهایم که چگونه میتوان ویژگیهای سند Built-in یک فایل ارائه را با استفاده از Aspose.Slides for PHP via Java تغییر داد.
$pres = new Presentation("Presentation.pptx");
try {
# یک مرجع به شیء IDocumentProperties مرتبط با Presentation ایجاد کنید
$dp = $pres->getDocumentProperties();
# تنظیم ویژگیهای داخلی
$dp->setAuthor("Aspose.Slides for PHP via Java");
$dp->setTitle("Modifying Presentation Properties");
$dp->setSubject("Aspose Subject");
$dp->setComments("Aspose Description");
$dp->setManager("Aspose Manager");
# ارائه خود را در یک فایل ذخیره کنید
$pres->save("DocProps.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
این مثال ویژگیهای Built-in ارائه را که پس از تغییر به شکل زیر نمایش داده میشوند، نشان میدهد:
| ویژگیهای سند Built-in پس از تغییر | ** ** |
|---|---|
![]() |
افزودن ویژگیهای سفارشی سند
Aspose.Slides for PHP via Java همچنین به توسعهدهندگان اجازه میدهد مقادیر سفارشی برای ویژگیهای سند ارائه را اضافه کنند. یک مثال در زیر آورده شده که نشان میدهد چگونه میتوان ویژگیهای سفارشی یک ارائه را تنظیم کرد.
$pres = new Presentation();
try {
# دریافت ویژگیهای سند
$dProps = $pres->getDocumentProperties();
# افزودن ویژگیهای سفارشی
$dProps->set_Item("New Custom", 12);
$dProps->set_Item("My Name", "Mudassir");
$dProps->set_Item("Custom", 124);
# دریافت نام ویژگی در ایندکس خاص
$getPropertyName = $dProps->getCustomPropertyName(2);
# حذف ویژگی انتخابشده
$dProps->removeCustomProperty($getPropertyName);
# ذخیرهٔ ارائه
$pres->save("CustomDemo.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
| ویژگیهای سفارشی سند افزودهشده | ** ** |
|---|---|
![]() |
دسترسی و تغییر ویژگیهای سفارشی
Aspose.Slides for PHP via Java همچنین به توسعهدهندگان اجازه میدهد به مقادیر ویژگیهای سفارشی دسترسی پیدا کنند. یک مثال در زیر نشان میدهد که چگونه میتوانید تمام این ویژگیهای سفارشی را برای یک ارائه دسترسی و تغییر دهید.
$pres = new Presentation("Presentation.pptx");
try {
# یک مرجع به شیء DocumentProperties مرتبط با Presentation ایجاد کنید
$dp = $pres->getDocumentProperties();
# دسترسی و تغییر ویژگیهای سفارشی
for($i = 0; $i < java_values($dp->getCountOfCustomProperties()) ; $i++) {
# نمایش نامها و مقادیر ویژگیهای سفارشی
echo("Custom Property Name : " . $dp->getCustomPropertyName($i));
echo("Custom Property Value : " . $dp->get_Item($dp->getCustomPropertyName($i)));
# تغییر مقادیر ویژگیهای سفارشی
$dp->set_Item($dp->getCustomPropertyName($i), "New Value " . $i + 1);
}
# ارائه خود را در یک فایل ذخیره کنید
$pres->save("CustomDemoModified.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
این مثال ویژگیهای سفارشی ارائهی PPTX را تغییر میدهد. شکلهای زیر ویژگیهای سفارشی ارائه را قبل و بعد از تغییر نشان میدهند:
| ویژگیهای سفارشی قبل از تغییر | ** ** |
|---|---|
![]() |
| ویژگیهای سفارشی پس از تغییر | ** ** |
|---|---|
![]() |
ویژگیهای پیشرفته سند
دو روش جدید readDocumentProperties و updateDocumentProperties به کلاس PresentationInfo اضافه شدهاند. این متدها دسترسی سریع به ویژگیهای سند را فراهم میکنند و امکان تغییر و بهروزرسانی ویژگیها بدون بارگذاری کل ارائه را میدهند.
سناریوی معمولی بارگذاری ویژگیها، تغییر مقداری و بهروزرسانی سند میتواند به شکل زیر اجرا شود:
# اطلاعات ارائه را بخوانید
$info = PresentationFactory->getInstance()->getPresentationInfo("presentation.pptx");
# ویژگیهای فعلی را بهدست آورید
$props = $info->readDocumentProperties();
# مقادیر جدید فیلدهای Author و Title را تنظیم کنید
$props->setAuthor("New Author");
$props->setTitle("New Title");
# ارائه را با مقادیر جدید بهروزرسانی کنید
$info->updateDocumentProperties($props);
$info->writeBindedPresentation("presentation.pptx");
راه دیگری برای استفاده از ویژگیهای یک ارائه به عنوان قالب برای بهروزرسانی ویژگیها در ارائههای دیگر وجود دارد:
$info = PresentationFactory->getInstance()->getPresentationInfo("template.pptx");
$template = $info->readDocumentProperties();
$template->setAuthor("Template Author");
$template->setTitle("Template Title");
$template->setCategory("Template Category");
$template->setKeywords("Keyword1, Keyword2, Keyword3");
$template->setCompany("Our Company");
$template->setComments("Created from template");
$template->setContentType("Template Content");
$template->setSubject("Template Subject");
updateByTemplate("doc1.pptx", $template);
updateByTemplate("doc2.odp", $template);
updateByTemplate("doc3.ppt", $template);
قالب جدید میتواند از ابتدا ساخته شود و سپس برای بهروزرسانی چندین ارائه استفاده شود:
$template = new DocumentProperties();
$template->setAuthor("Template Author");
$template->setTitle("Template Title");
$template->setCategory("Template Category");
$template->setKeywords("Keyword1, Keyword2, Keyword3");
$template->setCompany("Our Company");
$template->setComments("Created from template");
$template->setContentType("Template Content");
$template->setSubject("Template Subject");
updateByTemplate("doc1.pptx", $template);
updateByTemplate("doc2.odp", $template);
updateByTemplate("doc3.ppt", $template);
تنظیم زبان بررسی املایی
Aspose.Slides ویژگی LanguageId (که توسط کلاس PortionFormat افشا میشود) را فراهم میکند تا به شما اجازه دهد زبان بررسی املایی برای یک سند PowerPoint را تنظیم کنید. زبان بررسی املایی زبانی است که املا و دستور زبان در PowerPoint برای آن بررسی میشود.
این کد PHP نشان میدهد چطور زبان بررسی املایی برای یک PowerPoint تنظیم شود: xxx چرا LanguageId در کلاس Java PortionFormat وجود ندارد؟
$pres = new Presentation($pptxFileName);
try {
$autoShape = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
$paragraph = $autoShape->getTextFrame()->getParagraphs()->get_Item(0);
$paragraph->getPortions()->clear();
$newPortion = new Portion();
$font = new FontData("SimSun");
$portionFormat = $newPortion->getPortionFormat();
$portionFormat::setComplexScriptFont($font);
$portionFormat::setEastAsianFont($font);
$portionFormat::setLatinFont($font);
$portionFormat::setLanguageId("zh-CN");// شناسه زبان بررسی املایی را تنظیم کنید
$newPortion->setText("1。");
$paragraph->getPortions()->add($newPortion);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
تنظیم زبان پیشفرض
این کد PHP نشان میدهد چطور زبان پیشفرض برای یک ارائه کامل PowerPoint تنظیم شود:
$loadOptions = new LoadOptions();
$loadOptions->setDefaultTextLanguage("en-US");
$pres = new Presentation($loadOptions);
try {
# یک شکل مستطیل جدید با متن اضافه میکند
$shp = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 150, 50);
$shp->getTextFrame()->setText("New Text");
# زبان اولین بخش را بررسی میکند
echo($shp->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->get_Item(0)->getPortionFormat()->getLanguageId());
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
مثال زنده
سعی کنید برنامهٔ آنلاین Aspose.Slides Metadata را امتحان کنید تا ببینید چگونه میتوان با ویژگیهای سند از طریق API Aspose.Slides کار کرد:
پرسشهای متداول
چگونه میتوان یک ویژگی Built-in را از یک ارائه حذف کرد؟
ویژگیهای Built-in جزئی جداییناپذیر از ارائه هستند و نمیتوان آنها را به طور کامل حذف کرد. با این حال میتوانید مقدار آنها را تغییر دهید یا اگر ویژگی اجازه دهد، آن را خالی کنید.
اگر ویژگی سفارشی که از قبل وجود دارد اضافه کنم چه اتفاقی میافتد؟
اگر ویژگی سفارشی که از قبل وجود دارد اضافه کنید، مقدار قبلی آن با مقدار جدید جایگزین میشود. نیازی به حذف یا بررسی پیش از افزودن نیست، زیرا Aspose.Slides بهطور خودکار مقدار ویژگی را بهروز میکند.
آیا میتوان بدون بارگذاری کامل ارائه به ویژگیهای آن دسترسی پیدا کرد؟
بله، میتوانید بدون بارگذاری کامل ارائه، با استفاده از متد getPresentationInfo از کلاس PresentationFactory به ویژگیهای ارائه دسترسی پیدا کنید. سپس با استفاده از متد readDocumentProperties ارائهشده توسط کلاس PresentationInfo ویژگیها را بهصورت کارآمد بخوانید و حافظه و عملکرد را بهبود بخشید.






