Access Document Properties in PowerPoint in C++

PowerPoint files contain metadata or document properties that provide additional information about the presentation. These include information such as the title, date, author, etc., of the presentation. In this article, you will learn how to read or edit document properties in PowerPoint files in C++.

PowerPoint Document Properties - API Installation

Aspose.Slides for C++ is a C++ API for working with PowerPoint files. It enables you to create, read and update PowerPoint files without needing additional software. Furthermore, the API allows you to access and modify the properties of PowerPoint presentations. You can either install the API through NuGet or download it directly from the Downloads section.

PM> Install-Package Aspose.Slides.Cpp

Types of Properties in PowerPoint Presentations

There are two types of properties in PowerPoint presentations: built-in and custom. The built-in properties store general information about the presentations like the title, date, etc. On the other hand, custom properties store custom information in key/value pairs. The following sections cover how to add, access, and modify built-in and custom properties of PowerPoint presentations.

Access Document Properties in PowerPoint in C++

The following are the steps to access built-in properties in PowerPoint presentations.

The following sample code shows how to access built-in properties in PowerPoint presentations using C++.

// File path
const String sourceFilePath = u"SourceDirectory\\Slides\\SamplePresentation.pptx";
// Load the presentation file
auto presentation = System::MakeObject<Presentation>(sourceFilePath);
// Get reference of document properties
System::SharedPtr<IDocumentProperties> documentProperties = presentation->get_DocumentProperties();
// Print the property values
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());

Change Document Properties in PowerPoint Presentations using C++

The following are the steps to modify built-in properties in PowerPoint presentations.

The following sample code shows how to modify built-in PowerPoint properties using C++.

// File paths
const String sourceFilePath = u"SourceDirectory\\Slides\\SamplePresentation.pptx";
const String outputFilePath = u"OutputDirectory\\ModifyBuiltinProperties_out.pptx";
// Load the presentation file
auto presentation = System::MakeObject<Presentation>(sourceFilePath);
// Get reference of document properties
System::SharedPtr<IDocumentProperties> documentProperties = presentation->get_DocumentProperties();
// Modify the built-in properties
documentProperties->set_Author(u"Aspose.Slides for C++");
documentProperties->set_Title(u"Modifying Presentation Properties");
documentProperties->set_Subject(u"Aspose Subject");
documentProperties->set_Comments(u"Aspose Comments");
documentProperties->set_Manager(u"Aspose Manager");
// Save Presentation
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Add Custom Properties in PowerPoint Presentations using C++

The following are the steps to add custom properties in PowerPoint presentations.

The following sample code shows how to add custom properties in PowerPoint presentations.

// File paths
const String sourceFilePath = u"SourceDirectory\\Slides\\SamplePresentation.pptx";
const String outputFilePath = u"OutputDirectory\\AddCustomProperties_out.pptx";
// Load the presentation file
auto presentation = System::MakeObject<Presentation>(sourceFilePath);
// Get reference of document properties
auto documentProperties = presentation->get_DocumentProperties();
// Adding Custom properties
documentProperties->idx_set(u"New Custom", ObjectExt::Box<int32_t>(12));
documentProperties->idx_set(u"My Name", ObjectExt::Box<String>(u"Aspose"));
documentProperties->idx_set(u"Custom", ObjectExt::Box<int32_t>(124));
// Getting property name at particular index
String getPropertyName = documentProperties->GetCustomPropertyName(2);
// Removing selected property
documentProperties->RemoveCustomProperty(getPropertyName);
// Save Presentation
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Access and Modify Custom Properties in PowerPoint Presentations

The following are the steps to access and modify PowerPoint document properties.

The following sample code shows how to access and modify custom properties in PowerPoint presentations using C++.

// File paths
const String sourceFilePath = u"SourceDirectory\\Slides\\SamplePresentation.pptx";
const String outputFilePath = u"OutputDirectory\\AccessAndModifyCustomProperties_out.pptx";
// Load the presentation file
auto presentation = System::MakeObject<Presentation>(sourceFilePath);
// Create a reference to DocumentProperties object associated with Presentation
System::SharedPtr<IDocumentProperties> documentProperties = presentation->get_DocumentProperties();
// Access custom properties
for (int32_t i = 0; i < documentProperties->get_CountOfCustomProperties(); i++)
{
// Print the name and value of custom properties
System::Console::WriteLine(u"Custom Property Name : {0}", documentProperties->GetCustomPropertyName(i));
System::Console::WriteLine(u"Custom Property Value : {0}", documentProperties->idx_get(documentProperties->GetCustomPropertyName(i)));
// Modify the custom property
documentProperties->SetCustomPropertyValue(documentProperties->GetCustomPropertyName(i), String::Format(u"Title : {0}", i));
}
// Save Presentation
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Change File Properties Online

We highly recommend you use our online tool to change file properties online. It is free and you can use it in any popular web browser.

Change File Properties Online

Get a Free License

In order to try the API without evaluation limitations, you can request a free temporary license.

Conclusion

In this article, you have learned how to read or edit document properties in PowerPoint files in C++. Furthermore, you have seen how to add, access, and modify custom PowerPoint properties using Aspose.Slides for C++ API. It is a robust API with lots of additional features for automating your PowerPoint-related tasks. You can explore the API in detail by visiting the official documentation. In case of any queries, please feel free to reach us at our free support forum.

See Also