Свойства презентации
Доступ к свойствам презентации
Как уже было описано ранее, Aspose.Slides для C++ поддерживает два типа свойств документа: Встроенные и Пользовательские свойства. Таким образом, разработчики могут получить доступ к обоим типам свойств с помощью API Aspose.Slides для C++. Aspose.Slides для C++ предоставляет класс IDocumentProperties, который представляет свойства документа, ассоциированные с файлом презентации, через метод Presentation::get_DocumentProperties(). Разработчики могут использовать метод get_DocumentProperties(), предоставляемый объектом Presentation, для доступа к свойствам документа файлов презентации, как описано ниже:
Microsoft PowerPoint предоставляет возможность добавлять некоторые свойства к файлам презентации. Эти свойства документа позволяют хранить полезную информацию вместе с документами (файлами презентаций). Существует два типа свойств документа:
- Определенные системой (встроенные) свойства
- Определенные пользователем (пользовательские) свойства
Встроенные свойства содержат общую информацию о документе, такую как заголовок документа, имя автора, статистику документа и т.д. Пользовательские свойства - это те, которые определены пользователями в виде пар Имя/Значение, где как имя, так и значение определяются пользователем. С помощью Aspose.Slides для C++ разработчики могут получать доступ и изменять значения встроенных свойств, а также пользовательских свойств. Microsoft PowerPoint 2007 позволяет управлять свойствами документа файлов презентаций. Все, что вам нужно сделать, это щелкнуть значок Office и затем выбрать пункт меню Подготовка | Свойства | Дополнительные свойства в Microsoft PowerPoint 2007. После выбора пункта меню Дополнительные свойства появится диалоговое окно, позволяющее управлять свойствами документа файла PowerPoint. В Диалоге свойств вы можете увидеть множество вкладок, таких как Общие, Сводка, Статистика, Содержимое и Пользовательские. Все эти вкладки позволяют настраивать различные виды информации, относящиеся к файлам PowerPoint. Вкладка Пользовательские используется для управления пользовательскими свойствами файлов PowerPoint.
Доступ к встроенным свойствам
Эти свойства, предоставляемые объектом IDocumentProperties, включают: Creator(Автор), Описание, КлючевыеСлова, Создан (Дата создания), Изменен (Дата изменения), Напечатан (Дата последней печати), LastModifiedBy, Keywords, SharedDoc (Разделяемый между разными производителями?), PresentationFormat, Subject и Title.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
const String templatePath = u"../templates/AccessSlides.pptx"; | |
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(templatePath); | |
System::SharedPtr<IDocumentProperties> documentProperties = pres->get_DocumentProperties(); | |
System::Console::WriteLine(u"Category : {0}" , documentProperties->get_Category()); | |
System::Console::WriteLine(u"Current Status : {0}", documentProperties->get_ContentStatus()); | |
System::Console::WriteLine(u"Creation Date : {0}", documentProperties->get_CreatedTime().ToString()); | |
System::Console::WriteLine(u"Author : {0}", documentProperties->get_Author()); | |
System::Console::WriteLine(u"Description : {0}", documentProperties->get_Comments()); | |
System::Console::WriteLine(u"KeyWords : {0}", documentProperties->get_Keywords()); | |
System::Console::WriteLine(u"Last Modified By : {0}", documentProperties->get_LastSavedBy()); | |
System::Console::WriteLine(u"Supervisor : {0}", documentProperties->get_Manager()); | |
System::Console::WriteLine(u"Modified Date : {0}", documentProperties->get_LastSavedTime().ToString()); | |
System::Console::WriteLine(u"Presentation Format : {0}", documentProperties->get_PresentationFormat()); | |
System::Console::WriteLine(u"Last Print Date : {0}",documentProperties->get_LastPrinted().ToString()); | |
System::Console::WriteLine(u"Is Shared between producers : {0}", documentProperties->get_SharedDoc()); | |
System::Console::WriteLine(u"Subject : {0}", documentProperties->get_Subject()); | |
System::Console::WriteLine(u"Title : {0}", documentProperties->get_Title()); |
Изменение встроенных свойств
Изменение встроенных свойств файлов презентации так же легко, как и их получение. Вы можете просто присвоить строковое значение любому желаемому свойству, и значение свойства будет изменено. В приведенном ниже примере мы продемонстрировали, как мы можем изменить встроенные свойства документа файла презентации.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
const String templatePath = u"../templates/ModifyBuiltinProperties.pptx"; | |
const String outPath = u"../out/ModifyBuiltinProperties1.pptx"; | |
// SharedPtr<PresentationFactory> factory = MakeObject<PresentationFactory>(); | |
// read the info of presentation | |
System::SharedPtr<IPresentationInfo> info = PresentationFactory::get_Instance()->GetPresentationInfo(templatePath); | |
// obtain the current properties | |
System::SharedPtr<IDocumentProperties> props = info->ReadDocumentProperties(); | |
// set the new values of Author and Title fields | |
props->set_Author ( u"New Author"); | |
props->set_Title (u"New Title"); | |
// update the presentation with a new values | |
info->UpdateDocumentProperties(props); | |
info->WriteBindedPresentation(outPath); | |
Добавление пользовательских свойств презентации
Aspose.Slides для C++ также позволяет разработчикам добавлять пользовательские значения для свойств документа презентации. Пример приведен ниже, который демонстрирует, как установить пользовательские свойства для презентации.
// Создание экземпляра класса Presentation
auto presentation = System::MakeObject<Presentation>();
// Получение свойств документа
auto documentProperties = presentation->get_DocumentProperties();
// Добавление пользовательских свойств
documentProperties->idx_set(u"Новое Пользовательское", ObjectExt::Box<int32_t>(12));
documentProperties->idx_set(u"Мое Имя", ObjectExt::Box<String>(u"Мудассир"));
documentProperties->idx_set(u"Пользовательское", ObjectExt::Box<int32_t>(124));
// Получение имени свойства по определенному индексу
String getPropertyName = documentProperties->GetCustomPropertyName(2);
// Удаление выбранного свойства
documentProperties->RemoveCustomProperty(getPropertyName);
// Сохранение презентации
presentation->Save(u"CustomDocumentProperties_out.pptx", SaveFormat::Pptx);
Доступ и изменение пользовательских свойств презентации
Aspose.Slides для C++ также позволяет разработчикам получать доступ к значениям пользовательских свойств. Пример приведен ниже, который показывает, как вы можете получить доступ и изменить все эти пользовательские свойства для презентации.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
const String templatePath = u"../templates/AccessModifyingProperties.pptx"; | |
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(templatePath); | |
// Create a reference to DocumentProperties object associated with Prsentation | |
System::SharedPtr<IDocumentProperties> documentProperties = presentation->get_DocumentProperties(); | |
for (int32_t i = 0; i < documentProperties->get_CountOfCustomProperties(); i++) | |
{ | |
System::Console::WriteLine(u"Custom Property Name : {0}", documentProperties->GetCustomPropertyName(i)); | |
System::Console::WriteLine(u"Custom Property Vlaue : {0}", documentProperties->idx_get(documentProperties->GetCustomPropertyName(i))); | |
} | |
Проверка, была ли презентация изменена или создана
Aspose.Slides для C++ предоставляет возможность проверить, была ли презентация изменена или создана. Пример приведен ниже, который показывает, как проверить, была ли презентация создана или изменена.
auto info = PresentationFactory::get_Instance()->GetPresentationInfo(u"props.pptx");
auto props = info->ReadDocumentProperties();
String app = props->get_NameOfApplication();
String ver = props->get_AppVersion();
Установить язык проверки
Aspose.Slides предоставляет свойство LanguageId (предоставляемое классом PortionFormat), которое позволяет установить язык проверки для документа PowerPoint. Язык проверки - это язык, на котором проверяются орфография и грамматика в PowerPoint.
Этот код на C++ показывает, как установить язык проверки для PowerPoint:
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(pptxFileName);
System::SharedPtr<AutoShape> autoShape = System::ExplicitCast<AutoShape>(pres->get_Slide(0)->get_Shape(0));
System::SharedPtr<IParagraph> paragraph = autoShape->get_TextFrame()->get_Paragraph(0);
System::SharedPtr<IPortionCollection> portions = paragraph->get_Portions();
portions->Clear();
System::SharedPtr<Portion> newPortion = System::MakeObject<Portion>();
System::SharedPtr<IFontData> font = System::MakeObject<FontData>(u"SimSun");
System::SharedPtr<IPortionFormat> portionFormat = newPortion->get_PortionFormat();
portionFormat->set_ComplexScriptFont(font);
portionFormat->set_EastAsianFont(font);
portionFormat->set_LatinFont(font);
portionFormat->set_LanguageId(u"zh-CN");
// установить идентификатор языка проверки
newPortion->set_Text(u"1。");
portions->Add(newPortion);
Установить язык по умолчанию
Этот код на C++ показывает, как установить язык по умолчанию для всей презентации PowerPoint:
System::SharedPtr<LoadOptions> loadOptions = System::MakeObject<LoadOptions>();
loadOptions->set_DefaultTextLanguage(u"en-US");
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(loadOptions);
// Добавление новой прямоугольной формы с текстом
System::SharedPtr<IAutoShape> shp = pres->get_Slide(0)->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 50.0f, 50.0f, 150.0f, 50.0f);
System::SharedPtr<ITextFrame> textFrame = shp->get_TextFrame();
textFrame->set_Text(u"Новый Текст");
// Проверка языка первой порции
System::Console::WriteLine(textFrame->get_Paragraph(0)->get_Portion(0)->get_PortionFormat()->get_LanguageId());