diff --git a/Document-Processing/Excel/Spreadsheet/ASP-NET-CORE/mcp.md b/Document-Processing/Excel/Spreadsheet/ASP-NET-CORE/mcp.md
new file mode 100644
index 0000000000..f1c41c74b9
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/ASP-NET-CORE/mcp.md
@@ -0,0 +1,273 @@
+---
+layout: post
+title: ASP.NET Core Spreadsheet MCP Server Setup | Syncfusion®
+description: Install and configure the Syncfusion® ASP.NET Core Spreadsheet MCP Server to access documentation, API guidance, code examples, and troubleshooting support.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+keywords: ASP.NET Core Agentic UI Builder, MCP Server, search docs, Spreadsheet SDK, Server Packages
+---
+
+# ASP.NET Core Spreadsheet MCP Server
+
+The Syncfusion® ASP.NET Core MCP Server accelerates Spreadsheet application development by providing relevant documentation, API references, feature guidance, code examples, and troubleshooting information directly within an AI-powered IDE. The server uses the [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) to connect an AI assistant with Syncfusion ASP.NET Core documentation.
+
+Use the `search_docs` tool to obtain contextual guidance, code examples, and documentation for ASP.NET Core Spreadsheet applications.
+
+> The previously available Agentic UI Builder (`#sf_aspnetcore_ui_builder`) has been upgraded to an Agent skill-based experience and is no longer part of the MCP Server. To learn more about the new Agentic UI Builder, see the [documentation](https://ej2.syncfusion.com/aspnetcore/documentation/mcp). The AI Coding Assistant (`#sf_aspnetcore_assistant`) has been renamed to `search_docs` (`#search_docs`) to ensure that the tool name follows MCP naming conventions.
+
+## Key benefits
+
+- **Spreadsheet-specific guidance**: Access relevant documentation for data binding, formulas, open and save operations, charts, conditional formatting, sorting, filtering, hyperlinks, scrolling, and other Spreadsheet features.
+- **API assistance**: Find ASP.NET Core Spreadsheet properties, methods, and events with contextual usage guidance.
+- **Troubleshooting support**: Search for guidance related to rendering, data loading, import and export, and performance issues.
+- **IDE integration**: Use Syncfusion documentation from compatible MCP clients such as Visual Studio Code, Syncfusion Code Studio, Cursor, and JetBrains.
+- **Privacy-focused operation**: The MCP Server processes requests based on the submitted query without storing prompts or application content.
+
+## Prerequisites
+
+Before configuring the ASP.NET Core MCP Server, ensure that you have:
+
+- **.NET 10 SDK** (for automatic configuration) **or** .NET 8 / .NET 9 SDK (for manual configuration).
+- A **compatible MCP client**, such as Visual Studio Code, Syncfusion Code Studio, Cursor, or JetBrains.
+- An active [Syncfusion API key](https://www.syncfusion.com/account/api-key).
+- An **ASP.NET Core application** (existing or new); see [Quick Start](https://ej2.syncfusion.com/aspnetcore/documentation/getting-started/razor-pages)
+- An active Syncfusion® license, such as one of the following:
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+## Obtain a Syncfusion API key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a .txt or .key file. The saved file will be referenced in the MCP configuration:
+
+```json
+"env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+}
+```
+
+Alternatively, provide the API key directly:
+
+```json
+"env": {
+ "Syncfusion_API_Key": "YOUR_SYNCFUSION_API_KEY"
+}
+```
+
+> Using `Syncfusion_API_Key_Path` is recommended because it helps keep the API key out of source control. Do not commit an API key or key file to a repository.
+
+## Configure the ASP.NET Core MCP Server
+
+Create the MCP configuration file in the root folder of the ASP.NET Core Spreadsheet application. Use the configuration that corresponds to your MCP client and installed .NET SDK version.
+
+### .NET 10 SDK
+
+If you have the .NET 10 SDK installed, you can directly add the following configuration to the `mcp.json` file.
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-aspnetcore-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetCore.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-aspnetcore-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetCore.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-aspnetcore-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetCore.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-aspnetcore-mcp": {
+ "command": "dnx",
+ "args": [
+ "Syncfusion.AspNetCore.MCP", "--yes"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+### .NET 8 or .NET 9 SDK (manual)
+
+If you are using only .NET 8 or .NET 9, install the Syncfusion ASP.NET Core MCP Server as a local tool from your workspace directory:
+
+```bash
+dotnet tool install Syncfusion.AspNetCore.MCP --add-source "https://nexus.syncfusioninternal.com/repository/nuget-hosted/"
+```
+
+This installs the Syncfusion ASP.NET Core MCP Server locally within your workspace. Then add the following configuration to the `mcp.json` file:
+
+```json
+{
+ "servers": {
+ "sf-aspnetcore-mcp": {
+ "type": "stdio",
+ "command": "dotnet",
+ "args": [
+ "tool",
+ "run",
+ "syncfusion-aspnetcore-mcp"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+```
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-aspnetcore-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below demonstrate common ASP.NET Core Spreadsheet scenarios and how the MCP tools can provide relevant guidance, code examples, API references, and troubleshooting assistance. Tools can be invoked directly for specific tasks, or an AI assistant can automatically choose the most appropriate tool based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for ASP.NET Core Spreadsheet applications.
+
+{% promptcards %}
+{% promptcard Spreadsheet Setup %}
+#search_docs How do I configure the ASP.NET Core Spreadsheet component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard JSON Data Binding %}
+#search_docs How can I bind JSON data to an ASP.NET Core Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to Spreadsheet applications that are already in the project.
+
+{% promptcards %}
+{% promptcard Open and Save Excel Files %}
+#search_docs How do I open and save Excel files programmatically in an ASP.NET Core Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard Spreadsheet Charts %}
+#search_docs How do I create a chart from Spreadsheet data in ASP.NET Core?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Troubleshooting**
+
+Describe the problem in plain language, and let `search_docs` help resolve it.
+
+{% promptcards %}
+{% promptcard Performance Issues %}
+#search_docs Why is my ASP.NET Core Spreadsheet slow when opening large datasets?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best practices
+
+To get the most out of the Syncfusion® Spreadsheet MCP Server:
+
+- **Be Specific** - Include the platform and Spreadsheet feature in your queries (for example, _"Can you show me how to render a Spreadsheet with default data in an ASP.NET Core application?"_).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](https://help.syncfusion.com/document-processing/excel/spreadsheet/asp-net-core/getting-started-core) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+| --- | --- |
+| Server failed to start | Verify the .NET SDK version and JSON syntax in the config file, then restart your IDE. |
+| Invalid API key | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| Incorrect API key config | Verify the file location and content for a file path. For an inline key, check that the key is correctly updated. |
+| Wrong config file location | VS Code: `.vscode/mcp.json` Code Studio: `.codestudio/mcp.json` Cursor: `.cursor/mcp.json` in the workspace root. |
+| Manual install (.NET 8/9) | Ensure `dotnet tool install` succeeded and that `mcp.json` references the local tool via `dotnet tool run syncfusion-aspnetcore-mcp`. |
+| Check IDE logs | VS Code / Code Studio: Output panel → "MCP" Cursor: Developer Console for MCP errors. |
+
+## Privacy and security
+
+The Syncfusion MCP Server acts as a knowledge bridge between the selected AI model and Syncfusion documentation.
+
+- The tools process requests according to the user's query without storing any content or prompts.
+- User prompts are not stored or used for other purposes.
+- Prompts are not used to train Syncfusion models.
+- The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
diff --git a/Document-Processing/Excel/Spreadsheet/ASP-NET-MVC/mcp.md b/Document-Processing/Excel/Spreadsheet/ASP-NET-MVC/mcp.md
new file mode 100644
index 0000000000..8917b3e417
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/ASP-NET-MVC/mcp.md
@@ -0,0 +1,273 @@
+---
+layout: post
+title: ASP.NET MVC Spreadsheet MCP Server Setup | Syncfusion®
+description: Install and configure the Syncfusion® ASP.NET MVC Spreadsheet MCP Server to access documentation, API guidance, code examples, and troubleshooting support.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+keywords: ASP.NET MVC Agentic UI Builder, MCP Server, search docs, Spreadsheet SDK, Server Packages
+---
+
+# ASP.NET MVC Spreadsheet MCP Server
+
+The Syncfusion® ASP.NET MVC MCP Server accelerates Spreadsheet application development by providing relevant documentation, API references, feature guidance, code examples, and troubleshooting information directly within an AI-powered IDE. The server uses the [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) to connect an AI assistant with Syncfusion ASP.NET MVC documentation.
+
+Use the `search_docs` tool to obtain contextual guidance, code examples, and documentation for ASP.NET MVC Spreadsheet applications.
+
+> The previously available Agentic UI Builder (`#sf_aspnetmvc_ui_builder`) has been upgraded to an Agent skill-based experience and is no longer part of the MCP Server. To learn more about the new Agentic UI Builder, see the [documentation](https://ej2.syncfusion.com/aspnetmvc/documentation/mcp). The AI Coding Assistant (`#sf_aspnetmvc_assistant`) has been renamed to `search_docs` (`#search_docs`) to ensure that the tool name follows MCP naming conventions.
+
+## Key benefits
+
+- **Spreadsheet-specific guidance**: Access relevant documentation for data binding, formulas, open and save operations, charts, conditional formatting, sorting, filtering, hyperlinks, scrolling, and other Spreadsheet features.
+- **API assistance**: Find ASP.NET MVC Spreadsheet properties, methods, and events with contextual usage guidance.
+- **Troubleshooting support**: Search for guidance related to rendering, data loading, import and export, and performance issues.
+- **IDE integration**: Use Syncfusion documentation from compatible MCP clients such as Visual Studio Code, Syncfusion Code Studio, Cursor, and JetBrains.
+- **Privacy-focused operation**: The MCP Server processes requests based on the submitted query without storing prompts or application content.
+
+## Prerequisites
+
+Before configuring the ASP.NET MVC MCP Server, ensure that you have:
+
+- **.NET 10 SDK** (for automatic configuration) **or** .NET 8 / .NET 9 SDK (for manual configuration).
+- A **compatible MCP client**, such as Visual Studio Code, Syncfusion Code Studio, Cursor, or JetBrains.
+- An active [Syncfusion API key](https://www.syncfusion.com/account/api-key).
+- An **ASP.NET MVC application** (existing or new); see [Quick Start](https://ej2.syncfusion.com/aspnetmvc/documentation/getting-started/aspnet-mvc-htmlhelper)
+- An active Syncfusion® license, such as one of the following:
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+## Obtain a Syncfusion API key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a .txt or .key file. The saved file will be referenced in the MCP configuration:
+
+```json
+"env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+}
+```
+
+Alternatively, provide the API key directly:
+
+```json
+"env": {
+ "Syncfusion_API_Key": "YOUR_SYNCFUSION_API_KEY"
+}
+```
+
+> Using `Syncfusion_API_Key_Path` is recommended because it helps keep the API key out of source control. Do not commit an API key or key file to a repository.
+
+## Configure the ASP.NET MVC MCP Server
+
+Create the MCP configuration file in the root folder of the ASP.NET MVC Spreadsheet application. Use the configuration that corresponds to your MCP client and installed .NET SDK version.
+
+### .NET 10 SDK
+
+If you have the .NET 10 SDK installed, you can directly add the following configuration to the `mcp.json` file.
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-aspnetmvc-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetMvc.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-aspnetmvc-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetMvc.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-aspnetmvc-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetMvc.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-aspnetmvc-mcp": {
+ "command": "dnx",
+ "args": [
+ "Syncfusion.AspNetMvc.MCP", "--yes"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+### .NET 8 or .NET 9 SDK (manual)
+
+If you are using only .NET 8 or .NET 9, install the Syncfusion ASP.NET MVC MCP Server as a local tool from your workspace directory:
+
+```bash
+dotnet tool install Syncfusion.AspNetMvc.MCP --add-source "https://nexus.syncfusioninternal.com/repository/nuget-hosted/"
+```
+
+This installs the Syncfusion ASP.NET MVC MCP Server locally within your workspace. Then add the following configuration to the `mcp.json` file:
+
+```json
+{
+ "servers": {
+ "sf-aspnetmvc-mcp": {
+ "type": "stdio",
+ "command": "dotnet",
+ "args": [
+ "tool",
+ "run",
+ "syncfusion-aspnetmvc-mcp"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+```
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-aspnetmvc-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below demonstrate common ASP.NET MVC Spreadsheet scenarios and how the MCP tools can provide relevant guidance, code examples, API references, and troubleshooting assistance. Tools can be invoked directly for specific tasks, or an AI assistant can automatically choose the most appropriate tool based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for ASP.NET MVC Spreadsheet applications.
+
+{% promptcards %}
+{% promptcard Spreadsheet Setup %}
+#search_docs How do I configure the ASP.NET MVC Spreadsheet component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard JSON Data Binding %}
+#search_docs How can I bind JSON data to an ASP.NET MVC Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to Spreadsheet applications that are already in the project.
+
+{% promptcards %}
+{% promptcard Open and Save Excel Files %}
+#search_docs How do I open and save Excel files programmatically in an ASP.NET MVC Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard Spreadsheet Charts %}
+#search_docs How do I create a chart from Spreadsheet data in ASP.NET MVC?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Troubleshooting**
+
+Describe the problem in plain language, and let `search_docs` help resolve it.
+
+{% promptcards %}
+{% promptcard Performance Issues %}
+#search_docs Why is my ASP.NET MVC Spreadsheet slow when opening large datasets?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best practices
+
+To get the most out of the Syncfusion® Spreadsheet MCP Server:
+
+- **Be Specific** - Include the platform and Spreadsheet feature in your queries (for example, _"Can you show me how to render a Spreadsheet with default data in an ASP.NET MVC application?"_).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](https://help.syncfusion.com/document-processing/excel/spreadsheet/asp-net-mvc/getting-started-mvc) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+| --- | --- |
+| Server failed to start | Verify the .NET SDK version and JSON syntax in the config file, then restart your IDE. |
+| Invalid API key | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| Incorrect API key config | Verify the file location and content for a file path. For an inline key, check that the key is correctly updated. |
+| Wrong config file location | VS Code: `.vscode/mcp.json` Code Studio: `.codestudio/mcp.json` Cursor: `.cursor/mcp.json` in the workspace root. |
+| Manual install (.NET 8/9) | Ensure `dotnet tool install` succeeded and that `mcp.json` references the local tool via `dotnet tool run syncfusion-aspnetmvc-mcp`. |
+| Check IDE logs | VS Code / Code Studio: Output panel → "MCP" Cursor: Developer Console for MCP errors. |
+
+## Privacy and security
+
+The Syncfusion MCP Server acts as a knowledge bridge between the selected AI model and Syncfusion documentation.
+
+- The tools process requests according to the user's query without storing any content or prompts.
+- User prompts are not stored or used for other purposes.
+- Prompts are not used to train Syncfusion models.
+- The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
diff --git a/Document-Processing/Excel/Spreadsheet/Angular/mcp.md b/Document-Processing/Excel/Spreadsheet/Angular/mcp.md
new file mode 100644
index 0000000000..9803a2c0da
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Angular/mcp.md
@@ -0,0 +1,239 @@
+---
+layout: post
+title: Angular Spreadsheet MCP Server Configuration | Syncfusion®
+description: Install and configure the Syncfusion® Angular Spreadsheet MCP Server to access documentation, API guidance, code examples, and troubleshooting support.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+keywords: Angular Agentic UI Builder, MCP Server, search docs, Spreadsheet SDK, Server Packages
+---
+
+# Angular Spreadsheet MCP Server
+
+The Syncfusion® Angular MCP Server accelerates Spreadsheet application development by providing relevant documentation, API references, feature guidance, code examples, and troubleshooting information directly within an AI-powered IDE. The server uses the [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) to connect an AI assistant with Syncfusion Angular documentation.
+
+Use the `search_docs` tool to obtain contextual guidance, code examples, and documentation for Angular Spreadsheet applications.
+
+> The previously available Agentic UI Builder (`#sf_angular_ui_builder`) has been upgraded to an Agent skill-based experience and is no longer part of the MCP Server. To learn more about the new Agentic UI Builder, see the [documentation](https://ej2.syncfusion.com/angular/documentation/mcp). The AI Coding Assistant (`#sf_angular_assistant`) has been renamed to `search_docs` (`#search_docs`) to ensure that the tool name follows MCP naming conventions.
+
+## Key benefits
+
+- **Spreadsheet-specific guidance**: Access relevant documentation for data binding, formulas, open and save operations, charts, conditional formatting, sorting, filtering, hyperlinks, scrolling, and other Spreadsheet features.
+- **API assistance**: Find Angular Spreadsheet properties, methods, and events with contextual usage guidance.
+- **Troubleshooting support**: Search for guidance related to rendering, data loading, import and export, and performance issues.
+- **IDE integration**: Use Syncfusion documentation from compatible MCP clients such as Visual Studio Code, Syncfusion Code Studio, Cursor, and JetBrains.
+- **Privacy-focused operation**: The MCP Server processes requests based on the submitted query without storing prompts or application content.
+
+## Prerequisites
+
+Before configuring the Angular MCP Server, ensure that you have:
+
+- **Node.js** version 18 or later.
+- A **compatible MCP client**, such as Visual Studio Code, Syncfusion Code Studio, Cursor, or JetBrains.
+- An active [Syncfusion API key](https://www.syncfusion.com/account/api-key).
+- An **Angular application** (existing or new); see [Quick Start](https://ej2.syncfusion.com/angular/documentation/getting-started/angular-cli)
+- An active Syncfusion® license, such as one of the following:
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+## Obtain a Syncfusion API key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a .txt or .key file. The saved file will be referenced in the MCP configuration:
+
+```json
+"env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+}
+```
+
+Alternatively, provide the API key directly:
+
+```json
+"env": {
+ "Syncfusion_API_Key": "YOUR_SYNCFUSION_API_KEY"
+}
+```
+
+> Using `Syncfusion_API_Key_Path` is recommended because it helps keep the API key out of source control. Do not commit an API key or key file to a repository.
+
+## Configure the Angular MCP Server
+
+Create the MCP configuration file in the root folder of the Angular Spreadsheet application. Use the configuration that corresponds to your MCP client.
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-angular-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/angular-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-angular-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/angular-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-angular-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/angular-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-angular-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/angular-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-angular-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below demonstrate common Angular Spreadsheet scenarios and how the MCP tools can provide relevant guidance, code examples, API references, and troubleshooting assistance. Tools can be invoked directly for specific tasks, or an AI assistant can automatically choose the most appropriate tool based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for Angular Spreadsheet applications.
+
+{% promptcards %}
+{% promptcard Spreadsheet Setup %}
+#search_docs How do I configure the Angular Spreadsheet component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard JSON Data Binding %}
+#search_docs How can I bind JSON data to an Angular Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to Spreadsheet applications that are already in the project.
+
+{% promptcards %}
+{% promptcard Open and Save Excel Files %}
+#search_docs How do I open and save Excel files programmatically in an Angular Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard Spreadsheet Charts %}
+#search_docs How do I create a chart from Spreadsheet data in Angular?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Troubleshooting**
+
+Describe the problem in plain language, and let `search_docs` help resolve it.
+
+{% promptcards %}
+{% promptcard Performance Issues %}
+#search_docs Why is my Angular Spreadsheet slow when opening large datasets?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best practices
+
+To get the most out of the Syncfusion® Spreadsheet MCP Server:
+
+- **Be Specific** - Include the platform and Spreadsheet feature in your queries (for example, _"Can you show me how to render a Spreadsheet with default data in an Angular application?"_).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](https://help.syncfusion.com/document-processing/excel/spreadsheet/angular/overview) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+| --- | --- |
+| Clear npm cache | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues. |
+| Server failed to start | Update to Node.js 18+, verify JSON syntax in the config file, and restart your IDE. |
+| Invalid API key | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| Incorrect API key config | Verify the file location and content for a file path. For an inline key, check that the key is correctly updated. |
+| Wrong config file location | VS Code: `.vscode/mcp.json` Code Studio: `.codestudio/mcp.json` Cursor: `.cursor/mcp.json` in the workspace root. |
+| Check IDE logs | VS Code / Code Studio: Output panel → "MCP" Cursor: Developer Console for MCP errors. |
+
+## Privacy and security
+
+The Syncfusion MCP Server acts as a knowledge bridge between the selected AI model and Syncfusion documentation.
+
+- The tools process requests according to the user's query without storing any content or prompts.
+- User prompts are not stored or used for other purposes.
+- Prompts are not used to train Syncfusion models.
+- The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
diff --git a/Document-Processing/Excel/Spreadsheet/Blazor/clipboard.md b/Document-Processing/Excel/Spreadsheet/Blazor/clipboard.md
index 96087a6c39..6d405bb58f 100644
--- a/Document-Processing/Excel/Spreadsheet/Blazor/clipboard.md
+++ b/Document-Processing/Excel/Spreadsheet/Blazor/clipboard.md
@@ -499,7 +499,7 @@ The available parameters in the [PasteCellAsync()](https://help.syncfusion.com/c
| cellAddress | string (optional) | Specifies the target cell or range of cells for pasting clipboard content. Accepts either a single cell reference from a specific worksheet (for example, **"Sheet1!A1"**) or a range of cells (for example, **"Sheet2!A1:C5"**). A valid cell selection must exist before executing the paste operation. If no parameter is provided, the currently selected cell or range will be used as the paste destination. |
{% tabs %}
-{% highlight razor tabtitle="Index.razor" %}
+{% highlight razor tabtitle="Index.razor" %}
@page "/"
@using Syncfusion.Blazor.Spreadsheet
diff --git a/Document-Processing/Excel/Spreadsheet/Javascript-ES5/mcp.md b/Document-Processing/Excel/Spreadsheet/Javascript-ES5/mcp.md
new file mode 100644
index 0000000000..2af79ddc45
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Javascript-ES5/mcp.md
@@ -0,0 +1,239 @@
+---
+layout: post
+title: JavaScript Spreadsheet MCP Server Setup | Syncfusion®
+description: Install and configure the Syncfusion® JavaScript Spreadsheet MCP Server to access documentation, API guidance, code examples, and troubleshooting support.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+keywords: JavaScript Agentic UI Builder, MCP Server, search docs, Spreadsheet SDK, Server Packages
+---
+
+# JavaScript(ES5) Spreadsheet MCP Server
+
+The Syncfusion® JavaScript MCP Server accelerates Spreadsheet application development by providing relevant documentation, API references, feature guidance, code examples, and troubleshooting information directly within an AI-powered IDE. The server uses the [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) to connect an AI assistant with Syncfusion JavaScript documentation.
+
+Use the `search_docs` tool to obtain contextual guidance, code examples, and documentation for JavaScript Spreadsheet applications.
+
+> The previously available Agentic UI Builder (`#sf_javascript_ui_builder`) has been upgraded to an Agent skill-based experience and is no longer part of the MCP Server. To learn more about the new Agentic UI Builder, see the [documentation](https://ej2.syncfusion.com/javascript/documentation/mcp). The AI Coding Assistant (`#sf_javascript_assistant`) has been renamed to `search_docs` (`#search_docs`) to ensure that the tool name follows MCP naming conventions.
+
+## Key benefits
+
+- **Spreadsheet-specific guidance**: Access relevant documentation for data binding, formulas, open and save operations, charts, conditional formatting, sorting, filtering, hyperlinks, scrolling, and other Spreadsheet features.
+- **API assistance**: Find JavaScript Spreadsheet properties, methods, and events with contextual usage guidance.
+- **Troubleshooting support**: Search for guidance related to rendering, data loading, import and export, and performance issues.
+- **IDE integration**: Use Syncfusion documentation from compatible MCP clients such as Visual Studio Code, Syncfusion Code Studio, Cursor, and JetBrains.
+- **Privacy-focused operation**: The MCP Server processes requests based on the submitted query without storing prompts or application content.
+
+## Prerequisites
+
+Before configuring the JavaScript MCP Server, ensure that you have:
+
+- **Node.js** version 18 or later.
+- A **compatible MCP client**, such as Visual Studio Code, Syncfusion Code Studio, Cursor, or JetBrains.
+- An active [Syncfusion API key](https://www.syncfusion.com/account/api-key).
+- A **JavaScript application** (existing or new); see [Quick Start](https://ej2.syncfusion.com/javascript/documentation/getting-started/quick-start)
+- An active Syncfusion® license, such as one of the following:
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+## Obtain a Syncfusion API key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a .txt or .key file. The saved file will be referenced in the MCP configuration:
+
+```json
+"env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+}
+```
+
+Alternatively, provide the API key directly:
+
+```json
+"env": {
+ "Syncfusion_API_Key": "YOUR_SYNCFUSION_API_KEY"
+}
+```
+
+> Using `Syncfusion_API_Key_Path` is recommended because it helps keep the API key out of source control. Do not commit an API key or key file to a repository.
+
+## Configure the JavaScript MCP Server
+
+Create the MCP configuration file in the root folder of the JavaScript Spreadsheet application. Use the configuration that corresponds to your MCP client.
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-javascript-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/javascript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-javascript-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/javascript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-javascript-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/javascript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-javascript-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/javascript-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-javascript-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below demonstrate common JavaScript Spreadsheet scenarios and how the MCP tools can provide relevant guidance, code examples, API references, and troubleshooting assistance. Tools can be invoked directly for specific tasks, or an AI assistant can automatically choose the most appropriate tool based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for JavaScript Spreadsheet applications.
+
+{% promptcards %}
+{% promptcard Spreadsheet Setup %}
+#search_docs How do I configure the JavaScript Spreadsheet component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard JSON Data Binding %}
+#search_docs How can I bind JSON data to a JavaScript Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to Spreadsheet applications that are already in the project.
+
+{% promptcards %}
+{% promptcard Open and Save Excel Files %}
+#search_docs How do I open and save Excel files programmatically in a JavaScript Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard Spreadsheet Charts %}
+#search_docs How do I create a chart from Spreadsheet data in JavaScript?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Troubleshooting**
+
+Describe the problem in plain language, and let `search_docs` help resolve it.
+
+{% promptcards %}
+{% promptcard Performance Issues %}
+#search_docs Why is my JavaScript Spreadsheet slow when opening large datasets?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best practices
+
+To get the most out of the Syncfusion® Spreadsheet MCP Server:
+
+- **Be Specific** - Include the platform and Spreadsheet feature in your queries (for example, _"Can you show me how to render a Spreadsheet with default data in a JavaScript application?"_).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](https://help.syncfusion.com/document-processing/excel/spreadsheet/javascript-es5/getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+| --- | --- |
+| Clear npm cache | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues. |
+| Server failed to start | Update to Node.js 18+, verify JSON syntax in the config file, and restart your IDE. |
+| Invalid API key | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| Incorrect API key config | Verify the file location and content for a file path. For an inline key, check that the key is correctly updated. |
+| Wrong config file location | VS Code: `.vscode/mcp.json` Code Studio: `.codestudio/mcp.json` Cursor: `.cursor/mcp.json` in the workspace root. |
+| Check IDE logs | VS Code / Code Studio: Output panel → "MCP" Cursor: Developer Console for MCP errors. |
+
+## Privacy and security
+
+The Syncfusion MCP Server acts as a knowledge bridge between the selected AI model and Syncfusion documentation.
+
+- The tools process requests according to the user's query without storing any content or prompts.
+- User prompts are not stored or used for other purposes.
+- Prompts are not used to train Syncfusion models.
+- The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
diff --git a/Document-Processing/Excel/Spreadsheet/Javascript-ES6/mcp.md b/Document-Processing/Excel/Spreadsheet/Javascript-ES6/mcp.md
new file mode 100644
index 0000000000..0dc6d7c8e9
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Javascript-ES6/mcp.md
@@ -0,0 +1,239 @@
+---
+layout: post
+title: TypeScript Spreadsheet MCP Server Setup | Syncfusion®
+description: Install and configure the Syncfusion® TypeScript Spreadsheet MCP Server to access documentation, API guidance, code examples, and troubleshooting support.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+keywords: TypeScript Agentic UI Builder, MCP Server, search docs, Spreadsheet SDK, Server Packages
+---
+
+# TypeScript Spreadsheet MCP Server
+
+The Syncfusion® TypeScript MCP Server accelerates Spreadsheet application development by providing relevant documentation, API references, feature guidance, code examples, and troubleshooting information directly within an AI-powered IDE. The server uses the [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) to connect an AI assistant with Syncfusion TypeScript documentation.
+
+Use the `search_docs` tool to obtain contextual guidance, code examples, and documentation for TypeScript Spreadsheet applications.
+
+> The previously available Agentic UI Builder (`#sf_typescript_ui_builder`) has been upgraded to an Agent skill-based experience and is no longer part of the MCP Server. To learn more about the new Agentic UI Builder, see the [documentation](https://ej2.syncfusion.com/documentation/mcp). The AI Coding Assistant (`#sf_typescript_assistant`) has been renamed to `search_docs` (`#search_docs`) to ensure that the tool name follows MCP naming conventions.
+
+## Key benefits
+
+- **Spreadsheet-specific guidance**: Access relevant documentation for data binding, formulas, open and save operations, charts, conditional formatting, sorting, filtering, hyperlinks, scrolling, and other Spreadsheet features.
+- **API assistance**: Find TypeScript Spreadsheet properties, methods, and events with contextual usage guidance.
+- **Troubleshooting support**: Search for guidance related to rendering, data loading, import and export, and performance issues.
+- **IDE integration**: Use Syncfusion documentation from compatible MCP clients such as Visual Studio Code, Syncfusion Code Studio, Cursor, and JetBrains.
+- **Privacy-focused operation**: The MCP Server processes requests based on the submitted query without storing prompts or application content.
+
+## Prerequisites
+
+Before configuring the TypeScript MCP Server, ensure that you have:
+
+- **Node.js** version 18 or later.
+- A **compatible MCP client**, such as Visual Studio Code, Syncfusion Code Studio, Cursor, or JetBrains.
+- An active [Syncfusion API key](https://www.syncfusion.com/account/api-key).
+- A **TypeScript application** (existing or new); see [Quick Start](https://ej2.syncfusion.com/documentation/getting-started/quick-start)
+- An active Syncfusion® license, such as one of the following:
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+## Obtain a Syncfusion API key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a .txt or .key file. The saved file will be referenced in the MCP configuration:
+
+```json
+"env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+}
+```
+
+Alternatively, provide the API key directly:
+
+```json
+"env": {
+ "Syncfusion_API_Key": "YOUR_SYNCFUSION_API_KEY"
+}
+```
+
+> Using `Syncfusion_API_Key_Path` is recommended because it helps keep the API key out of source control. Do not commit an API key or key file to a repository.
+
+## Configure the TypeScript MCP Server
+
+Create the MCP configuration file in the root folder of the TypeScript Spreadsheet application. Use the configuration that corresponds to your MCP client.
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-typescript-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/typescript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-typescript-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/typescript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-typescript-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/typescript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-typescript-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/typescript-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-typescript-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below demonstrate common TypeScript Spreadsheet scenarios and how the MCP tools can provide relevant guidance, code examples, API references, and troubleshooting assistance. Tools can be invoked directly for specific tasks, or an AI assistant can automatically choose the most appropriate tool based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for TypeScript Spreadsheet applications.
+
+{% promptcards %}
+{% promptcard Spreadsheet Setup %}
+#search_docs How do I configure the TypeScript Spreadsheet component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard JSON Data Binding %}
+#search_docs How can I bind JSON data to a TypeScript Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to Spreadsheet applications that are already in the project.
+
+{% promptcards %}
+{% promptcard Open and Save Excel Files %}
+#search_docs How do I open and save Excel files programmatically in a TypeScript Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard Spreadsheet Charts %}
+#search_docs How do I create a chart from Spreadsheet data in TypeScript?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Troubleshooting**
+
+Describe the problem in plain language, and let `search_docs` help resolve it.
+
+{% promptcards %}
+{% promptcard Performance Issues %}
+#search_docs Why is my TypeScript Spreadsheet slow when opening large datasets?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best practices
+
+To get the most out of the Syncfusion® Spreadsheet MCP Server:
+
+- **Be Specific** - Include the platform and Spreadsheet feature in your queries (for example, _"Can you show me how to render a Spreadsheet with default data in a TypeScript application?"_).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](https://help.syncfusion.com/document-processing/excel/spreadsheet/javascript-es6/getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+| --- | --- |
+| Clear npm cache | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues. |
+| Server failed to start | Update to Node.js 18+, verify JSON syntax in the config file, and restart your IDE. |
+| Invalid API key | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| Incorrect API key config | Verify the file location and content for a file path. For an inline key, check that the key is correctly updated. |
+| Wrong config file location | VS Code: `.vscode/mcp.json` Code Studio: `.codestudio/mcp.json` Cursor: `.cursor/mcp.json` in the workspace root. |
+| Check IDE logs | VS Code / Code Studio: Output panel → "MCP" Cursor: Developer Console for MCP errors. |
+
+## Privacy and security
+
+The Syncfusion MCP Server acts as a knowledge bridge between the selected AI model and Syncfusion documentation.
+
+- The tools process requests according to the user's query without storing any content or prompts.
+- User prompts are not stored or used for other purposes.
+- Prompts are not used to train Syncfusion models.
+- The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
diff --git a/Document-Processing/Excel/Spreadsheet/React/mcp.md b/Document-Processing/Excel/Spreadsheet/React/mcp.md
new file mode 100644
index 0000000000..904b346608
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/React/mcp.md
@@ -0,0 +1,245 @@
+---
+layout: post
+title: React Spreadsheet MCP Server Configuration | Syncfusion®
+description: Install and configure the Syncfusion® React Spreadsheet MCP Server to access documentation, API guidance, code examples, and troubleshooting support.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+keywords: React Agentic UI Builder, MCP Server, search docs, Spreadsheet SDK, Server Packages
+---
+
+# React Spreadsheet MCP Server
+
+The Syncfusion® React MCP Server accelerates Spreadsheet application development by providing relevant documentation, API references, feature guidance, code examples, and troubleshooting information directly within an AI-powered IDE. The server uses the [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) to connect an AI assistant with Syncfusion React documentation.
+
+Use the `search_docs` tool to obtain contextual guidance, code examples, and documentation for React Spreadsheet applications.
+
+> The previously available Agentic UI Builder (`#sf_react_ui_builder`) has been upgraded to an Agent skill-based experience and is no longer part of the MCP Server. To learn more about the new Agentic UI Builder, see the [documentation](https://ej2.syncfusion.com/react/documentation/mcp). The AI Coding Assistant (`#sf_react_assistant`) has been renamed to `search_docs` (`#search_docs`) to ensure that the tool name follows MCP naming conventions.
+
+## Key benefits
+
+- **Spreadsheet-specific guidance**: Access relevant documentation for data binding, formulas, open and save operations, charts, conditional formatting, sorting, filtering, hyperlinks, scrolling, and other Spreadsheet features.
+- **API assistance**: Find React Spreadsheet properties, methods, and events with contextual usage guidance.
+- **Troubleshooting support**: Search for guidance related to rendering, data loading, import and export, and performance issues.
+- **IDE integration**: Use Syncfusion documentation from compatible MCP clients such as Visual Studio Code, Syncfusion Code Studio, Cursor, and JetBrains.
+- **Privacy-focused operation**: The MCP Server processes requests based on the submitted query without storing prompts or application content.
+
+## Prerequisites
+
+Before configuring the React MCP Server, ensure that you have:
+
+- **Node.js** version 18 or later.
+- A **compatible MCP client**, such as Visual Studio Code, Syncfusion Code Studio, Cursor, or JetBrains.
+- An active [Syncfusion API key](https://www.syncfusion.com/account/api-key).
+- A **React application** (existing or new); see [Quick Start](https://ej2.syncfusion.com/react/documentation/getting-started/quick-start)
+- An active Syncfusion® license, such as one of the following:
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+## Obtain a Syncfusion API key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a .txt or .key file. The saved file will be referenced in the MCP configuration:
+
+```json
+"env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+}
+```
+
+Alternatively, provide the API key directly:
+
+```json
+"env": {
+ "Syncfusion_API_Key": "YOUR_SYNCFUSION_API_KEY"
+}
+```
+
+> Using `Syncfusion_API_Key_Path` is recommended because it helps keep the API key out of source control. Do not commit an API key or key file to a repository.
+
+## Configure the React MCP Server
+
+Create the MCP configuration file in the root folder of the React Spreadsheet application. Use the configuration that corresponds to your MCP client.
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-react-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/react-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-react-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/react-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-react-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/react-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-react-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/react-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-react-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below demonstrate common React Spreadsheet scenarios and how the MCP tools can provide relevant guidance, code examples, API references, and troubleshooting assistance. Tools can be invoked directly for specific tasks, or an AI assistant can automatically choose the most appropriate tool based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for React Spreadsheet applications.
+
+{% promptcards %}
+{% promptcard Spreadsheet Setup %}
+#search_docs How do I configure the React Spreadsheet component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard JSON Data Binding %}
+#search_docs How can I bind JSON data to a React Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to Spreadsheet applications that are already in the project.
+
+{% promptcards %}
+{% promptcard Open and Save Excel Files %}
+#search_docs How do I open and save Excel files programmatically in a React Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard Spreadsheet Charts %}
+#search_docs How do I create a chart from Spreadsheet data in React?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Troubleshooting**
+
+Describe the problem in plain language, and let `search_docs` help resolve it.
+
+{% promptcards %}
+{% promptcard Performance Issues %}
+#search_docs Why is my React Spreadsheet slow when opening large datasets?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard Formulas %}
+#search_docs Why does React Spreadsheet show HTTP 413 entity too large error while export large Excel files?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best practices
+
+To get the most out of the Syncfusion® Spreadsheet MCP Server:
+
+- **Be Specific** - Include the platform and Spreadsheet feature in your queries (for example, _"Can you show me how to render a Spreadsheet with default data in a React application?"_).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](https://help.syncfusion.com/document-processing/excel/spreadsheet/react/overview) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+| --- | --- |
+| Clear npm cache | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues. |
+| Server failed to start | Update to Node.js 18+, verify JSON syntax in the config file, and restart your IDE. |
+| Invalid API key | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| Incorrect API key config | Verify the file location and content for a file path. For an inline key, check that the key is correctly updated. |
+| Wrong config file location | VS Code: `.vscode/mcp.json` Code Studio: `.codestudio/mcp.json` Cursor: `.cursor/mcp.json` in the workspace root. |
+| Check IDE logs | VS Code / Code Studio: Output panel → "MCP" Cursor: Developer Console for MCP errors. |
+
+## Privacy and security
+
+The Syncfusion MCP Server acts as a knowledge bridge between the selected AI model and Syncfusion documentation.
+
+- The tools process requests according to the user's query without storing any content or prompts.
+- User prompts are not stored or used for other purposes.
+- Prompts are not used to train Syncfusion models.
+- The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
diff --git a/Document-Processing/Excel/Spreadsheet/Vue/mcp.md b/Document-Processing/Excel/Spreadsheet/Vue/mcp.md
new file mode 100644
index 0000000000..83b9d86a64
--- /dev/null
+++ b/Document-Processing/Excel/Spreadsheet/Vue/mcp.md
@@ -0,0 +1,239 @@
+---
+layout: post
+title: Vue Spreadsheet MCP Server Configuration | Syncfusion®
+description: Install and configure the Syncfusion® Vue Spreadsheet MCP Server to access documentation, API guidance, code examples, and troubleshooting support.
+control: Spreadsheet
+platform: document-processing
+documentation: ug
+keywords: Vue Agentic UI Builder, MCP Server, search docs, Spreadsheet SDK, Server Packages
+---
+
+# Vue Spreadsheet MCP Server
+
+The Syncfusion® Vue MCP Server accelerates Spreadsheet application development by providing relevant documentation, API references, feature guidance, code examples, and troubleshooting information directly within an AI-powered IDE. The server uses the [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) to connect an AI assistant with Syncfusion Vue documentation.
+
+Use the `search_docs` tool to obtain contextual guidance, code examples, and documentation for Vue Spreadsheet applications.
+
+> The previously available Agentic UI Builder (`#sf_vue_ui_builder`) has been upgraded to an Agent skill-based experience and is no longer part of the MCP Server. To learn more about the new Agentic UI Builder, see the [documentation](https://ej2.syncfusion.com/vue/documentation/mcp). The AI Coding Assistant (`#sf_vue_assistant`) has been renamed to `search_docs` (`#search_docs`) to ensure that the tool name follows MCP naming conventions.
+
+## Key benefits
+
+- **Spreadsheet-specific guidance**: Access relevant documentation for data binding, formulas, open and save operations, charts, conditional formatting, sorting, filtering, hyperlinks, scrolling, and other Spreadsheet features.
+- **API assistance**: Find Vue Spreadsheet properties, methods, and events with contextual usage guidance.
+- **Troubleshooting support**: Search for guidance related to rendering, data loading, import and export, and performance issues.
+- **IDE integration**: Use Syncfusion documentation from compatible MCP clients such as Visual Studio Code, Syncfusion Code Studio, Cursor, and JetBrains.
+- **Privacy-focused operation**: The MCP Server processes requests based on the submitted query without storing prompts or application content.
+
+## Prerequisites
+
+Before configuring the Vue MCP Server, ensure that you have:
+
+- **Node.js** version 18 or later.
+- A **compatible MCP client**, such as Visual Studio Code, Syncfusion Code Studio, Cursor, or JetBrains.
+- An active [Syncfusion API key](https://www.syncfusion.com/account/api-key).
+- A **Vue application** (existing or new); see [Quick Start](https://ej2.syncfusion.com/vue/documentation/getting-started/vue-3-js-composition)
+- An active Syncfusion® license, such as one of the following:
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+## Obtain a Syncfusion API key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a .txt or .key file. The saved file will be referenced in the MCP configuration:
+
+```json
+"env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+}
+```
+
+Alternatively, provide the API key directly:
+
+```json
+"env": {
+ "Syncfusion_API_Key": "YOUR_SYNCFUSION_API_KEY"
+}
+```
+
+> Using `Syncfusion_API_Key_Path` is recommended because it helps keep the API key out of source control. Do not commit an API key or key file to a repository.
+
+## Configure the Vue MCP Server
+
+Create the MCP configuration file in the root folder of the Vue Spreadsheet application. Use the configuration that corresponds to your MCP client.
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-vue-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/vue-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-vue-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/vue-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-vue-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/vue-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-vue-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/vue-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-vue-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below demonstrate common Vue Spreadsheet scenarios and how the MCP tools can provide relevant guidance, code examples, API references, and troubleshooting assistance. Tools can be invoked directly for specific tasks, or an AI assistant can automatically choose the most appropriate tool based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for Vue Spreadsheet applications.
+
+{% promptcards %}
+{% promptcard Spreadsheet Setup %}
+#search_docs How do I configure the Vue Spreadsheet component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard JSON Data Binding %}
+#search_docs How can I bind JSON data to a Vue Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to Spreadsheet applications that are already in the project.
+
+{% promptcards %}
+{% promptcard Open and Save Excel Files %}
+#search_docs How do I open and save Excel files programmatically in a Vue Spreadsheet?
+{% endpromptcard %}
+{% endpromptcards %}
+
+{% promptcards %}
+{% promptcard Spreadsheet Charts %}
+#search_docs How do I create a chart from Spreadsheet data in Vue?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Troubleshooting**
+
+Describe the problem in plain language, and let `search_docs` help resolve it.
+
+{% promptcards %}
+{% promptcard Performance Issues %}
+#search_docs Why is my Vue Spreadsheet slow when opening large datasets?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best practices
+
+To get the most out of the Syncfusion® Spreadsheet MCP Server:
+
+- **Be Specific** - Include the platform and Spreadsheet feature in your queries (for example, _"Can you show me how to render a Spreadsheet with default data in a Vue application?"_).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](https://help.syncfusion.com/document-processing/excel/spreadsheet/vue/overview) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+| --- | --- |
+| Clear npm cache | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues. |
+| Server failed to start | Update to Node.js 18+, verify JSON syntax in the config file, and restart your IDE. |
+| Invalid API key | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| Incorrect API key config | Verify the file location and content for a file path. For an inline key, check that the key is correctly updated. |
+| Wrong config file location | VS Code: `.vscode/mcp.json` Code Studio: `.codestudio/mcp.json` Cursor: `.cursor/mcp.json` in the workspace root. |
+| Check IDE logs | VS Code / Code Studio: Output panel → "MCP" Cursor: Developer Console for MCP errors. |
+
+## Privacy and security
+
+The Syncfusion MCP Server acts as a knowledge bridge between the selected AI model and Syncfusion documentation.
+
+- The tools process requests according to the user's query without storing any content or prompts.
+- User prompts are not stored or used for other purposes.
+- Prompts are not used to train Syncfusion models.
+- The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
diff --git a/Document-Processing/Markdown/Conversions/Performance-metrics.md b/Document-Processing/Markdown/Conversions/Performance-metrics.md
new file mode 100644
index 0000000000..639c1f586b
--- /dev/null
+++ b/Document-Processing/Markdown/Conversions/Performance-metrics.md
@@ -0,0 +1,100 @@
+---
+title: Markdown conversions Performance benchmark results | Syncfusion
+description: Explore the performance benchmark results of Markdown conversion across documents of varying sizes and complexities
+platform: document-processing
+control: Markdown
+documentation: UG
+---
+
+# Conversion performance benchmarks using .NET Markdown Library
+
+The Syncfusion® [.NET Markdown Library](https://www.syncfusion.com/document-sdk/net-markdown-library) enables high-performance Markdown document processing and conversions. This performance benchmark report highlights the speed and efficiency of Markdown document operations, demonstrating how the library performs across various processing and conversion scenarios using representative workloads.
+
+## Environment
+
+The following system configurations were used for benchmarking:
+
+* **Operating System:** Windows 11
+* **Processor:** AMD Ryzen 5 7520U with Radeon Graphics
+* **RAM:** 16GB
+* **.NET Version:** .NET 8.0
+* **Syncfusion® Version:** [Syncfusion.Markdown v34.1.29](https://www.nuget.org/packages/Syncfusion.Markdown/34.1.29)
+
+## Benchmark Results
+
+The table below presents the performance results of various Markdown document operations, evaluated using predefined input conditions in the previously described environment. Each row includes the operation performed, the input details, the average execution time, and a link to the corresponding GitHub example.
+
+
+
+
Operation
+
Input Details
+
Syncfusion® Time (sec)
+
GitHub Example
+
+
+
{{'[Word to MD](https://help.syncfusion.com/document-processing/word/conversions/word-to-markdown-conversion)'| markdownify }}
+
+N> Execution times are based on the sample documents and may vary with different content or environments.
+
+N> **Note:** The conversion operations listed in this benchmark use different Syncfusion® document processing libraries based on the source and target formats.
+N>
+N> - **Word to Markdown**, **Markdown to Word**, and **Markdown to PDF** conversions use the **Syncfusion® .NET Word Library (DocIO)**: [Syncfusion.DocIO.Net.Core v34.1.29](https://www.nuget.org/packages/Syncfusion.DocIO.Net.Core/34.1.29)
+N>
+N> - **Markdown to PDF** conversion uses the **Syncfusion® DocIORenderer** package to render Markdown documents as PDF: [Syncfusion.DocIORenderer.Net.Core v34.1.29](https://www.nuget.org/packages/Syncfusion.DocIORenderer.Net.Core/34.1.29)
+N>
+N> - **Excel to Markdown** and **Markdown to Excel** conversions use the **Syncfusion® .NET Excel Library (XlsIO)**: [Syncfusion.XlsIO.Net.Core v34.1.29](https://www.nuget.org/packages/Syncfusion.XlsIO.Net.Core/34.1.29)
+N>
+N> - **PowerPoint to Markdown** and **Markdown to PowerPoint** conversions use the **Syncfusion® .NET PowerPoint Library**: [Syncfusion.Presentation.Net.Core v34.1.29](https://www.nuget.org/packages/Syncfusion.Presentation.Net.Core/34.1.29)
\ No newline at end of file
diff --git a/Document-Processing/Markdown/Markdown-Library/NET/Performance-metrics.md b/Document-Processing/Markdown/Markdown-Library/NET/Performance-metrics.md
new file mode 100644
index 0000000000..6420ff37fb
--- /dev/null
+++ b/Document-Processing/Markdown/Markdown-Library/NET/Performance-metrics.md
@@ -0,0 +1,82 @@
+---
+title: Markdown library Performance benchmark results | Syncfusion
+description: Explore Markdown library performance benchmarks across various document sizes and conversion scenarios.
+platform: document-processing
+control: Markdown
+documentation: UG
+---
+
+# .NET Markdown library performance benchmarks
+
+The [.NET Markdown Library](https://www.syncfusion.com/document-sdk/net-markdown-library) provides high-performance APIs to create, read, edit, and convert Markdown documents programmatically. This performance benchmark report highlights the speed and efficiency of key operations, demonstrating how Markdown library handles large-scale document processing in real-world scenarios.
+
+## Environment
+
+The following system configurations were used for benchmarking:
+
+* **Operating System:** Windows 11
+* **Processor:** AMD Ryzen 5 7520U with Radeon Graphics
+* **RAM:** 16GB
+* **.NET Version:** .NET 8.0
+* **Syncfusion® Version:** [Syncfusion.Markdown v34.1.29](https://www.nuget.org/packages/Syncfusion.Markdown/34.1.29)
+
+## Benchmark Results
+
+The table below shows the performance results of various Markdown document operations. Each operation was executed using the input document described in the **Input Details** column, and the reported time is the elapsed time for a single run in the environment described above.
+
+### Open and save Markdown
+
+
+
+You can find the sample used for this performance evaluation on [GitHub](https://github.com/SyncfusionExamples/Markdown-Examples/tree/master/Performance-metrices/Open-and-Save-MD-document/).
+
+### Markdown Library Operations
+
+
+
+N> Execution times are based on the sample documents and may vary with different content or environments.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/accessibility.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/accessibility.md
index fa971e56cb..cfcb3d9303 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/accessibility.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/accessibility.md
@@ -81,8 +81,8 @@ The PDF Viewer component follows the [keyboard interaction](https://www.w3.org/W
| | | **Shortcut for text search** |
| CONTROL + F | COMMAND + F | Open the search toolbar |
| | | **Shortcut for text selection** |
-| CONTROL + C | CONTROL + C | Copy selected text, annotation, or form field |
-| CONTROL + X | CONTROL + X | Cut selected text, annotation, or form field |
+| CONTROL + C | COMMAND + C | Copy selected text, annotation, or form field |
+| CONTROL + X | COMMAND + X | Cut selected text, annotation, or form field |
| CONTROL + V | COMMAND + V | Paste selected text, annotation, or form field |
| | | **Shortcuts for general operations** |
| CONTROL + Z | COMMAND + Z | Undo the action |
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/event.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/event.md
index 556a79f286..a5e6189f21 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/event.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/event.md
@@ -8,7 +8,7 @@ documentation: ug
# Events in ASP.NET Core PDF Viewer Control
-The PDF Viewer component provides a comprehensive event system for integrating custom logic into application workflows. Events are triggered throughout the document lifecycle, user interactions, and feature operations.
+The PDF Viewer component provides a comprehensive event system for integrating custom logic into application workflows. Events are triggered throughout the document life cycle, user interactions, and feature operations.
## Event reference table
@@ -474,7 +474,7 @@ Example:
@@ -492,7 +492,7 @@ Example:
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/globalization.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/globalization.md
index a709685db8..32ec013b11 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/globalization.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/globalization.md
@@ -307,6 +307,8 @@ The `locale` property enables you to specify the language and culture for the PD
To use a locale other than the default en-US, or to customize the localization strings, map the text content for the selected locale using the `ej.base.L10n.load()` method. This method registers the localized strings for your chosen locale, and the PDF Viewer will use them when displaying the interface.
+N> The `ej.base.L10n.load(...)` call must be registered **before** the PDF Viewer component initializes; otherwise the localized strings will not be applied. The `ej.base` namespace is available through the Syncfusion EJ2 scripts that are loaded by the Tag Helper.
+
**Example: Custom Arabic (ar-AE) localization**
Add the following script to register custom localization strings for the Arabic (UAE) locale:
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to-overview.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to-overview.md
index bf124e940a..f0eeab0028 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to-overview.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to-overview.md
@@ -11,25 +11,25 @@ documentation: ug
The following frequently asked questions address common ASP.NET Core PDF Viewer topics:
-* [How to add annotation in text search in ASP.NET Core ?](./how-to/add-annotation-in-text-search)
-* [How to add custom header to the PDF Viewer ajax request?](./how-to/authorization-token)
+* [How to add annotation in text search in ASP.NET Core?](./how-to/add-annotation-in-text-search)
+* [How to add a custom header to the PDF Viewer AJAX request?](./how-to/authorization-token)
* [How to add a save button to PDF Viewer toolbar?](./how-to/add-save-button)
* [How to customize the annotation selectors?](./how-to/configure-annotation-selector-setting)
* [How to delete a specific annotation from the PDF document?](./how-to/delete-a-specific-annotation)
* [How to control the visibility of the annotation?](./how-to/control-annotation-visibility)
-* [How to convert the PDF library bounds to PDF viewer bounds?](./how-to/convert-pdf-library-bounds-to-pdf-viewer-bounds)
+* [How to convert the PDF library bounds to PDF Viewer bounds?](./how-to/convert-pdf-library-bounds-to-pdf-viewer-bounds)
* [How to customize the context menu in PDF Viewer?](./how-to/custom-context-menu)
-* [How to add custom font in handwritten signature?](./how-to/custom-font-signature-field)
+* [How to add a custom font in handwritten signature?](./how-to/custom-font-signature-field)
* [How to add custom fonts for form fields and free text annotations?](./how-to/custom-fonts)
* [How to customize text search highlight color in PDF Viewer?](./how-to/customize-text-search-color)
* [How to disable the context menu?](./how-to/disable-context-menu)
* [How to disable tile rendering in PDF Viewer?](./how-to/disable-tile-rendering)
* [How to get the download start event?](./how-to/download-start-event)
* [How to enable or disable the local storage?](./how-to/enable-local-storage)
-* [Enable the resizer for text markup annotation?](./how-to/enable-resize)
+* [How to enable the resizer for text markup annotation?](./how-to/enable-resize)
* [How to enable or disable the text selection?](./how-to/enable-text-selection)
* [How to export the PDF pages as images?](./how-to/export-as-image)
-* [How to extract text from the PDF document?](./how-to/extract-text-completed)
+* [How to extract completed text from the PDF document?](./how-to/extract-text-completed)
* [How to extract text from a specific region?](./how-to/extract-text-option)
* [How to extract text from the PDF document?](./how-to/extract-text)
* [How to find the text in the PDF document asynchronously?](./how-to/find-text-async)
@@ -42,26 +42,26 @@ The following frequently asked questions address common ASP.NET Core PDF Viewer
* [How to open the bookmark pane when the document is loaded?](./how-to/open-bookmark)
* [How to open the thumbnail pane when the document is loaded?](./how-to/open-thumbnail)
* [How to get the page render started and completed event?](./how-to/pagerenderstarted-pagerendercompleted)
-* [How to resolve the `Unable to find an entry point named 'FreeExportedValues' in DLL 'pdfium''?](./how-to/resolve-unable-to-find-an-entry-point-error)
+* [How to resolve the `Unable to find an entry point named 'FreeExportedValues' in DLL 'pdfium'`?](./how-to/resolve-unable-to-find-an-entry-point-error)
* [How to restrict the zooming in mobile mode?](./how-to/restricting-zoom-in-mobile-mode)
* [How to show custom stamp item in the stamp annotation?](./how-to/show-custom-stamp-item)
* [How to show or hide a particular annotation?](./how-to/show-hide-annotation)
* [How to get the signature selected and unselected event?](./how-to/signatureselect-signatureunselect)
* [How to unload the PDF document from the viewer?](./how-to/unload-document)
* [How to clear the Web service not listening error?](./how-to/webservice-not-listening)
-* [How to Enable Bookmark pane in PDF Viewer?](./how-to/show-bookmark)
-* [How to Save original document at the server side?](./how-to/save-original-document-at-the-server-side)
-* [How to Configure retry timeout in PDF Viewer?](./how-to/retry-timeout)
-* [How to Resolve the Pdfium issue in PDF Viewer?](./how-to/resolve-pdfium-issue)
-* [How to Load N number of pages on initial loading in PDF Viewer?](./how-to/load-n-number-page)
-* [How to Instantiate the PDF Viewer component dynamically in PDF Viewer?](./how-to/Instantiate-pdfviewer-dynamically)
-* [How to Install packages based on OS in PDF Viewer?](./how-to/install-packages)
-* [How to Extract Text using TextLineCollection in PDF Viewer?](./how-to/extract-text-using-text-collections)
-* [How to Export As Image from PDF document in PDF Viewer?](./how-to/export-as-image-standalone)
-* [How to Display document without downloading in PDF Viewer?](./how-to/display-document-without-downloading)
-* [How to Capture the current page number being viewed in PDF Viewer?](./how-to/capture-page-number)
-* [How to select annotations in multi page?](./how-to/select-multi-page-annotations)
+* [How to enable Bookmark pane in PDF Viewer?](./how-to/show-bookmark)
+* [How to save original document at the server side?](./how-to/save-original-document-at-the-server-side)
+* [How to configure retry timeout in PDF Viewer?](./how-to/retry-timeout)
+* [How to resolve the Pdfium issue in PDF Viewer?](./how-to/resolve-pdfium-issue)
+* [How to load N number of pages on initial loading in PDF Viewer?](./how-to/load-n-number-page)
+* [How to instantiate the PDF Viewer component dynamically?](./how-to/Instantiate-pdfviewer-dynamically)
+* [How to install packages based on OS in PDF Viewer?](./how-to/install-packages)
+* [How to extract Text using TextLineCollection in PDF Viewer?](./how-to/extract-text-using-text-collections)
+* [How to export as image from PDF document in PDF Viewer?](./how-to/export-as-image-standalone)
+* [How to display document without downloading in PDF Viewer?](./how-to/display-document-without-downloading)
+* [How to capture the current page number being viewed in PDF Viewer?](./how-to/capture-page-number)
+* [How to select annotations in multi-page?](./how-to/select-multi-page-annotations)
* [How to get the annotation when it is overlapped with another annotation on its selection?](./how-to/overlapped-annotation)
* [How to print the PDF document silently?](./how-to/print-document)
-* [Load Document after resources Loaded](./how-to/load-document-after-resources-loaded)
-* [How to use local resources to configure PDF Viewer](./how-to/local-resources)
\ No newline at end of file
+* [How to load document after resources loaded](./how-to/load-document-after-resources-loaded)
+* [How to use local resources to configure PDF Viewer?](./how-to/local-resources)
\ No newline at end of file
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/Instantiate-pdfviewer-dynamically.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/Instantiate-pdfviewer-dynamically.md
index df71e2aac3..16ad9a2ba5 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/Instantiate-pdfviewer-dynamically.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/Instantiate-pdfviewer-dynamically.md
@@ -9,11 +9,11 @@ documentation: ug
# Dynamically instantiate the ASP.NET Core PDF Viewer
-The Syncfusion® ASP.NET Core PDF Viewer can be instantiated at runtime rather than during the initial page load. This dynamic approach is useful when the document to be displayed depends on user interaction or must be retrieved from a secure backend service.
+The Syncfusion® ASP.NET Core PDF Viewer can be instantiated at runtime rather than during the initial page load. This dynamic approach is useful when the document to be displayed depends on user interaction or must be retrieved from a secure back end service.
Follow these steps to instantiate the viewer component programmatically:
-1. **Verify Prerequisites:** Ensure your application references the required Syncfusion EJ2 script and style assets. The backend PDF Viewer service must be correctly configured in your ASP.NET Core application.
+1. **Verify Prerequisites:** Verify that your application references the required Syncfusion EJ2 script and style assets, and that the back end PDF Viewer service is correctly configured in your ASP.NET Core application.
2. **Setup Container:** Add a target container element and a trigger (such as a button) to the Razor view.
3. **Initialize Component:** To create the viewer instance, configure the [`serviceUrl`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewer.html#Syncfusion_EJ2_PdfViewer_PdfViewer_ServiceUrl) and [`documentPath`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewer.html#Syncfusion_EJ2_PdfViewer_PdfViewer_DocumentPath), and then mount it using the `appendTo` method.
@@ -22,12 +22,12 @@ The following example demonstrates how to load the viewer dynamically after an A
```html
-
+
```
-## Sample: Custom context menu output
+## Sample: Custom context menu
The following complete sample demonstrates a customized context menu with action handlers for all menu items:
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/custom-font-signature-field.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/custom-font-signature-field.md
index 25a556e2f0..bebf38acc4 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/custom-font-signature-field.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/custom-font-signature-field.md
@@ -17,7 +17,7 @@ The PDF Viewer supports changing fonts for Signature and Initial fields using th
**Step 1:** Follow the [Getting Started guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started) to set up a basic PDF Viewer instance.
-**Step 2:** Define the signature and initial field settings in your application:
+**Step 2:** Define the signature and initial field settings in your application and call the function (for example, on a button click or in the `documentLoaded` event) so the font arrays are applied to the viewer:
{% tabs %}
{% highlight html tabtitle="Standalone" %}
@@ -51,7 +51,7 @@ The PDF Viewer supports changing fonts for Signature and Initial fields using th
{% endhighlight %}
{% endtabs %}
-### Initial field property
+### typeInitialFonts property
Use the following code to apply custom fonts to the Initial field.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/custom-fonts.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/custom-fonts.md
index dcee0aa65c..cfb77994e0 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/custom-fonts.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/custom-fonts.md
@@ -8,7 +8,7 @@ documentation: ug
domainurl: ##DomainURL##
---
-# Add custom fonts to PDF forms in ASP.NET Core PDF Viewer
+# Add custom fonts in ASP.NET Core PDF Viewer
The Syncfusion ASP.NET Core PDF Viewer supports loading, editing, and saving custom fonts in interactive form fields such as [TextBox](../forms/manage-form-fields/create-form-fields#textbox), [ListBox](../forms/manage-form-fields/create-form-fields#listbox), and [DropDown](../forms/manage-form-fields/create-form-fields#dropdown). Use the `customFonts` property to ensure consistent text rendering even when specific fonts are not installed on the user's system.
@@ -31,7 +31,7 @@ The custom font workflow in the PDF Viewer involves these key steps:
### Step 1: Add TTF font files
-Place the TTF font files in the resource path used by the PDF Viewer. Fonts can be referenced in two ways:
+Place the TTF font files in the resource path used by the PDF Viewer (for example, the `wwwroot` folder in a typical ASP.NET Core project). Fonts can be referenced in two ways:
* **Relative Path:** (for example: `calibri.ttf` or `fallback-fonts/calibri.ttf`)
* **Absolute URL:** Host fonts on a secure server and reference them using a fully qualified URL. Ensure that the hosting server has **CORS** enabled.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/customize-text-search-color.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/customize-text-search-color.md
index 1c33d81710..a84dc95604 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/customize-text-search-color.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/customize-text-search-color.md
@@ -34,7 +34,7 @@ The following example demonstrates how to configure these colors in both Standal
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/disable-tile-rendering.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/disable-tile-rendering.md
index 11ee3fcc23..dcba654470 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/disable-tile-rendering.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/disable-tile-rendering.md
@@ -11,7 +11,7 @@ documentation: ug
Tile rendering is a performance-optimization feature used to display large PDF documents efficiently. In some scenarios, such as when viewing smaller documents or troubleshooting rendering artifacts, disabling this feature will help.
-Use the **enableTileRendering** property within the `tileRenderingSettings` object to toggle this behavior. By default, tile rendering is enabled.
+Use the **EnableTileRendering** property within the `tileRenderingSettings` object to toggle this behavior. By default, tile rendering is enabled.
N> Disabling tile rendering can improve initial performance for small documents but may result in slower rendering and increased memory usage for larger PDF files.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/enable-resize.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/enable-resize.md
index 4bf810b11d..a04ab98922 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/enable-resize.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/enable-resize.md
@@ -1,7 +1,7 @@
---
layout: post
-title: Enable resize in ASP.NET Core PDF Viewer control | Syncfusion
-description: Learn here all about Enable resize in Syncfusion ASP.NET Core PDF Viewer control of Syncfusion Essential JS 2 and more.
+title: Resize Text Markup Annotations in Syncfusion ASP.NET Core PDF Viewer
+description: Learn here all about resizing text markup annotations in Syncfusion ASP.NET Core PDF Viewer control of Syncfusion Essential JS 2 and more.
platform: document-processing
control: PDF Viewer
documentation: ug
@@ -9,13 +9,13 @@ documentation: ug
# Resize text markup annotations in ASP.NET Core PDF Viewer
-The PDF Viewer has the option to display resizers for text markup annotations using the **enableTextMarkupResizer** property. This feature allows users to adjust the dimensions of the markup after it has been added to the document.
+The PDF Viewer has the option to display resizer for text markup annotations using the **enableTextMarkupResizer** property. This feature allows users to adjust the dimensions of the markup after it has been added to the document.
The default value for this property is `false`.
## Enable text markup resizer
-Set the **EnableTextMarkupResizer** property to `true` in the Razor view to display resizer handles on text markup annotations:
+Set the **enableTextMarkupResizer** property to `true` in the Razor view to display resizer handles on text markup annotations:
{% tabs %}
{% highlight cshtml tabtitle="Standalone" %}
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/enable-text-selection.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/enable-text-selection.md
index 7c14c0ceb5..0d854a7d77 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/enable-text-selection.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/enable-text-selection.md
@@ -87,6 +87,6 @@ Dynamically enable or disable text selection using buttons or other UI triggers.
Text selection is enabled by default. When disabled, users cannot select or copy text from the PDF, which helps protect document content in security-sensitive scenarios.
-N> When `enableTextSelection` is set to `false`, all text selection functionality, including keyboard shortcuts and mouse interactions, is disabled.
+N> When `enableTextSelection` is set to `false` (whether at initialization or at runtime), all text selection functionality, including keyboard shortcuts and mouse interactions, is disabled.
[View sample in GitHub](https://github.com/SyncfusionExamples/asp-core-pdf-viewer-examples/tree/master/How%20to)
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/export-as-image-standalone.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/export-as-image-standalone.md
index ca00d639fc..8a0e7eb703 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/export-as-image-standalone.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/export-as-image-standalone.md
@@ -80,8 +80,9 @@ To export multiple pages within a range, use the **exportAsImages()** method. Th
-
```
### Conclusion
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/identify-added-annotation-mode.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/identify-added-annotation-mode.md
index e13816ceb3..c1ddd2d1c5 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/identify-added-annotation-mode.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/identify-added-annotation-mode.md
@@ -1,7 +1,7 @@
---
layout: post
title: Identify annotation mode in ASP.NET Core PDF Viewer | Syncfusion
-description: Learn here all about Identify added annotation mode in Syncfusion ASP.NET Core PDF Viewer control of Syncfusion Essential JS 2 and more.
+description: Learn how to identify the current annotation addition mode in the Syncfusion ASP.NET Core PDF Viewer and manage annotation workflows efficiently.
platform: document-processing
control: PDF Viewer
documentation: ug
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/import-export-annotation.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/import-export-annotation.md
index efd06c8dd1..71bf43bc5d 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/import-export-annotation.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/import-export-annotation.md
@@ -39,7 +39,7 @@ Follow these steps to implement annotation import and export functionality:
-
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/local-resources.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/local-resources.md
index 942a709529..b04e007970 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/local-resources.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/local-resources.md
@@ -11,7 +11,7 @@ documentation: ug
## Configuring PDF Viewer with local styles and scripts
-For offline deployment or when CDN access is restricted, you can use local resources required for PDF Viewer. To load the PDF Viewer with local resources, follow these steps:
+For offline deployment or when CDN access is restricted, you can use local resources for the PDF Viewer. To load the PDF Viewer with local resources, follow these steps:
**Step 1:** Place the `ej2.min.js` script and the required theme CSS files in the `wwwroot` folder of the ASP.NET Core application.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/open-bookmark.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/open-bookmark.md
index 8b61ec23b4..6712e63415 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/open-bookmark.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/open-bookmark.md
@@ -1,6 +1,6 @@
---
layout: post
-title: Open or close the bookmark pane in ASP.NET Core PDF Viewer | Syncfusion
+title: Open or close the bookmark pane in Core PDF Viewer | Syncfusion
description: Learn how to open or close the bookmark pane programmatically in the Syncfusion ASP.NET Core PDF Viewer by calling the bookmarkViewModule APIs.
platform: document-processing
control: PDF Viewer
@@ -26,14 +26,14 @@ Follow these steps to implement bookmark pane toggling:
+ resourceUrl="https://cdn.syncfusion.com/ej2/31.1.17/dist/ej2-pdfviewer-lib">
@@ -53,7 +53,7 @@ Follow these steps to implement bookmark pane toggling:
@@ -80,7 +80,7 @@ To hide the bookmark pane, call the `closeBookmarkPane()` method. Use the follow
{% endhighlight %}
@@ -99,7 +99,7 @@ To hide the bookmark pane, call the `closeBookmarkPane()` method. Use the follow
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/pagerenderstarted-pagerendercompleted.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/pagerenderstarted-pagerendercompleted.md
index fd9bdeaf3a..61094cf407 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/pagerenderstarted-pagerendercompleted.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/pagerenderstarted-pagerendercompleted.md
@@ -1,6 +1,6 @@
---
layout: post
-title: Handle pageRenderInitiate and pageRenderComplete events in ASP.NET Core PDF Viewer | Syncfusion
+title: Handle Page Render Events in Syncfusion ASP.NET Core PDF Viewer
description: Discover how to use the pageRenderInitiate and pageRenderComplete events in the Syncfusion ASP.NET Core PDF Viewer to monitor page rendering stages.
platform: document-processing
control: PDF Viewer
@@ -9,11 +9,11 @@ documentation: ug
# Page rendering events in ASP.NET Core PDF Viewer
-The Syncfusion® ASP.NET Core PDF Viewer provides the `pageRenderInitiate` and `pageRenderComplete` events to monitor and respond to each stage of the page rendering lifecycle. These events are essential for tracking progress, managing specialized UI overlays, or deferring computational tasks until a page is fully visible.
+The Syncfusion® ASP.NET Core PDF Viewer provides the `pageRenderInitiate` and `pageRenderComplete` events to monitor and respond to each stage of the page rendering life cycle. These events are essential for tracking progress, managing specialized UI overlays, or deferring computational tasks until a page is fully visible.
## pageRenderInitiate
-The `pageRenderInitiate` event fires correctly before a page enters the rendering process. This is the ideal stage to initialize timers, allocate temporary resources, or log analytical data. The event arguments provide the specific page index and source details.
+The `pageRenderInitiate` event fires before a page enters the rendering process. This is the ideal stage to initialize timers, allocate temporary resources, or log analytical data. The event arguments provide the specific page index and source details.
## pageRenderComplete
@@ -83,4 +83,4 @@ The following example demonstrates how to subscribe to these events in both stan
{% endhighlight %}
{% endtabs %}
-By leveraging these rendering events, developers can maintain granular control over the viewer's lifecycle and provide a more interactive documentation experience.
+By leveraging these rendering events, developers can maintain granular control over the viewer's life cycle and provide a more interactive documentation experience.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/resolve-Unable-to-find-an-entry-point-error.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/resolve-Unable-to-find-an-entry-point-error.md
index d9f362694a..04a191c9de 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/resolve-Unable-to-find-an-entry-point-error.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/resolve-Unable-to-find-an-entry-point-error.md
@@ -1,17 +1,17 @@
---
layout: post
-title: Resolve “Unable to find an entry point named FPDFText_GetCharAngle” error in ASP.NET Core PDF Viewer | Syncfusion
-description: Resolve the “Unable to find an entry point named FPDFText_GetCharAngle” error in the Syncfusion ASP.NET Core PDF Viewer by updating the PDFium assemblies and republishing the service.
+title: Fix FPDFText_GetCharAngle Entry Point Error | Syncfusion
+description: Fix the “Unable to find an entry point named FPDFText_GetCharAngle” error in Syncfusion ASP.NET Core PDF Viewer by updating PDFium files and redeploying.
control: PDF Viewer
platform: document-processing
documentation: ug
---
-# Resolve "Unable to find an entry point named FPDFText_GetCharAngle" error
+# Handle FPDFText_GetCharAngle Entry Point Resolution Issues
Effective with Essential Studio® version 21.1.0.35 (2023 Volume 1), the Syncfusion® PDF Viewer includes an updated PDFium engine to enhance text search, selection, and overall rendering performance. If an application continues to reference legacy native PDFium binaries after upgrading NuGet packages, it may trigger the exception: **"Unable to find an entry point named FPDFText_GetCharAngle"**.
-This error typically results in the client displaying a **"Web-Service is not listening"** status. This can be confirmed by inspecting the **Network** tab in the browser developer tools, where the service response will indicate a failure due to missing or mismatched PDFium assemblies.
+This error typically causes the client to display a **"Web-Service is not listening"** status. This can be confirmed by inspecting the **Network** tab in the browser developer tools, where the service response will indicate a failure due to missing or mismatched PDFium assemblies.
## Troubleshooting steps
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/resolve-pdfium-issue.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/resolve-pdfium-issue.md
index 99575617c5..36b0702b7f 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/resolve-pdfium-issue.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/resolve-pdfium-issue.md
@@ -1,16 +1,16 @@
---
layout: post
-title: Resolve PDFium initialization error in ASP.NET Core PDF Viewer | Syncfusion
-description: Fix the “The type initializer for Syncfusion.EJ2.PdfViewer.PdfiumNative threw an exception” error in the Syncfusion ASP.NET Core PDF Viewer by copying the PDFium binaries and configuring ReferencePath.
+title: Fix PDFium Initialization Error in Core PDF Viewer | Syncfusion
+description: Fix the “Syncfusion.EJ2.PdfViewer.PdfiumNative” initialization error in ASP.NET Core PDF Viewer by copying PDFium binaries and setting ReferencePath.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Resolve the Pdfium issue
+# Address PDFium Dependency Issues
-The error “The type initializer for `Syncfusion.EJ2.PdfViewer.PdfiumNative` threw an exception” occurs when the PDF Viewer cannot unpack the required PDFium native binaries because write access is blocked or the assemblies are missing. The viewer extracts `pdfium.dll` at runtime based on the current operating system, so ensure the application can write to the target folder or manually include the binaries by copying the x64 and x86 folders into the project.
+The error “The type initializer for `Syncfusion.EJ2.PdfViewer.PdfiumNative` threw an exception” occurs when the PDF Viewer cannot unpack the required PDFium native binaries because write access is blocked or the assemblies are missing. The viewer extracts `pdfium.dll` at runtime based on the current operating system. Ensure the application can write to the target folder, or manually include the binaries by copying the x64 and x86 folders into the project.
Pdfium DLL package: [pdfium.dll](https://www.syncfusion.com/downloads/support/directtrac/general/ze/Pdfium1334927507.zip)
@@ -29,7 +29,7 @@ pdfRenderer.ReferencePath = @"C:/Pdfium/";
## Steps to refer the PDFium.dll
1. Extract the downloaded Pdfium archive and copy the entire folder into the application’s root directory (parallel to the `Controllers` folder) so both `x64` and `x86` subfolders are available.
-2. In Solution Explorer, select `pdfium.dll` within the `x64` and `x86` folders, open the Properties window, and set **Copy to Output Directory** to **Copy always**. This ensures the assemblies are packaged during publish.
+2. In Solution Explorer, select all files within the `x64` and `x86` folders (including `pdfium.dll`), open the Properties window, and set **Copy to Output Directory** to **Copy always**. This ensures every native binary in those folders is packaged during publish.

3. Update the `Load` method in `PDFViewerController.cs` to point to the parent Pdfium folder. The reference should target the folder that contains the architecture folders.
N> `PdfRenderer.ReferencePath = _hostingEnvironment.ContentRootPath + "\\Pdfium\\";`
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/retry-timeout.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/retry-timeout.md
index 0f9a0bdd5a..db697ea035 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/retry-timeout.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/retry-timeout.md
@@ -7,14 +7,14 @@ control: PDF Viewer
documentation: ug
---
-# Configure retry timeout and retry count
+# Adjust Retry Attempts and Timeout Duration
The Syncfusion® ASP.NET Core PDF Viewer provides the [`retryTimeout`](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.pdfviewer.pdfviewer.html#Syncfusion_EJ2_PdfViewer_PdfViewer_RetryTimeout) and [`retryCount`](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.pdfviewer.pdfviewer.html#Syncfusion_EJ2_PdfViewer_PdfViewer_RetryCount) properties to manage failed AJAX requests automatically. Configuring these settings improves application resilience by handling transient network fluctuations or temporary service unavailability without disrupting the user experience.
-* **retryTimeout:** Defines the duration (in seconds) the viewer waits for a response before aborting and retrying the request. The default value is `0`, which disables the retry delay.
+* **retryTimeout:** Defines the duration (in seconds) the viewer waits for a response before aborting and retrying the request. The default value is `0`, which means retries occur with no delay.
* **retryCount:** Specifies the maximum number of retry attempts the viewer should perform before reporting a definitive error. The default value is `0`, meaning no retries are attempted.
-Assigning positive values to both properties ensures the viewer proactively manages connection issues.
+Assigning positive values to both properties ensures the viewer pro actively manages connection issues.
The following example demonstrates how to configure these properties in a server-backed PDF Viewer setup.
@@ -41,6 +41,6 @@ In this configuration, if the service does not respond within 10 seconds, the vi
## Monitoring failures
-To provide a better user experience, monitor the [`ajaxRequestFailed`](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.pdfviewer.pdfviewer.html#Syncfusion_EJ2_PdfViewer_PdfViewer_AjaxRequestFailed) event. This helps in logging failures or displaying custom notifications once all retry attempts have finished.
+To provide a better user experience, you can monitor the [`ajaxRequestFailed`](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.pdfviewer.pdfviewer.html#Syncfusion_EJ2_PdfViewer_PdfViewer_AjaxRequestFailed) event. This helps in logging failures or displaying custom notifications once all retry attempts have finished.
[View sample in GitHub](https://github.com/SyncfusionExamples/asp-core-pdf-viewer-examples/tree/master/How%20to/RetryTimeout)
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/save-original-document-at-the-server-side.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/save-original-document-at-the-server-side.md
index f212cee74b..e74f65cd0a 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/save-original-document-at-the-server-side.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/save-original-document-at-the-server-side.md
@@ -1,19 +1,19 @@
---
layout: post
-title: Save the original document on the server in ASP.NET Core PDF Viewer | Syncfusion
+title: Save Original Documents on Server in Core PDF Viewer | Syncfusion
description: Learn how to save the original PDF document on the server by calling a custom download action in the Syncfusion ASP.NET Core PDF Viewer.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Save original document at the server side
+# Manage Original Document Storage on the Server
The Syncfusion® PDF Viewer can persist the original PDF file on the server by redirecting the download action to a custom controller method. This approach is useful for audit trails, archival policies, or downstream processing that requires access to the unmodified document after the user views it.
Follow these steps to enable server-side persistence:
-**Step 1:** Create a PDF Viewer project by following the [ASP.NET Core getting started guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started/) to configure the necessary scripts, Razor markup, and controller endpoints.
+**Step 1:** Create a PDF Viewer project by following the [ASP.NET Core getting started guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started) to configure the necessary scripts, Razor markup, and controller endpoints.
**Step 2:** Add a button to the user interface that overrides the download action before invoking the viewer's `download` method. The script below targets the `serverActionSettings.download` endpoint, triggers the download, and then restores the default action.
@@ -22,7 +22,7 @@ Follow these steps to enable server-side persistence:
@@ -75,7 +75,7 @@ The following example demonstrates how to subscribe to these events in both stan
console.log('Signature selected:', args);
}
function signatureUnselect(args) {
- console.log('Signature selected:', args);
+ console.log('Signature unselected:', args);
};
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/webservice-not-listening.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/webservice-not-listening.md
index eecbf0ccdb..78ce97f388 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/webservice-not-listening.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/how-to/webservice-not-listening.md
@@ -1,17 +1,17 @@
---
layout: post
-title: Resolve “Web service is not listening” error in ASP.NET Core PDF Viewer | Syncfusion
-description: Troubleshoot the “Web service is not listening” error in the Syncfusion ASP.NET Core PDF Viewer by validating network requests, cache configuration, and server availability.
+title: Fix Web Service Not Listening Error in Core PDF Viewer | Syncfusion
+description: Troubleshoot the “Web service is not listening” error in Syncfusion ASP.NET Core PDF Viewer by checking requests, cache settings, and server status.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Resolve “Web service is not listening” error
+# Fix Web Service Connectivity Issues in PDF Viewer

-The Syncfusion® ASP.NET Core PDF Viewer displays the **Web service is not listening** message when the component cannot establish a connection with the backend service or the service encounters an unhandled exception. Follow these diagnostic steps to identify and resolve the issue.
+The Syncfusion® ASP.NET Core PDF Viewer displays the **Web service is not listening** message when the component cannot establish a connection with the back end service or the service encounters an unhandled exception. Follow these diagnostic steps to identify and resolve the issue.
## Diagnose the service response
@@ -59,7 +59,7 @@ The `Document pointer does not exist in the cache` exception indicates a mismatc
To resolve this issue:
1. **Clear the Cache:** Manually clear the contents of the cache directory specified in the PDF Viewer settings to remove corrupted or stale data.
-2. **Reload the Document:** Programmatically invoke the `Load()` method via the controller to re-initialize the document session.
+2. **Reload the Document:** Programmatically invoke the `Load()` method on the client viewer instance to re-initialize the document session.
3. **App Restart:** Restart the application pool or service to refresh component states and clear memory-resident metadata.
## Internal server error
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/interaction-mode.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/interaction-mode.md
index cc15e71f1d..eb5330507c 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/interaction-mode.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/interaction-mode.md
@@ -1,14 +1,14 @@
---
layout: post
title: Interaction mode in ASP.NET Core PDF Viewer | Syncfusion
-description: Learn how to use selection and panning interaction modes in the Syncfusion ASP.NET Core PDF Viewer.
+description: Learn how to switch between selection and panning modes in the Syncfusion ASP.NET Core PDF Viewer to easily select content or navigate pages.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Interaction Mode in PDF Viewer
+# PDF Viewer Interaction Settings
The PDF Viewer provides two interaction modes for working with loaded PDF documents: selection mode and panning mode.
@@ -42,7 +42,7 @@ In selection mode, text can be selected and copied from the loaded PDF document.
{% endhighlight %}
{% endtabs %}
-
+
## Panning Mode
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/magnification.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/magnification.md
index 2b91892890..4f99a2e587 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/magnification.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/magnification.md
@@ -8,7 +8,7 @@ documentation: ug
---
-# Magnification
+# Viewing at Different Zoom Levels
The PDF Viewer includes magnification tools on the default toolbar: Zoom In, Zoom Out, Zoom, Fit Page, and Fit Width. The toolbar can be configured to show or hide magnification tools as needed.
@@ -43,12 +43,12 @@ The following example shows how to enable magnification:
The following magnification options are available in the default toolbar:
-* **ZoomIn**:- Zoom in from the current zoom value.
-* **ZoomOut**:- Zoom out from the current zoom value.
-* **Zoom**:- Zoom to a specific percentage.
-* **FitPage**:- Fit the entire page within the available viewport.
-* **FitWidth**:- Fit the page width to the viewport.
-* **Auto**:- Fits the page content with-in the viewport on resizing action.
+* **ZoomIn**: Zoom in from the current zoom value.
+* **ZoomOut**: Zoom out from the current zoom value.
+* **Zoom**: Zoom to a specific percentage.
+* **FitPage**: Fit the entire page within the available viewport.
+* **FitWidth**: Fit the page width to the viewport.
+* **Auto**: Fits the page content within the viewport on resize.

diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-amazon-s3.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-amazon-s3.md
index 03b7bd488c..bbc37c6000 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-amazon-s3.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-amazon-s3.md
@@ -7,7 +7,7 @@ control: PDF Viewer
documentation: ug
---
-# Open PDF from AWS S3
+# Open Documents from Amazon S3 Storage
The ASP.NET Core PDF Viewer component supports loading PDF files from AWS S3 using either the standalone or the server-backed PDF Viewer. Both approaches are demonstrated below.
@@ -52,7 +52,7 @@ AWS.config.update({
});
```
-2. Sets the parameters for fetching the PDF document from S3, including the bucket name and file key. Then Uses the getObject method of the S3 instance to retrieve the document. Converts the document data to a Base64 string and loads it into the Syncfusion® PDF Viewer then load Base64 string generated into the viewer.load method.
+2. Sets the parameters for fetching the PDF document from S3, including the bucket name and file key. Then uses the `getObject` method of the S3 instance to retrieve the document. Converts the document data to a Base64 string and loads it into the Syncfusion® PDF Viewer using the `viewer.load` method.
N> Replace **Your Bucket Name** with the actual bucket name of your AWS S3 account and **Your Key** with the actual file key of your AWS S3 account.
@@ -130,7 +130,7 @@ public IndexModel(Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnviro
}
```
-3. Modify the `OnPostLoad()` method to load the PDF files from AWS S3
+3. Modify the `OnPostLoadAsync()` method to load the PDF files from AWS S3
```csharp
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-azure-blob-storage.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-azure-blob-storage.md
index 26c5a00bd0..42e617be69 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-azure-blob-storage.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-azure-blob-storage.md
@@ -1,13 +1,13 @@
---
layout: post
-title: Open PDF from Azure Blob Storage in ASP.NET Core PDF Viewer | Syncfusion
+title: View PDF from Azure Blob Storage | Syncfusion
description: Learn how to load PDFs from Azure Blob Storage in the Syncfusion ASP.NET Core PDF Viewer component using standalone and server-backed approaches.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Open PDF from Azure Blob Storage
+# Open Documents from Azure Blob Storage
The ASP.NET Core PDF Viewer component supports loading PDF files from Azure Blob Storage using either the standalone or the server-backed PDF Viewer. Both approaches are demonstrated below.
@@ -136,7 +136,7 @@ public IndexModel(Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnviro
}
```
-3. Modify the `OnPostLoad()` method to load the PDF files from Azure Blob Storage
+3. Modify the `OnPostLoad()` method to load the PDF files from Azure Blob Storage
```csharp
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-box-cloud-file-storage.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-box-cloud-file-storage.md
index 305bb8cef2..76e22a0f4e 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-box-cloud-file-storage.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-box-cloud-file-storage.md
@@ -52,7 +52,7 @@ public IndexModel(Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnviro
```
-3. Modify the `OnPostLoad()` method to load the PDF files from Box cloud file storage.
+3. Modify the `OnPostLoadAsync()` method to load the PDF files from Box cloud file storage.
```csharp
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-google-cloud-storage.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-google-cloud-storage.md
index af77034e99..43e889fba7 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-google-cloud-storage.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-google-cloud-storage.md
@@ -13,11 +13,11 @@ Follow these steps to load a PDF from Google Cloud Storage using the server-back
**Step 1:** Create a Service Account
-Open the Google Cloud Console. Navigate to `IAM & Admin` > `Service accounts`. Click `Create Service Account`.` Enter a name, assign roles (e.g., Storage Object Admin), and create a key in JSON format. Download the key file securely. Utilize the downloaded key file in your applications or services for authentication and access to the Google Cloud Storage bucket. For additional details, refer to the [official documentation](https://cloud.google.com/iam/docs/service-accounts-create).
+Open the Google Cloud Console. Navigate to `IAM & Admin` > `Service accounts`. Click `Create Service Account`. Enter a name, assign roles (e.g., Storage Object Admin), and create a key in JSON format. Download the key file securely. Utilize the downloaded key file in your applications or services for authentication and access to the Google Cloud Storage bucket. For additional details, refer to the [official documentation](https://cloud.google.com/iam/docs/service-accounts-create).
**Step 2:** Create a PDF Viewer sample in ASP.NET Core
-Follow instructions provided in the Syncfusion® PDF Viewer Getting Started [Guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started-with-server-backed) to create a simple PDF Viewer sample in ASP.NET Core
+Follow instructions provided in the Syncfusion® PDF Viewer Getting Started [Guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started-with-server-backed) to create a simple PDF Viewer sample in ASP.NET Core.
**Step 3:** Modify the `Index.cshtml.cs` file in the project
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-google-drive.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-google-drive.md
index 60cb90b59d..450487671d 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-google-drive.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/open-pdf-file/from-google-drive.md
@@ -1,6 +1,6 @@
---
layout: post
-title: Open Google Cloud PDF in Syncfusion ASP.NET Core Viewer
+title: Open PDF from Google Drive in ASP.NET Core PDF Viewer | Syncfusion
description: Learn how to load PDFs from Google Drive in the Syncfusion ASP.NET Core PDF Viewer component using a server-backed approach.
platform: document-processing
control: PDF Viewer
@@ -52,7 +52,7 @@ public IndexModel(Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnviro
}
```
-3. Modify the `OnPostLoad()` method to load the PDF files from Google drive.
+3. Modify the `OnPostLoadAsync()` method to load the PDF files from Google Drive.
```csharp
public async Task OnPostLoadAsync([FromBody] jsonObjects responseData)
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/organize-pdf.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/organize-pdf.md
index 71a92a34ca..ca8905e9bc 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/organize-pdf.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/organize-pdf.md
@@ -131,7 +131,7 @@ After organizing your PDF pages, save your modifications to preserve the changes
Real-time updates reflect all your page organization changes (rotations, rearrangements, deletions, insertions, etc.) immediately in the PDF Viewer. Simply click **Save** or **Save As** when you're ready to finalize your changes.
-## API's supported
+## APIs supported
The page organizer feature provides several APIs for programmatic control and configuration of page organization capabilities.
@@ -234,7 +234,7 @@ Programmatically opens the page organizer panel. Use this API to provide users w
{% tabs %}
{% highlight cshtml tabtitle="Standalone" %}
-
+
function openPageOrganizer() {
var pdfViewer = document.getElementById('pdfviewer').ej2_instances[0];
- // Close Page Organizer panel.
+ // Open Page Organizer panel.
pdfViewer.pageOrganizer.openPageOrganizer();
}
@@ -333,7 +333,7 @@ Programmatically closes the page organizer panel. Use this API to dismiss the or
function closePageOrganizer() {
var pdfViewer = document.getElementById('pdfviewer').ej2_instances[0];
// Close Page Organizer panel.
- pdfViewer.pageOrganizer.closePageOrganizer(););
+ pdfViewer.pageOrganizer.closePageOrganizer();
}
{% endhighlight %}
@@ -372,7 +372,7 @@ These shortcuts enable efficient keyboard-based navigation and operations, makin

-#### Conclusion
+## Conclusion
With the Organize Pages feature in the PDF Viewer, managing your PDF documents has never been easier. Whether you are adding new content, adjusting page orientation, moving the pages, duplicating the pages, or removing unnecessary pages, this feature provides the tools you need to streamline your document management workflow. Explore these capabilities today and take control of your PDF documents with ease!
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/overview.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/overview.md
index 16680a4226..e9298b8d39 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/overview.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/overview.md
@@ -3,7 +3,7 @@ title: Overview of ASP.NET Core PDF Viewer | Syncfusion
description: Learn here all about the Syncfusion ASP.NET Core PDF Viewer, its capabilities, and supported platforms.
platform: document-processing
control: PDF Viewer
-documentation: UG
+documentation: ug
---
# Overview of ASP.NET Core PDF Viewer
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/print.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/print.md
index 7df154f40d..09eb4143aa 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/print.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/print.md
@@ -1,7 +1,7 @@
---
layout: post
title: Printing PDF Documents in ASP.NET Core PDF Viewer | Syncfusion
-description: Learn how to enable, invoke, and customize printing in the ASP.NET Core PDF Viewer. Control print quality, rotation, and print mode for optimal printing experience.
+description: Learn how to enable and customize printing in the Core PDF Viewer, including print quality, rotation settings, and print modes for better output.
platform: document-processing
control: PDF Viewer
documentation: ug
@@ -43,7 +43,7 @@ The print functionality can be controlled using the `enablePrint` property. Set
{% endhighlight %}
{% endtabs %}
-
+
In addition to the toolbar print button, the PDF Viewer provides the `print()` method to programmatically trigger printing. This is useful for creating custom print buttons or integrating printing into application workflows.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-azure-blob-storage.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-azure-blob-storage.md
index a97002017f..156e2cdfc9 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-azure-blob-storage.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-azure-blob-storage.md
@@ -11,7 +11,7 @@ documentation: ug
The ASP.NET Core PDF Viewer component supports saving PDF files to Azure Blob Storage using either the standalone or server-backed configuration. The following steps demonstrate both approaches.
-## Using Standalone PDF Viewer
+## Using standalone PDF Viewer
To save a PDF file to Azure Blob Storage, follow these steps:
@@ -21,7 +21,7 @@ Log in to the Azure Portal. Create a new Storage Account with preferred settings
**Step 2:** Create an ASP.NET Core PDF Viewer sample
-Follow the instructions in this Getting Started [guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started-with-server-backed) to create a simple PDF Viewer sample in ASP.NET Core. This establishes the basic structure of the PDF Viewer application.
+Follow the instructions in this Getting Started [guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started) to create a simple PDF Viewer sample in ASP.NET Core. This establishes the basic structure of the PDF Viewer application.
**Step 3:** Modify the `Index.cshtml.cs` file in the project
@@ -231,7 +231,7 @@ public IActionResult OnPostDownload([FromBody] jsonObjects responseData)
N> Replace the placeholders with the actual Azure Storage connection string and container name.
-**Step 3:** Set the PDF Viewer properties in the ASP.NET Core PDF Viewer component
+**Step 4:** Set the PDF Viewer properties in the ASP.NET Core PDF Viewer component
Set the `documentPath` property of the PDF Viewer component to the desired PDF file name that you wish to load from Azure Blob Storage. Ensure that the document exists in the target container.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-box-cloud-file-storage.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-box-cloud-file-storage.md
index da2d6abc99..be438014f2 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-box-cloud-file-storage.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-box-cloud-file-storage.md
@@ -1,13 +1,13 @@
---
layout: post
-title: Save PDF files to Box cloud storage in ASP.NET Core PDF Viewer | Syncfusion
+title: Save PDF files to Box cloud storage in Core PDF Viewer | Syncfusion
description: Learn how to save PDF files to Box cloud storage using the Syncfusion ASP.NET Core PDF Viewer component with a server-backed web service.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Save PDF files to Box cloud storage
+# Save Documents to Box Cloud Storage
To save a PDF file to Box cloud storage using the ASP.NET Core PDF Viewer, follow the steps below. This approach uses a server-backed web service.
@@ -124,6 +124,6 @@ Set the `documentPath` property of the PDF Viewer component to the desired PDF f
N> Install the **Box.V2.Core** NuGet package in the application to use the previous code example.
-N> Replace `PDF_Succinctly.pdf` with the actual document name to load from Box cloud storage. Pass the document name from the Box folder to the `documentPath` property of the `React PDF Viewer` component.
+N> Replace `PDF_Succinctly.pdf` with the actual document name to load from Box cloud storage. Pass the document name from the Box folder to the `documentPath` property of the `ASP.NET Core PDF Viewer` component.
[View sample in GitHub](https://github.com/SyncfusionExamples/open-save-pdf-documents-in-box-cloud-file-storage)
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-google-cloud-storage.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-google-cloud-storage.md
index 2118206786..f6adf905f5 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-google-cloud-storage.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-google-cloud-storage.md
@@ -1,13 +1,13 @@
---
layout: post
-title: Save PDF files to Google Cloud Storage in ASP.NET Core PDF Viewer | Syncfusion
+title: Save PDF files to Google Cloud Storage in Core PDF Viewer | Syncfusion
description: Learn how to save PDF files to Google Cloud Storage using the Syncfusion ASP.NET Core PDF Viewer component with a server-backed web service.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Save PDF files to Google Cloud Storage
+# Save Documents to Google Cloud Storage
Follow the steps below to save a PDF file to Google Cloud Storage using the ASP.NET Core PDF Viewer with a server-backed web service.
@@ -82,7 +82,7 @@ public IActionResult OnPostDownload([FromBody] jsonObjects responseData)
}
```
-4. Open the `appsettings.json` file in the project and add the following lines below the existing "`AllowedHosts`" configuration.
+4. Open the `appsettings.json` file in the project and add the following lines below the existing `AllowedHosts` configuration.
```json
{
@@ -101,7 +101,7 @@ N> Replace the placeholder with the actual Google Cloud Storage bucket name.
N> Replace **path/to/service-account-key.json** with the actual file path to the service account key JSON file.
-**Step 5:** Set the PDF Viewer properties in the ASP.NET Core PDF Viewer component
+**Step 4:** Set the PDF Viewer properties in the ASP.NET Core PDF Viewer component
Set the `documentPath` property of the PDF Viewer component to the desired PDF file name that you wish to load from Google Cloud Storage. Ensure that the document exists in the target bucket.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-google-drive.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-google-drive.md
index 01adc32538..e0aef16b07 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-google-drive.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/save-pdf-file/to-google-drive.md
@@ -7,7 +7,7 @@ control: PDF Viewer
documentation: ug
---
-# Save PDF files to Google Drive
+# Store Documents in Google Drive
Follow the steps below to save a PDF file to Google Drive using the ASP.NET Core PDF Viewer with a server-backed web service.
@@ -97,7 +97,7 @@ public async Task OnPostDownloadAsync([FromBody] jsonObjects resp
}
```
-4. Open the `appsettings.json` file in the project and add the following lines below the existing "`AllowedHosts`" configuration.
+4. Open the `appsettings.json` file in the project and add the following lines below the existing `AllowedHosts` configuration.
```json
{
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/server-actions.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/server-actions.md
index 672ab84395..f32380fb20 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/server-actions.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/server-actions.md
@@ -9,14 +9,14 @@ documentation: ug
# Server Actions in ASP.NET Core PDF Viewer
-The Syncfusion® PDF Viewer is a client-server control that performs all heavy document processing on the server while sending incremental responses to the client for rendering and user interaction. This architecture ensures optimal performance, memory efficiency, and scalability by processing PDF documents on the backend and streaming only the necessary data to the browser.
+The Syncfusion® PDF Viewer is a client-server control that performs all heavy document processing on the server while sending incremental responses to the client for rendering and user interaction. This architecture ensures optimal performance, memory efficiency, and scalability by processing PDF documents on the back end and streaming only the necessary data to the browser.
**Key requirements for proper operation:**
- ASP.NET Core controller routes must be properly registered
- Dependency injection must supply `IHostingEnvironment` and `IMemoryCache`
- Memory caching must be configured to persist page data between requests
- File path validation must restrict access to trusted locations only
-- Input sanitization must prevent path traversal and file access vulnerabilities
+- Input sanitize must prevent path traversal and file access vulnerabilities
## Available server actions
@@ -130,8 +130,8 @@ public IActionResult RenderThumbnailImages([FromBody] Dictionary
**Workflow:**
1. Client requests thumbnails (typically during document load)
2. [`PdfRenderer.GetThumbnailImages()`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfRenderer.html#Syncfusion_EJ2_PdfViewer_PdfRenderer_GetThumbnailImages_System_Collections_Generic_Dictionary_System_String_System_String__) generates small preview images for all pages
-4. All thumbnail images are encoded as base64 strings
-5. Response includes array of thumbnail images for every page
+3. All thumbnail images are encoded as base64 strings
+4. Response includes array of thumbnail images for every page
```cs
public IActionResult RenderThumbnailImages([FromBody] Dictionary jsonObject)
@@ -150,7 +150,7 @@ public IActionResult RenderThumbnailImages([FromBody] Dictionary
public IActionResult Bookmarks([FromBody] Dictionary jsonObject)
```
-Extract document outline/bookmarks for hierarchical navigation and populate bookmarks panel for users to jump to document sections
+Extracts document outline/bookmarks for hierarchical navigation and populate bookmarks panel for users to jump to document sections
**How it works:**
1. [`PdfRenderer.GetBookmarks()`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfRenderer.html#Syncfusion_EJ2_PdfViewer_PdfRenderer_GetBookmarks_System_Collections_Generic_Dictionary_System_String_System_String__) extracts document outline from PDF
@@ -178,7 +178,7 @@ public IActionResult Bookmarks([FromBody] Dictionary jsonObject)
public IActionResult RenderAnnotationComments([FromBody] Dictionary jsonObject)
```
-Retrieve annotation comment threads for display in the comments panel.
+Retrieves annotation comment threads for display in the comments panel.
**Workflow:**
1. `PdfRenderer.GetAnnotationComments()` retrieves all comment data from document
@@ -211,7 +211,7 @@ public IActionResult RenderAnnotationComments([FromBody] Dictionary jsonObject)
```
-Clear cached document data and free server memory.
+Clears cached document data and free server memory.
**Workflow:**
1. [Unload](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_Unload_System_String_) should be called when viewer is closed or document is unloaded
@@ -239,7 +239,7 @@ public IActionResult Unload([FromBody] Dictionary jsonObject)
public IActionResult ExportAnnotations([FromBody] Dictionary jsonObject)
```
-Export annotations to JSON or XFDF format for storage or sharing using the [ExportAnnotations](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_ExportAnnotations_System_String_) action.
+Exports annotations to JSON or XFDF format for storage or sharing using the [ExportAnnotations](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_ExportAnnotations_System_String_) action.
**Workflow:**
1. User clicks "Export annotations" in toolbar
@@ -264,7 +264,7 @@ public IActionResult ExportAnnotations([FromBody] Dictionary jso
public IActionResult ImportAnnotations([FromBody] Dictionary jsonObject)
```
-Import annotations from JSON or XFDF file into the current document using [ImportAnnotations](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_ImportAnnotations_System_String_) action. Validate file paths and restrict access to trusted locations only
+Imports annotations from JSON or XFDF file into the current document using [ImportAnnotations](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_ImportAnnotations_System_String_) action. Validate file paths and restrict access to trusted locations only
**Workflow:**
1. User selects annotation file to import from toolbar
@@ -329,7 +329,7 @@ public IActionResult ImportAnnotations([FromBody] Dictionary jso
public IActionResult ImportFormFields([FromBody] Dictionary jsonObject)
```
-Populate form fields from saved field data using [ImportFormFields](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_ImportFormFields_System_String_) action. Validate and sanitize input file paths to prevent directory traversal.
+Populates form fields from saved field data using [ImportFormFields](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_ImportFormFields_System_String_) action. Validate and sanitize input file paths to prevent directory traversal.
**How it works:**
1. User imports form field data from a previously saved file
@@ -355,7 +355,7 @@ public IActionResult ImportFormFields([FromBody] Dictionary json
public IActionResult ExportFormFields([FromBody] Dictionary jsonObject)
```
-Export form field values to JSON format for storage or submission using [ExportFormFields](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_ExportFormFields_System_String_).
+Exports form field values to JSON format for storage or submission using [ExportFormFields](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_ExportFormFields_System_String_).
**Workflow:**
1. User submits form or exports form data
@@ -380,7 +380,7 @@ public IActionResult ExportFormFields([FromBody] Dictionary json
public IActionResult Download([FromBody] Dictionary jsonObject)
```
-Stream the current PDF document to client for download using [Download](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_Download_System_String_) action.
+Streams the current PDF document to client for download using [Download](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerServerActionSettingsBuilder.html#Syncfusion_EJ2_PdfViewer_PdfViewerServerActionSettingsBuilder_Download_System_String_) action.
**Workflow:**
1. User clicks download button in toolbar
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/text-search.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/text-search.md
index 30bcd949c0..929a5c8ca1 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/text-search.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/text-search.md
@@ -41,7 +41,7 @@ Text search can be enabled or disabled using the `enableTextSearch` property. Th
{% endhighlight %}
{% endtabs %}
-
+
## Text search features
@@ -104,7 +104,7 @@ To perform a case-sensitive search, set the `isMatchCase` parameter to `true`. T
+ resourceUrl="https://cdn.syncfusion.com/ej2/31.1.17/dist/ej2-pdfviewer-lib">
@@ -150,7 +150,7 @@ You can search for complete words only by setting the `isMatchWholeWord` paramet
+ resourceUrl="https://cdn.syncfusion.com/ej2/31.1.17/dist/ej2-pdfviewer-lib">
@@ -218,14 +218,14 @@ Searches for the specified text and returns bounding rectangles for all occurren
+ resourceUrl="https://cdn.syncfusion.com/ej2/31.1.17/dist/ej2-pdfviewer-lib">
@@ -245,7 +245,7 @@ Searches for the specified text and returns bounding rectangles for all occurren
@@ -267,14 +267,14 @@ Searches for the specified text and returns bounding rectangles only for occurre
+ resourceUrl="https://cdn.syncfusion.com/ej2/31.1.17/dist/ej2-pdfviewer-lib">
@@ -294,7 +294,7 @@ Searches for the specified text and returns bounding rectangles only for occurre
@@ -316,14 +316,14 @@ Searches for an array of text strings and returns bounding rectangles for all oc
+ resourceUrl="https://cdn.syncfusion.com/ej2/31.1.17/dist/ej2-pdfviewer-lib">
@@ -343,7 +343,7 @@ Searches for an array of text strings and returns bounding rectangles for all oc
@@ -365,14 +365,14 @@ Searches for an array of text strings and returns bounding rectangles only for o
+ resourceUrl="https://cdn.syncfusion.com/ej2/31.1.17/dist/ej2-pdfviewer-lib">
@@ -392,7 +392,7 @@ Searches for an array of text strings and returns bounding rectangles only for o
@@ -403,7 +403,7 @@ Searches for an array of text strings and returns bounding rectangles only for o
## Text search events
-The PDF Viewer provides events that allow you to monitor and respond to different stages of the text search lifecycle. Use these events to customize search behavior, validate queries, track search analytics, or implement conditional logic based on search results.
+The PDF Viewer provides events that allow you to monitor and respond to different stages of the text search life cycle. Use these events to customize search behavior, validate queries, track search analytics, or implement conditional logic based on search results.
### Text search start event
@@ -424,7 +424,7 @@ The [`textSearchStart`]((https://help.syncfusion.com/cr/aspnetcore-js2/syncfusio
@@ -444,7 +444,7 @@ The [`textSearchStart`]((https://help.syncfusion.com/cr/aspnetcore-js2/syncfusio
@@ -480,7 +480,7 @@ The [`textSearchHighlight`](https://help.syncfusion.com/cr/aspnetcore-js2/syncfu
@@ -499,7 +499,7 @@ The [`textSearchHighlight`](https://help.syncfusion.com/cr/aspnetcore-js2/syncfu
@@ -534,7 +534,7 @@ The [`textSearchComplete`](https://help.syncfusion.com/cr/aspnetcore-js2/syncfus
@@ -553,7 +553,7 @@ The [`textSearchComplete`](https://help.syncfusion.com/cr/aspnetcore-js2/syncfus
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/textselection.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/textselection.md
index 6f09a88f5d..d7debc3117 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/textselection.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/textselection.md
@@ -1,7 +1,7 @@
---
layout: post
title: Text selection in ASP.NET Core PDF Viewer control | Syncfusion
-description: Learn how to enable or disable text selection, programmatically select regions, copy selected text, and handle selection events in the Syncfusion ASP.NET Core PDF Viewer.
+description: Learn how to enable or disable text selection and handle selection events in the Syncfusion ASP.NET Core PDF Viewer.
platform: document-processing
control: Text selection
documentation: ug
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/custom-toolbar.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/custom-toolbar.md
index 1e2240fd44..63568a3e42 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/custom-toolbar.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/custom-toolbar.md
@@ -229,11 +229,11 @@ N> The icons are embedded in the font file used in the previous code snippet.
else {
var currentPageNumber = parseInt(currentPageBox.value);
if (event.which === 13) {
- if (currentPageNumber > 0 && currentPageNumber <= viewer.pageCount) {
+ if (currentPageNumber > 0 && currentPageNumber <= pdfViewer.pageCount) {
pdfViewer.navigation.goToPage(currentPageNumber);
}
else {
- currentPageBox.value = viewer.currentPageNumber.toString();
+ currentPageBox.value = pdfViewer.currentPageNumber.toString();
}
}
return true;
@@ -362,11 +362,11 @@ N> The icons are embedded in the font file used in the previous code snippet.
else {
var currentPageNumber = parseInt(currentPageBox.value);
if (event.which === 13) {
- if (currentPageNumber > 0 && currentPageNumber <= viewer.pageCount) {
+ if (currentPageNumber > 0 && currentPageNumber <= pdfViewer.pageCount) {
pdfViewer.navigation.goToPage(currentPageNumber);
}
else {
- currentPageBox.value = viewer.currentPageNumber.toString();
+ currentPageBox.value = pdfViewer.currentPageNumber.toString();
}
}
return true;
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/mobile-toolbar.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/mobile-toolbar.md
index 7b36db8b84..e317fe0f87 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/mobile-toolbar.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/mobile-toolbar.md
@@ -1,12 +1,12 @@
---
layout: post
-title: Mobile Toolbar in ASP.NET Core PDF Viewer control | Syncfusion
-description: Learn All About the Mobile Toolbar Interface in Syncfusion ASP.NET Core PDF Viewer control of Syncfusion Essential JS 2 and more.
+title: Mobile Toolbar in ASP.NET Core PDF Viewer Control | Syncfusion
+description: Learn all about the Mobile Toolbar Interface in Syncfusion ASP.NET Core PDF Viewer control of Syncfusion Essential JS 2 and more.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Mobile Toolbar Interface in ASP.NET Core PDF Viewer control
+# Mobile Toolbar Interface in ASP.NET Core PDF Viewer Control
The mobile PDF Viewer provides features for viewing, searching, annotating, and managing PDF documents on mobile devices. It includes tools such as search, download, bookmarking, annotation, and page organization. The viewer can enable desktop toolbar features in mobile mode to expose a broader set of actions.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/primary-toolbar.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/primary-toolbar.md
index af7d9f0bc3..babfa12da3 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/primary-toolbar.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar-customization/primary-toolbar.md
@@ -13,7 +13,7 @@ The primary toolbar of the PDF Viewer can be customized by rearranging existing
## Show or hide the primary toolbar
-Toggle the built-in primary toolbar to create custom toolbar experiences or simplify the UI. When a custom toolbar is required, hide the built-in toolbar. Use the [enableToolbar](https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.pdfviewer.pdfviewer.html#Syncfusion_EJ2_PdfViewer_PdfViewer_EnableToolbar) property or the [showToolbar](https://ej2.syncfusion.com/javascript/documentation/api/pdfviewer/toolbar/#showtoolbar) method to show or hide the primary toolbar.
+Toggle the built-in primary toolbar to create custom toolbar experiences or simplify the UI. When a custom toolbar is required, hide the built-in toolbar. Use the [enableToolbar] (https://help.syncfusion.com/cr/aspnetcore-js2/syncfusion.ej2.pdfviewer.pdfviewer.html#Syncfusion_EJ2_PdfViewer_PdfViewer_EnableToolbar) property or the [showToolbar] (https://ej2.syncfusion.com/javascript/documentation/api/pdfviewer/toolbar/#showtoolbar) method to show or hide the primary toolbar.
Use the `enableToolbar` property to show or hide the toolbar:
@@ -117,7 +117,7 @@ The PDF Viewer provides options to show or hide grouped items in the built-in to
{% endhighlight %}
{% endtabs %}
-* Show or hide toolbar items using showToolbarItem:
+* Show or hide toolbar items using `showToolbarItem`:
{% tabs %}
{% highlight cshtml tabtitle="Standalone" %}
@@ -288,7 +288,7 @@ The PDF Viewer supports customization of existing toolbar items (add, show, hide
{% endhighlight %}
{% endtabs %}
-N> Default toolbar items: ['OpenOption', 'PageNavigationTool','MagnificationTool', 'PanTool', 'SelectionTool', 'SearchOption', 'PrintOption', 'DownloadOption','UndoRedoTool', 'AnnotationEditTool', 'FormDesignerEditTool', 'CommentTool', 'SubmitForm']
+N> Default toolbar items: ['OpenOption', 'PageNavigationTool', 'MagnificationTool', 'PanTool', 'SelectionTool', 'SearchOption', 'PrintOption', 'DownloadOption', 'UndoRedoTool', 'AnnotationEditTool', 'FormDesignerEditTool', 'CommentTool', 'SubmitForm']
### Align property
@@ -311,9 +311,9 @@ The Prefix property sets the CSS class or icon added as a prefix to the existing
### ID property
-The Id property of a CustomToolbarItemModel uniquely identifies a toolbar item and is required for customization.
+The id property of a CustomToolbarItemModel uniquely identifies a toolbar item and is required for customization.
-Assign a specific and descriptive `Id` to each custom toolbar item.
+Assign a specific and descriptive `id` to each custom toolbar item.
These properties are commonly used when defining custom toolbar items with `CustomToolbarItemModel`. When configuring the toolbar using the `ToolbarSettings` property, include these properties to customize the appearance and behavior of each toolbar item.
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar.md
index 8b25e865ac..6e5417b10f 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/toolbar.md
@@ -1,7 +1,7 @@
---
layout: post
-title: Toolbar in ASP.NET Core PDF Viewer Component | Customize & Configure | Syncfusion
-description: Learn the toolbar in Syncfusion ASP.NET Core PDF Viewer.
+title: Toolbar Customization in ASP.NET Core PDF Viewer | Syncfusion
+description: Learn how to use and customize the toolbar in the Syncfusion ASP.NET Core PDF Viewer, including tools for navigation, zooming, annotation, and document actions.
platform: document-processing
control: Toolbar
documentation: ug
@@ -203,7 +203,7 @@ The PDF Viewer provides comprehensive customization capabilities for the toolbar
The following customization operations are available:
* **Add custom items** - Add new buttons and controls alongside built-in toolbar items defined by `CustomToolbarItemModel` in [`ToolbarSettings`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerToolbarSettings.html)
-* **Show/Hide items** - Show or hide existing toolbar items using [`ToolbarSettings`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerToolbarSettings.html). Pre-defined toolbar items are available with [`ToolbarItems`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerToolbarSettings.html#Syncfusion_EJ2_PdfViewer_PdfViewerToolbarSettings_ToolbarItems) |
+* **Show/Hide items** - Show or hide existing toolbar items using [`ToolbarSettings`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerToolbarSettings.html). Pre-defined toolbar items are available with [`ToolbarItems`](https://help.syncfusion.com/cr/aspnetcore-js2/Syncfusion.EJ2.PdfViewer.PdfViewerToolbarSettings.html#Syncfusion_EJ2_PdfViewer_PdfViewerToolbarSettings_ToolbarItems)
* **Enable/Disable items** - Enable or disable toolbar item using `enableToolbarItem()` method
* **Handle clicks** - Execute custom code when toolbar items are clicked using `toolbarClick` event
@@ -354,7 +354,7 @@ The prefix property is used to set the CSS class or icon that should be added as
The id property within a CustomToolbarItemModel is a compulsory attribute that plays a vital role in toolbar customization. It serves as a unique identifier for each toolbar item, facilitating distinct references and interactions.
When defining or customizing toolbar items, it is mandatory to assign a specific and descriptive id to each item.
-These properties are commonly used when defining custom toolbar items with the `CustomToolbarItemModel`` in the context of Syncfusion® PDF Viewer. When configuring the toolbar using the `ToolbarSettings`` property, you can include these properties to customize the appearance and behavior of each toolbar item.
+These properties are commonly used when defining custom toolbar items with the `CustomToolbarItemModel` in the context of Syncfusion® PDF Viewer. When configuring the toolbar using the `ToolbarSettings` property, you can include these properties to customize the appearance and behavior of each toolbar item.
N> When customizing toolbar items, you have the flexibility to include either icons or text based on your design preference.
@@ -370,7 +370,7 @@ Follow these steps to build a completely custom toolbar:
**Step 1: Set up PDF Viewer project**
-Follow the [Getting started guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started/) to create a basic PDF Viewer implementation.
+Follow the [Getting started guide](https://help.syncfusion.com/document-processing/pdf/pdf-viewer/asp-net-core/getting-started) to create a basic PDF Viewer implementation.
**Step 2: Create a primary toolbar with document operations**
@@ -596,11 +596,11 @@ Add JavaScript functions to handle toolbar button clicks and coordinate with PDF
else {
var currentPageNumber = parseInt(currentPageBox.value);
if (event.which === 13) {
- if (currentPageNumber > 0 && currentPageNumber <= viewer.pageCount) {
+ if (currentPageNumber > 0 && currentPageNumber <= pdfViewer.pageCount) {
pdfViewer.navigation.goToPage(currentPageNumber);
}
else {
- currentPageBox.value = viewer.currentPageNumber.toString();
+ currentPageBox.value = pdfViewer.currentPageNumber.toString();
}
}
return true;
@@ -729,11 +729,11 @@ Add JavaScript functions to handle toolbar button clicks and coordinate with PDF
else {
var currentPageNumber = parseInt(currentPageBox.value);
if (event.which === 13) {
- if (currentPageNumber > 0 && currentPageNumber <= viewer.pageCount) {
+ if (currentPageNumber > 0 && currentPageNumber <= pdfViewer.pageCount) {
pdfViewer.navigation.goToPage(currentPageNumber);
}
else {
- currentPageBox.value = viewer.currentPageNumber.toString();
+ currentPageBox.value = pdfViewer.currentPageNumber.toString();
}
}
return true;
diff --git a/Document-Processing/PDF/PDF-Viewer/asp-net-core/troubleshooting/document-loading-issues.md b/Document-Processing/PDF/PDF-Viewer/asp-net-core/troubleshooting/document-loading-issues.md
index f45ebcb0f6..02a03c10f6 100644
--- a/Document-Processing/PDF/PDF-Viewer/asp-net-core/troubleshooting/document-loading-issues.md
+++ b/Document-Processing/PDF/PDF-Viewer/asp-net-core/troubleshooting/document-loading-issues.md
@@ -1,17 +1,17 @@
---
layout: post
-title: Fix document loading issues in v23.1+ for the ASP.NET Core PDF Viewer component
-description: Resolve document rendering failures in v23.1 or newer by calling dataBind before load, verifying source URLs, checking CORS and CSP, and confirming network connectivity in the ASP.NET Core PDF Viewer.
+title: Fix Document Loading Issues in Core PDF Viewer | Syncfusion
+description: Fix ASP.NET Core PDF Viewer v23.1+ rendering issues by calling dataBind before load, validating URLs, and verifying CORS, CSP, and network settings.
platform: document-processing
control: PDF Viewer
documentation: ug
---
-# Document Loading Issues in Version 23.1 or Newer
+# Troubleshooting Document Loading in Version 23.1+
If a PDF does not render after upgrading to v23.1+, use the checklist below to resolve common causes. The most frequent fix is calling `dataBind()` before `load()`.
-1. Call `pdfViewer.dataBind()` before `load()`. Starting with v23.1, an explicit dataBind call is required to initialize data binding and render correctly.
+1. Call `pdfViewer.dataBind()` before `load()`. Starting with v23.1, an explicit dataBind call is required to initialize data binding and ensure correct rendering.
```html
diff --git a/Document-Processing/PDF/PDF-Viewer/flutter/How-to/custom-widget-on-flutterflow.md b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/custom-widget-on-flutterflow.md
index 81b8dbee08..0fb487d669 100644
--- a/Document-Processing/PDF/PDF-Viewer/flutter/How-to/custom-widget-on-flutterflow.md
+++ b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/custom-widget-on-flutterflow.md
@@ -109,6 +109,134 @@ Future importPdfjsScript() async {

+### Pass PDF Document to the Custom Widget
+
+You can pass the PDF document to the custom widget as a parameter. The following steps explain how to pass the PDF document URL to the custom widget.
+
+1. In the `Custom Widget Settings` panel on the right, click the `+ Add Parameters` button to add a new parameter.
+
+
+
+2. Set the parameter `Name` as `url`, choose the `Type` as `String`, and enable the `Nullable` option.
+
+
+
+3. Modify the `PDFViewerWidget` class constructor to include the newly added `url` parameter, and declare the `url` field as shown below.
+
+{% tabs %}
+{% highlight Dart %}
+
+class PDFViewerWidget extends StatefulWidget {
+ const PDFViewerWidget(
+ {super.key, this.width, this.height, required this.url});
+
+ final double? width;
+ final double? height;
+ final String url;
+
+ @override
+ State createState() => _PDFViewerWidgetState();
+}
+
+{% endhighlight %}
+{% endtabs %}
+
+
+
+4. Replace the constant URL in the `SfPdfViewer.network` constructor with the `url` parameter that is passed to the widget.
+
+{% tabs %}
+{% highlight Dart hl_lines="18 19" %}
+
+@override
+Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(
+ title: const Text('Flutter PDF Viewer'),
+ actions: [
+ IconButton(
+ icon: const Icon(
+ Icons.bookmark,
+ color: Colors.white,
+ ),
+ onPressed: () {
+ _pdfViewerKey.currentState?.openBookmarkView();
+ },
+ ),
+ ],
+ ),
+ body: SfPdfViewer.network(
+ widget.url,
+ key: _pdfViewerKey,
+ ),
+ );
+}
+
+{% endhighlight %}
+{% endtabs %}
+
+5. Save the changes and click the `Compile Code` button to compile the custom code.
+
+6. On the canvas, select the `PDFViewerWidget` and enter the PDF document URL in the `url` field of the `Custom Widget Properties` section.
+
+
+
+In this example, we pass `url` as a parameter and use the `SfPdfViewer.network` constructor to display the PDF document. Similarly, you can use the `SfPdfViewer.file` or `SfPdfViewer.memory` constructor to display a PDF document of your choice.
+
+>**Note**: To display a PDF document from an **Uploaded File (Bytes)** in FlutterFlow, add a parameter of type `FFUploadedFile` (you can find this exact type by clicking the `View Boilerplate Code` button) and then use the `SfPdfViewer.memory` constructor with the uploaded file bytes. See the code snippet below.
+
+{% tabs %}
+{% highlight Dart hl_lines="11 37 38" %}
+
+class PDFViewerWidget extends StatefulWidget {
+ const PDFViewerWidget({
+ super.key,
+ this.width,
+ this.height,
+ this.file,
+ });
+
+ final double? width;
+ final double? height;
+ final FFUploadedFile? file;
+
+ @override
+ State createState() => _PDFViewerWidgetState();
+}
+
+class _PDFViewerWidgetState extends State {
+ final GlobalKey _pdfViewerKey = GlobalKey();
+
+ @override
+ Widget build(BuildContext context) {
+ return widget.file != null && widget.file!.bytes != null
+ ? Scaffold(
+ appBar: AppBar(
+ title: Text('Flutter PDF Viewer'),
+ actions: [
+ IconButton(
+ icon: Icon(
+ Icons.bookmark,
+ color: Colors.white,
+ ),
+ onPressed: () {
+ _pdfViewerKey.currentState?.openBookmarkView();
+ },
+ ),
+ ],
+ ),
+ body: SfPdfViewer.memory(
+ widget.file!.bytes!,
+ key: _pdfViewerKey,
+ ),
+ )
+ : Container();
+ }
+}
+
+{% endhighlight %}
+{% endtabs %}
+
### Utilizing the Custom Widget
1. Navigate to the `Widget Palette` located in the left-side navigation menu.
diff --git a/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/add-parameter.png b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/add-parameter.png
new file mode 100644
index 0000000000..48caa8b3a0
Binary files /dev/null and b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/add-parameter.png differ
diff --git a/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/add-url-parameter.png b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/add-url-parameter.png
new file mode 100644
index 0000000000..983bd55f7e
Binary files /dev/null and b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/add-url-parameter.png differ
diff --git a/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/modify-widget-code.png b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/modify-widget-code.png
new file mode 100644
index 0000000000..eaa1ec5c70
Binary files /dev/null and b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/modify-widget-code.png differ
diff --git a/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/set-url-in-widget.png b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/set-url-in-widget.png
new file mode 100644
index 0000000000..5288b5076f
Binary files /dev/null and b/Document-Processing/PDF/PDF-Viewer/flutter/How-to/images/set-url-in-widget.png differ
diff --git a/Document-Processing/PDF/PDF-Viewer/flutter/page-navigation.md b/Document-Processing/PDF/PDF-Viewer/flutter/page-navigation.md
index 5a0759eda7..f62b1e3801 100644
--- a/Document-Processing/PDF/PDF-Viewer/flutter/page-navigation.md
+++ b/Document-Processing/PDF/PDF-Viewer/flutter/page-navigation.md
@@ -234,4 +234,6 @@ Widget build(BuildContext context) {
}
{% endhighlight %}
-{% endtabs %}
\ No newline at end of file
+{% endtabs %}
+
+N> Avoid calling `setState()` inside the `onPageChanged` or `onDocumentLoaded` callbacks. Doing so rebuilds the entire widget tree — including the `SfPdfViewer` — which can decrease performance when viewing large PDF documents. Instead, use an `addListener()` to the `PdfViewerController` to monitor page changes and update only the specific UI elements that need to change (for example, the page number indicator). This keeps viewer rebuilds to a minimum and delivers smoother scrolling and better stability with large PDF files.
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Assembly-Required-for-PPTXtoImage-Conversion.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Assembly-Required-for-PPTXtoImage-Conversion.md
index 2f1584438d..2cf18a76ce 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Assembly-Required-for-PPTXtoImage-Conversion.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Assembly-Required-for-PPTXtoImage-Conversion.md
@@ -100,7 +100,7 @@ N> 2. Starting with the v27.1.x, if you reference "Syncfusion.PresentationRender
## Converting Charts
-The following assemblies are required to be referred in addition to the above mentioned assemblies for converting the chart present in the PowerPoint Presentation into image.
+The following assemblies are required in addition to the above-mentioned assemblies to convert the chart present in the PowerPoint Presentation to an image.
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-Core-Web-API.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-Core-Web-API.md
index 021d45257b..e74c992aeb 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-Core-Web-API.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-Core-Web-API.md
@@ -113,7 +113,7 @@ N> Ensure your ASP.NET Core Web API is running on the specified port before runn
Step 2: Add the below code snippet in the **Program.cs** file for accessing the Web API using HTTP requests.
-This method sends a GET request to the Web API endpoint to retrieve and save the converted Image.
+This method sends a GET request to the Web API endpoint to retrieve and save the converted image.
{% tabs %}
@@ -129,7 +129,7 @@ using (HttpClient client = new HttpClient())
// Check if the response is successful
if (response.IsSuccessStatusCode)
{
- //Read the content as a string.
+ //Read the content as a stream.
Stream responseBody = await response.Content.ReadAsStreamAsync();
FileStream fileStream = File.Create("../../../Output/Output.jpeg");
responseBody.CopyTo(fileStream);
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-Core.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-Core.md
index bcc41159d9..fcccd086b8 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-Core.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-Core.md
@@ -69,22 +69,18 @@ Step 6: Add a new action method **ConvertPPTXtoImage** in HomeController.cs and
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Open the file as Stream.
-using (FileStream fileStream = new FileStream(Data/Input.pptx", FileMode.Open, FileAccess.Read))
+//Open an existing PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Open("Data/Input.pptx"))
{
- //Open the existing PowerPoint presentation.
- using (IPresentation pptxDoc = Presentation.Open(fileStream))
- {
- //Initialize the PresentationRenderer to perform image conversion.
- pptxDoc.PresentationRenderer = new PresentationRenderer();
- //Convert PowerPoint slide to image as stream.
- Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg);
- //Reset the stream position.
- stream.Position = 0;
- //Download image in the browser.
- return File(stream, "application/jpeg", "PPTXtoImage.Jpeg");
- }
-}
+ //Initialize the PresentationRenderer to perform image conversion.
+ pptxDoc.PresentationRenderer = new PresentationRenderer();
+ //Convert PowerPoint slide to image as stream.
+ Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg);
+ //Reset the stream position.
+ stream.Position = 0;
+ //Download image in the browser.
+ return File(stream, "application/jpeg", "PPTXtoImage.Jpeg");
+}
{% endhighlight %}
{% endtabs %}
@@ -168,22 +164,18 @@ Step 6: Add a new action method **ConvertPPTXtoImage** in HomeController.cs and
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Open the file as Stream.
-using (FileStream fileStream = new FileStream(Data/Input.pptx", FileMode.Open, FileAccess.Read))
+//Open an existing PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Open("Data/Input.pptx"))
{
- //Open the existing PowerPoint presentation.
- using (IPresentation pptxDoc = Presentation.Open(fileStream))
- {
- //Initialize the PresentationRenderer to perform image conversion.
- pptxDoc.PresentationRenderer = new PresentationRenderer();
- //Convert PowerPoint slide to image as stream.
- Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg);
- //Reset the stream position.
- stream.Position = 0;
- //Download image in the browser.
- return File(stream, "application/jpeg", "PPTXtoImage.Jpeg");
- }
-}
+ //Initialize the PresentationRenderer to perform image conversion.
+ pptxDoc.PresentationRenderer = new PresentationRenderer();
+ //Convert PowerPoint slide to image as stream.
+ Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg);
+ //Reset the stream position.
+ stream.Position = 0;
+ //Download image in the browser.
+ return File(stream, "application/jpeg", "PPTXtoImage.Jpeg");
+}
{% endhighlight %}
{% endtabs %}
@@ -283,22 +275,18 @@ Step 6: Add a new action method **ConvertPPTXtoImage** in HomeController.cs and
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Open the file as Stream.
-using (FileStream fileStream = new FileStream(Data/Input.pptx", FileMode.Open, FileAccess.Read))
+//Open an existing PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Open("Data/Input.pptx"))
{
- //Open the existing PowerPoint presentation.
- using (IPresentation pptxDoc = Presentation.Open(fileStream))
- {
- //Initialize the PresentationRenderer to perform image conversion.
- pptxDoc.PresentationRenderer = new PresentationRenderer();
- //Convert PowerPoint slide to image as stream.
- Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg);
- //Reset the stream position.
- stream.Position = 0;
- //Download image in the browser.
- return File(stream, "application/jpeg", "PPTXtoImage.Jpeg");
- }
-}
+ //Initialize the PresentationRenderer to perform image conversion.
+ pptxDoc.PresentationRenderer = new PresentationRenderer();
+ //Convert PowerPoint slide to image as stream.
+ Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg);
+ //Reset the stream position.
+ stream.Position = 0;
+ //Download image in the browser.
+ return File(stream, "application/jpeg", "PPTXtoImage.Jpeg");
+}
{% endhighlight %}
{% endtabs %}
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-MVC.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-MVC.md
index d418f622c0..60cdebd0d7 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-MVC.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-ASP-NET-MVC.md
@@ -19,7 +19,7 @@ Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www
**Prerequisites:**
* Visual Studio 2022.
-* Install **.NET desktop development** workload with necessary .NET Framework SDK.
+* Install **ASP.NET and web development** workload with the required .NET Framework SDK.
Step 1: Create a new C# ASP.NET MVC application project.
@@ -72,19 +72,13 @@ Step 7: Add the below code snippet in **HomeController.cs** to **convert a Power
public void ConvertPPTXtoImage()
{
- //Open the file as Stream.
- using (FileStream pathStream = new FileStream(Server.MapPath("~/App_Data/Input.pptx"), FileMode.Open, FileAccess.Read))
+ //Opens a PowerPoint Presentation.
+ using (IPresentation pptxDoc = Presentation.Open(Server.MapPath("~/App_Data/Input.pptx")))
{
- //Opens a PowerPoint Presentation.
- using (IPresentation pptxDoc = Presentation.Open(pathStream))
- {
- //Convert the first slide into image.
- Image image = pptxDoc.Slides[0].ConvertToImage(Syncfusion.Drawing.ImageType.Metafile);
- //Saves the image file to MemoryStream.
- MemoryStream stream = new MemoryStream();
- //Download image file in the browser.
- ExportAsImage(image, "PPTXToImage.Jpeg", ImageFormat.Jpeg, HttpContext.ApplicationInstance.Response);
- }
+ //Convert the first slide into image.
+ Image image = pptxDoc.Slides[0].ConvertToImage(Syncfusion.Drawing.ImageType.Metafile);
+ //Download image file in the browser.
+ ExportAsImage(image, "PPTXToImage.Jpeg", ImageFormat.Jpeg, HttpContext.ApplicationInstance.Response);
}
}
//To download the image file.
@@ -125,7 +119,7 @@ By executing the program, you will get the **image** as follows.
* JetBrains Rider.
* Install .NET Framework Developer Pack.
-Step 1. Open JetBrains Rider and create a new ASP.NET MVC web application project.
+Step 1: Open JetBrains Rider and create a new ASP.NET MVC web application project.
* Launch JetBrains Rider.
* Click **New Solution** on the welcome screen.
@@ -135,7 +129,7 @@ Step 1. Open JetBrains Rider and create a new ASP.NET MVC web application projec
* Enter a project name and specify the location.
* Select the target framework as Full Framework and choose the desired version.
* Select **Template** as **Web App**.
-* Click create.
+* Click **Create**.

@@ -151,7 +145,7 @@ Step 2: Install the NuGet package from [NuGet.org](https://www.nuget.org/).

-N> Starting with v16.2.0.x, if you reference Syncfusion assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion license key in your application to use our components.
+N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
Step 3: Include the following namespace in that **HomeController.cs** file.
@@ -190,19 +184,13 @@ Step 6: Add the below code snippet in **HomeController.cs** to **convert a Power
public void ConvertPPTXtoImage()
{
- //Open the file as Stream.
- using (FileStream pathStream = new FileStream(Server.MapPath("~/App_Data/Input.pptx"), FileMode.Open, FileAccess.Read))
+ //Opens a PowerPoint Presentation.
+ using (IPresentation pptxDoc = Presentation.Open(Server.MapPath("~/App_Data/Input.pptx")))
{
- //Opens a PowerPoint Presentation.
- using (IPresentation pptxDoc = Presentation.Open(pathStream))
- {
- //Convert the first slide into image.
- Image image = pptxDoc.Slides[0].ConvertToImage(Syncfusion.Drawing.ImageType.Metafile);
- //Saves the image file to MemoryStream.
- MemoryStream stream = new MemoryStream();
- //Download image file in the browser.
- ExportAsImage(image, "PPTXToImage.Jpeg", ImageFormat.Jpeg, HttpContext.ApplicationInstance.Response);
- }
+ //Convert the first slide into image.
+ Image image = pptxDoc.Slides[0].ConvertToImage(Syncfusion.Drawing.ImageType.Metafile);
+ //Download image file in the browser.
+ ExportAsImage(image, "PPTXToImage.Jpeg", ImageFormat.Jpeg, HttpContext.ApplicationInstance.Response);
}
}
//To download the image file.
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Elastic-Beanstalk.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Elastic-Beanstalk.md
index 33454a2871..420dd6a976 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Elastic-Beanstalk.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Elastic-Beanstalk.md
@@ -16,12 +16,12 @@ Step 1: Create a new ASP.NET Core Web application (Model-View-Controller) projec

-Step 2: Install the following **Nuget packages** in your application from [Nuget.org](https://www.nuget.org/).
+Step 2: Install the following **NuGet Packages** in your application from [Nuget.org](https://www.nuget.org/).
* [Syncfusion.PresentationRenderer.Net.Core](https://www.nuget.org/packages/Syncfusion.PresentationRenderer.Net.Core)
* [SkiaSharp.NativeAssets.Linux.NoDependencies v3.119.1](https://www.nuget.org/packages/SkiaSharp.NativeAssets.Linux.NoDependencies/3.119.1)
-
+

N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
@@ -31,6 +31,8 @@ Step 3: Include the following namespaces in the **HomeController.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
+using Microsoft.AspNetCore.Mvc;
using Syncfusion.Presentation;
using Syncfusion.PresentationRenderer;
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Lambda.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Lambda.md
index 013721e9eb..02c9845723 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Lambda.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Lambda.md
@@ -18,14 +18,14 @@ Step 1: Create a new **AWS Lambda project** as follows.
Step 2: Select Blueprint as Empty Function and click **Finish**.

-Step 3: Install the following **Nuget packages** in your application from [Nuget.org](https://www.nuget.org/).
+Step 3: Install the following **NuGet packages** in your application from [NuGet.org](https://www.nuget.org/).
* [Syncfusion.PresentationRenderer.Net.Core](https://www.nuget.org/packages/Syncfusion.PresentationRenderer.Net.Core)
* [SkiaSharp.NativeAssets.Linux.NoDependencies v3.119.1](https://www.nuget.org/packages/SkiaSharp.NativeAssets.Linux.NoDependencies/3.119.1)
-
+
-
+
N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
@@ -52,6 +52,7 @@ Step 7: Include the following namespaces in **Function.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using Amazon.Lambda.Core;
using Syncfusion.Presentation;
using Syncfusion.PresentationRenderer;
using Syncfusion.Drawing;
@@ -105,8 +106,8 @@ private void FontSettings_SubstituteFont(object sender, SubstituteFontEventArgs
{% endhighlight %}
{% endtabs %}
-N> If using an older version of Syncfusion and Skiasharp NuGet as v2.88.8, there is a chance of encountering a libSkiaSharp not found exception during the conversion process.
-To resolve this, refer to the code snippet provided in the documentation [here]( https://help.syncfusion.com/document-processing/faq/how-to-resolve-libskiasharp-not-found-exception-in-net8-and-net9-on-linux).
+N> If using an older version of Syncfusion and SkiaSharp NuGet as v2.88.8, there is a chance of encountering a libSkiaSharp not found exception during the conversion process.
+To resolve this, refer to the code snippet provided in the documentation [here](https://help.syncfusion.com/document-processing/faq/how-to-resolve-libskiasharp-not-found-exception-in-net8-and-net9-on-linux).
Step 9: Right-click the project and select **Publish to AWS Lambda**.

@@ -128,7 +129,7 @@ Step 13: Edit Memory size and Timeout as maximum in General configuration of the
Step 1: Create a new console project.

-step 2: Install the following **Nuget packages** in your application from [Nuget.org](https://www.nuget.org/).
+Step 2: Install the following **NuGet packages** in your application from [NuGet.org](https://www.nuget.org/).
* [AWSSDK.Core](https://www.nuget.org/packages/AWSSDK.Core/)
* [AWSSDK.Lambda](https://www.nuget.org/packages/AWSSDK.Lambda/)
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Linux-EC2.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Linux-EC2.md
index 4b2f9e6dc6..aaa9863259 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Linux-EC2.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS-Linux-EC2.md
@@ -8,7 +8,7 @@ documentation: UG
# Convert PowerPoint to Image in Amazon Linux EC2
-Syncfusion® [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) is used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **convert PowerPoint to image in Amazon Linux EC2** within a few lines of code.
+Syncfusion® [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) is used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **convert a PowerPoint to image in Amazon Linux EC2** within a few lines of code.
N> To run the sample without manually providing credentials, attach an IAM role with S3 access to your EC2 instance. The AWS SDK will automatically use this role, allowing secure access to S3 without storing access keys.
@@ -42,19 +42,22 @@ Install the following NuGet packages from [NuGet.org](https://www.nuget.org/).
* [Microsoft.VisualStudio.Azure.Containers.Tools.Targets](https://www.nuget.org/packages/Microsoft.VisualStudio.Azure.Containers.Tools.Targets)
* [SkiaSharp.NativeAssets.Linux.NoDependencies](https://www.nuget.org/packages/SkiaSharp.NativeAssets.Linux.NoDependencies)
-
+
N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
### Step 3: Include required namespaces
-Add the following namespaces in Program.cs
+Add the following namespaces in **Program.cs**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-using Amazon.S3;
+using System;
+using System.IO;
+using System.Threading.Tasks;
using Amazon;
+using Amazon.S3;
using Amazon.S3.Model;
using Syncfusion.Presentation;
using Syncfusion.PresentationRenderer;
@@ -63,8 +66,8 @@ using Syncfusion.PresentationRenderer;
{% endtabs %}
### Step 4: Process PowerPoint files from AWS S3
-
-Include the following code snippet in Program.cs to convert PowerPoint presentations into images.
+
+Include the following code snippet in **Program.cs** to convert PowerPoint presentations into images.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -163,7 +166,7 @@ static async Task ConvertPptxToImage(string inputFileName, string inputFolderNam
var response = await s3Client.GetObjectAsync(new Amazon.S3.Model.GetObjectRequest
{
BucketName = bucketName,
- Key = inputFolderName+inputFileName
+ Key = inputFolderName + inputFileName
});
using (Stream responseStream = response.ResponseStream)
{
@@ -300,7 +303,7 @@ Step 3: Click the **Browse** button in the **Private key file for authentication
Step 4: Click **Open** button. It will be connected to the EC2 instance .
-
+
## Deploy the sample on an AWS Linux EC2 Instance
@@ -333,7 +336,7 @@ sudo yum install git -y
Step 5: Check whether the **Git** is installed properly using below command.
```
-git –version
+git --version
```

diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS.md
index 09ef4c7348..c220ce07f8 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-AWS.md
@@ -8,11 +8,11 @@ documentation: UG
# Convert PowerPoint Presentation to Image in Amazon Web Services (AWS)
-Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and **convert PowerPoint documents** programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **convert a PowerPoint Presentation to image in Amazon Web Services (AWS)** within a few lines of code.
+Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and **convert PowerPoint documents** programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **convert a PowerPoint Presentation to image in Amazon Web Services (AWS)** within a few lines of code.
-N> If this is your first time working with Amazon Web Services (AWS), please refer to the dedicated AWS resources. This section explains how to convert PowerPoint Presentation to image in C# using the .NET Core PowerPoint library (Presentation) in AWS.
+N> If this is your first time working with Amazon Web Services (AWS), please refer to the [AWS getting started resources](https://aws.amazon.com/getting-started/). This section explains how to convert a PowerPoint Presentation to an image in C# using the Syncfusion® PowerPoint library in AWS.
-## Prerequisites
+## Prerequisites
* An active **Amazon Web Services (AWS) account** is required. If you don’t have one, please [create an account](https://aws.amazon.com/) before starting.
@@ -38,4 +38,11 @@ NuGet package name
{{'[Syncfusion.PresentationRenderer.Net.Core](https://www.nuget.org/packages/Syncfusion.PresentationRenderer.Net.Core)' | markdownify}}
{{'[SkiaSharp.NativeAssets.Linux.NoDependencies v3.119.1](https://www.nuget.org/packages/SkiaSharp.NativeAssets.Linux.NoDependencies/3.119.1)' | markdownify}}
+
+
+{{'[AWS Linux EC2](https://help.syncfusion.com/document-processing/powerpoint/conversions/powerpoint-to-image/net/convert-powerpoint-to-image-in-aws-linux-ec2)' | markdownify}}
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-App-Service-Linux.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-App-Service-Linux.md
index 5838cb2d08..1cb7735073 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-App-Service-Linux.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-App-Service-Linux.md
@@ -13,7 +13,7 @@ Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https:
## Steps to convert PowerPoint Presentation to Image in Azure App Service on Linux
Step 1: Create a new ASP.NET Core Web App (Model-View-Controller).
-
+
Step 2: Create a project name and select the location.

@@ -21,17 +21,17 @@ Step 2: Create a project name and select the location.
Step 3: Click **Create** button.

-Step 4: Install the following **Nuget packages** in your application from [Nuget.org](https://www.nuget.org/).
+Step 4: Install the following **NuGet packages** in your application from [NuGet.org](https://www.nuget.org/).
* [Syncfusion.PresentationRenderer.Net.Core](https://www.nuget.org/packages/Syncfusion.PresentationRenderer.Net.Core)
* [SkiaSharp.NativeAssets.Linux v3.119.1](https://www.nuget.org/packages/SkiaSharp.NativeAssets.Linux/3.119.1)
* [HarfBuzzSharp.NativeAssets.Linux v8.3.1.2](https://www.nuget.org/packages/HarfBuzzSharp.NativeAssets.Linux/8.3.1.2)
-
+
-
+
-
+
N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
@@ -80,13 +80,16 @@ Step 6: Include the following namespaces in **HomeController.cs**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System;
+using System.IO;
+using Microsoft.AspNetCore.Mvc;
using Syncfusion.Presentation;
using Syncfusion.PresentationRenderer;
{% endhighlight %}
{% endtabs %}
-Step 9: Include the below code snippet in **HomeController.cs** for **convert a PowerPoint Presentation to image**.
+Step 7: Include the below code snippet in **HomeController.cs** to **convert a PowerPoint Presentation to an image**.
{% tabs %}
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-App-Service-Windows.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-App-Service-Windows.md
index 9cdd57d5eb..c23cd8a595 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-App-Service-Windows.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-App-Service-Windows.md
@@ -13,7 +13,7 @@ Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https:
## Steps to convert PowerPoint Presentation to Image in Azure App Service on Windows
Step 1: Create a new ASP.NET Core Web App (Model-View-Controller).
-
+
Step 2: Create a project name and select the location.

@@ -23,7 +23,7 @@ Step 3: Click **Create** button.
Step 4: Install the [Syncfusion.PresentationRenderer.Net.Core](https://www.nuget.org/packages/Syncfusion.PresentationRenderer.Net.Core) NuGet package as a reference to your project from [NuGet.org](https://www.nuget.org/).
-
+
N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
@@ -72,13 +72,16 @@ Step 6: Include the following namespaces in **HomeController.cs**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System;
+using System.IO;
+using Microsoft.AspNetCore.Mvc;
using Syncfusion.Presentation;
using Syncfusion.PresentationRenderer;
{% endhighlight %}
{% endtabs %}
-Step 9: Include the below code snippet in **HomeController.cs** for **convert a PowerPoint Presentation to image**.
+Step 7: Include the below code snippet in **HomeController.cs** to **convert a PowerPoint Presentation to an image**.
{% tabs %}
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-Flex-Consumption.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-Flex-Consumption.md
index a29822892b..80f80fe131 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-Flex-Consumption.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-Flex-Consumption.md
@@ -32,6 +32,10 @@ Step 5: Include the following namespaces in the **Function1.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Azure.Functions.Worker;
+using Microsoft.Extensions.Logging;
using Syncfusion.Presentation;
using Syncfusion.PresentationRenderer;
using SkiaSharp;
@@ -94,7 +98,7 @@ public async Task Run([HttpTrigger(AuthorizationLevel.Function, "
}
}
///
- /// Event handler for font substitution during PDF conversion
+ /// Event handler for font substitution during Image conversion
///
///
///
@@ -113,7 +117,6 @@ public async Task Run([HttpTrigger(AuthorizationLevel.Function, "
args.AlternateFontStream = File.OpenRead(Path.Combine(fontsFolder, "Times New Roman.ttf"));
}
}
-
{% endhighlight %}
{% endtabs %}
@@ -138,8 +141,8 @@ Step 12: After creating app service then click **Finish** button.
Step 13: Click the **Publish** button.

-Step 14: Publish has been succeed.
-
+Step 14: Publish has succeeded.
+
Step 15: Now, go to Azure portal and select the App Services. After running the service, click **Get function URL by copying it**. Then, paste it in the below client sample (which will request the Azure Functions, to perform **PowerPoint Presentation to image conversion** using the template PowerPoint document). You will get the output **image** as follows.
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-v1.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-v1.md
index 3cab3c8ecb..4d550f2d03 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-v1.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-v1.md
@@ -13,7 +13,7 @@ Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www
## Steps to convert a PowerPoint Presentation to Image in Azure Functions v1
Step 1: Create a new Azure Functions project.
-
+
Step 2: Create a project name and select the location.

@@ -31,6 +31,12 @@ Step 5: Include the following namespaces in the **Function1.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
using Syncfusion.Presentation;
{% endhighlight %}
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-v4.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-v4.md
index d47280aea5..7756a70720 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-v4.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure-Functions-v4.md
@@ -30,6 +30,10 @@ Step 5: Include the following namespaces in the **Function1.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
using Syncfusion.Presentation;
using Syncfusion.PresentationRenderer;
{% endhighlight %}
@@ -93,8 +97,8 @@ Step 11: After creating app service then click **Finish** button.
Step 12: Click the **Publish** button.

-Step 13: Publish has been succeed.
-
+Step 13: Publish has succeeded.
+
Step 14: Now, go to Azure portal and select the App Services. After running the service, click **Get function URL by copying it**. Then, paste it in the below client sample (which will request the Azure Functions, to perform **PowerPoint Presentation to image conversion** using the template PowerPoint document). You will get the output **image** as follows.
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure.md
index 154e4dd297..84ad8160db 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Azure.md
@@ -6,11 +6,11 @@ control: PowerPoint
documentation: UG
---
-# Convert PowerPoint Presentation to Image in Azure Platform
+# Convert PowerPoint Presentation to Image in Azure
-Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and **convert PowerPoint documents** programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **convert a PowerPoint Presentation to image in Azure Platform** within a few lines of code.
+Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and **convert PowerPoint documents** programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **convert a PowerPoint Presentation to image in Azure** within a few lines of code.
-N> If this is your first time working with Azure, please refer to the dedicated Azure development resources. This section explains how to convert PowerPoint Presentation to image in C# using the PowerPoint library (Presentation) in Azure.
+N> If this is your first time working with Azure, please refer to the [Azure development resources](https://learn.microsoft.com/en-us/azure/). This section explains how to convert a PowerPoint Presentation to an image in C# using the Syncfusion® PowerPoint library in Azure.
## Prerequisites
* An active **Microsoft Azure subscription** is required. If you don’t have one, please [create an account](https://portal.azure.com/#home) before starting.
@@ -43,4 +43,10 @@ NuGet packages required
{{'[Azure Functions v4](https://help.syncfusion.com/document-processing/powerpoint/conversions/powerpoint-to-image/net/convert-powerpoint-to-image-in-azure-functions-v4)' | markdownify}}
diff --git a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Blazor.md b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Blazor.md
index e6dfaf6211..a82a14b00c 100644
--- a/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Blazor.md
+++ b/Document-Processing/PowerPoint/Conversions/PowerPoint-To-Image/NET/Convert-PowerPoint-to-Image-in-Blazor.md
@@ -8,7 +8,7 @@ documentation: UG
# Convert PowerPoint to Image in Blazor
-Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and convert PowerPoint presentation programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, a **convert a PowerPoint to image in Blazor**.
+Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and convert PowerPoint presentation programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **convert a PowerPoint to image in Blazor**.
## Blazor Web App Server Application
@@ -18,8 +18,8 @@ Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https:
**Prerequisites:**
-* Visual Studio 2022.
-* Install [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later.
+* Visual Studio 2022.
+* Install [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later.
Step 1: Create a new C# Blazor Web app project.
* Select "Blazor Web App" from the template and click **Next**.
@@ -116,26 +116,22 @@ Create a new `MemoryStream` method in the `PowerPointService` and include the fo
{% tabs %}
{% highlight c# tabtitle="C#" %}
-// Open the file as Stream.
-using (FileStream sourceStreamPath = new FileStream(@"wwwroot/Input.pptx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
+//Opens an existing PowerPoint presentation from the wwwroot folder.
+using (IPresentation pptxDoc = Presentation.Open(Path.Combine("wwwroot", "Input.pptx")))
{
- // Open the existing PowerPoint presentation with loaded stream.
- using (IPresentation pptxDoc = Presentation.Open(sourceStreamPath))
+ //Initialize the PresentationRenderer to perform image conversion.
+ pptxDoc.PresentationRenderer = new PresentationRenderer();
+ //Convert PowerPoint slide to image as stream.
+ using (Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg))
{
- // Initialize the PresentationRenderer to perform image conversion.
- pptxDoc.PresentationRenderer = new PresentationRenderer();
- // Convert PowerPoint slide to image as stream.
- using (Stream stream = pptxDoc.Slides[0].ConvertToImage(ExportImageFormat.Jpeg))
- {
- // Save the converted image file to MemoryStream.
- MemoryStream Stream = new MemoryStream();
- stream.CopyTo(Stream);
- Stream.Position = 0;
- // Download image file in the browser.
- return Stream;
- }
+ //Save the converted image file to MemoryStream.
+ MemoryStream outputStream = new MemoryStream();
+ stream.CopyTo(outputStream);
+ outputStream.Position = 0;
+ //Return the image stream for download in the browser.
+ return outputStream;
}
-}
+}
{% endhighlight %}
{% endtabs %}
@@ -151,7 +147,7 @@ builder.Services.AddScoped();
{% endhighlight %}
{% endtabs %}
-
+
Step 9: Create `FileUtils.cs` for JavaScript interoperability.
Create a new class file named `FileUtils` in the project and add the following code to invoke the JavaScript action for file download in the browser.
@@ -179,9 +175,9 @@ Add this function in the `App.razor` file located in the `Pages` folder.
{% highlight HTML %}
{% endhighlight %}
{% endtabs %}
-Step 13: Add the navigation link.
+Step 11: Add the navigation link.
Add the following code snippet to the Navigation menu's Razor file in the `Layout` folder.
{% tabs %}
@@ -223,13 +204,13 @@ Add the following code snippet to the Navigation menu's Razor file in the `Layou
{% endtabs %}
-Step 14: Build the project.
+Step 12: Build the project.
Click on **Build** → **Build Solution** or press Ctrl+Shift+B to build the project.
-Step 15: Run the project.
+Step 13: Run the project.
-Click the Start button (green arrow) or press F5 to run the application.
+Click the Start button (green arrow) or press F5 to run the application. After the page loads, click **Open and Save Presentation** in the browser. The modified file will be downloaded as `Result.pptx`.
A complete working sample is available on [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/Blazor/Blazor-Web-App-Server).
@@ -243,7 +224,7 @@ Looking for the full .NET PowerPoint Library component overview, features, prici
**Prerequisites:**
-* Visual Studio 2022.
+* Visual Studio 2022 or later.
* Install [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later.
Step 1: Create a new C# Blazor WASM Standalone app project.
@@ -286,51 +267,48 @@ Include the following code to create a new button that triggers the presentation
{% endhighlight %}
{% endtabs %}
-Step 5: Implement `OpenAndSavePresentation` method in `Presentation.razor`.
-Create a new `async` method named `OpenAndSavePresentation` and include the following code snippet to **open an existing PowerPoint Presentation in Blazor WASM Standalone app**.
-
-{% tabs %}
-{% highlight c# tabtitle="C#" %}
-
-using (Stream inputStream = await client.GetStreamAsync("Data/Template.pptx"));
-// Open an existing PowerPoint Presentation.
-using (IPresentation pptxDoc = Syncfusion.Presentation.Presentation.Open(inputStream));
-
-{% endhighlight %}
-{% endtabs %}
-
-Step 6: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
+Step 5: Implement the `OpenAndSavePresentation` method in `Presentation.razor`.
+Create a new `async` method named `OpenAndSavePresentation` and include the following complete code to **open, edit, and save a PowerPoint Presentation in Blazor WASM Standalone app**. WASM does not have access to the file system, so the template is fetched via `HttpClient` and the result is saved to a `MemoryStream` before download.
{% tabs %}
-{% highlight c# tabtitle="C#" %}
-
-// Get the first slide from the PowerPoint Presentation.
-ISlide slide = pptxDoc.Slides[0];
-// Get the first shape of the slide.
-IShape shape = slide.Shapes[0] as IShape;
-// Change the text of the shape.
-if (shape.TextBody.Text == "Company History")
- shape.TextBody.Text = "Company Profile";
-
-{% endhighlight %}
-{% endtabs %}
-
-Step 7: Add below code example to **save the PowerPoint Presentation in Blazor WASM Standalone app**.
-
-{% tabs %}
-{% highlight c# tabtitle="C#" %}
+{% highlight CSHTML %}
-// Save the PowerPoint Presentation as stream.
-MemoryStream pptxStream = new();
-pptxDoc.Save(pptxStream);
-pptxStream.Position = 0;
-// Download Powerpoint document in the browser.
-await JS.SaveAs("Sample.pptx", pptxStream.ToArray());
+@code {
+ ///
+ /// Generate and download the PowerPoint Presentation
+ ///
+ protected async Task OpenAndSavePresentation()
+ {
+ // Fetch the template file from the wwwroot folder via HTTP.
+ using (Stream inputStream = await client.GetStreamAsync("Data/Template.pptx"))
+ {
+ // Open the existing PowerPoint Presentation from the input stream.
+ using (IPresentation pptxDoc = Syncfusion.Presentation.Presentation.Open(inputStream))
+ {
+ // Get the first slide from the PowerPoint Presentation.
+ ISlide slide = pptxDoc.Slides[0];
+ // Get the first shape of the slide and update its text.
+ IShape shape = slide.Shapes[0];
+ if (shape != null && shape.TextBody != null && shape.TextBody.Text == "Company History")
+ {
+ shape.TextBody.Text = "Company Profile";
+ }
+
+ // Save the PowerPoint Presentation to a memory stream.
+ MemoryStream pptxStream = new MemoryStream();
+ pptxDoc.Save(pptxStream);
+ pptxStream.Position = 0;
+ // Download the PowerPoint document in the browser.
+ await JS.SaveAs("Sample.pptx", pptxStream.ToArray());
+ }
+ }
+ }
+}
{% endhighlight %}
{% endtabs %}
-Step 8: Create `FileUtils.cs` for JavaScript interoperability.
+Step 6: Create `FileUtils.cs` for JavaScript interoperability.
Create a new class file named `FileUtils` in the project and add the following code to invoke the JavaScript action for file download in the browser.
{% tabs %}
@@ -348,7 +326,7 @@ public static class FileUtils
{% endhighlight %}
{% endtabs %}
-Step 9: Add the following JavaScript function to `index.html`.
+Step 7: Add the following JavaScript function to `index.html`.
Add this function in the `index.html` file located in `wwwroot`.
{% tabs %}
@@ -356,31 +334,19 @@ Add this function in the `index.html` file located in `wwwroot`.
{% endhighlight %}
{% endtabs %}
-Step 10: Add the navigation link.
+Step 8: Add the navigation link.
Add the following code snippet to the Navigation menu's Razor file in the `Layout` folder.
{% tabs %}
@@ -403,7 +369,7 @@ Click on **Build** → **Build Solution** or press Ctrl+ShiftF5 to run the application.
+Click the Start button (green arrow) or press F5 to run the application. After the page loads, click **Open and Save Presentation** in the browser. The modified file will be downloaded as `Sample.pptx`.
A complete working sample is available on [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/Blazor/WASM-Standalone-App).
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-DropBox-Cloud-Storage.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-DropBox-Cloud-Storage.md
index b0ba25996d..108c8836b1 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-DropBox-Cloud-Storage.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-DropBox-Cloud-Storage.md
@@ -6,15 +6,16 @@ control: PowerPoint
documentation: UG
---
-# Open and Save Presentation in DropBox Cloud Storage
+# Open and Save Presentation in Dropbox Cloud Storage
-## Prerequisites
+## Prerequisites
-* Create a DropBox API App, by following the official documentation provided by DropBox [link](https://www.dropbox.com/developers/documentation/dotnet#tutorial). The process involves visiting the DropBox Developer website and using their App Console to set up your API app. This app will allow you to interact with DropBox programmatically, enabling secure access to files and data.
+* Create a Dropbox API App from the [Dropbox App Console](https://www.dropbox.com/developers/apps). In the App Console, set the required permission scope to `files.content.read` (for opening) and `files.content.write` (for saving), then generate an **access token** for the app. This token authenticates programmatic access to your Dropbox account.
+* Store the access token securely using `appsettings.json`, environment variables, or the Secret Manager — do not hard-code it in production code.
-## Open Presentation from DropBox Cloud Storage
+## Open Presentation from Dropbox Cloud Storage
-Steps to open a Presentation from DropBox Cloud Storage.
+Steps to open a Presentation from Dropbox Cloud Storage.
Step 1: Create a new ASP.NET Core Web Application (Model-View-Controller).
@@ -32,7 +33,7 @@ Step 3: Install the following **Nuget packages** in your application from [NuGet


-Step 4: Add a new button in the **Index.cshtml** as shown below.
+Step 4: Add a new form in **Index.cshtml** that posts to the `EditDocument` action, as shown below.
{% tabs %}
{% highlight CSHTML %}
@@ -51,12 +52,14 @@ Step 5: Include the following namespaces in **HomeController.cs**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
using Dropbox.Api;
+using Dropbox.Api.Files;
using Syncfusion.Presentation;
{% endhighlight %}
{% endtabs %}
-Step 6: Include the below code snippet in **HomeController.cs** to **open a Presentation from DropBox Cloud Storage**.
+Step 6: Include the below code snippet in **HomeController.cs** to **open a Presentation from Dropbox Cloud Storage**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -64,7 +67,7 @@ public async Task EditDocument()
{
try
{
- //Retrieve the document from DropBox
+ //Retrieve the document from Dropbox
MemoryStream stream = await GetDocumentFromDropBox();
//Set the position to the beginning of the MemoryStream
@@ -102,23 +105,23 @@ public async Task EditDocument()
{% endhighlight %}
{% endtabs %}
-### Download file from DropBox cloud storage
+### Download file from Dropbox cloud storage
-This is the helper method to download Presentation from DropBox cloud storage.
+This is the helper method to download a Presentation from Dropbox cloud storage.
{% tabs %}
{% highlight c# tabtitle="C#" %}
///
-/// Download file from DropBox cloud storage
+/// Download file from Dropbox cloud storage
///
///
public async Task GetDocumentFromDropBox()
{
- //Define the access token for authentication with the Dropbox API
+ //TODO: Replace with your Dropbox access token. In production, read this from configuration or a secret store.
var accessToken = "Access_Token";
//Define the file path in Dropbox where the file is located. For ex: "/Template.pptx" or "/Apps/Template.pptx"
- var filePathInDropbox = "FilePath";
+ var filePathInDropbox = "/PowerPointTemplate.pptx";
try
{
@@ -139,7 +142,7 @@ public async Task GetDocumentFromDropBox()
}
catch (Exception ex)
{
- Console.WriteLine($"Error retrieving document from DropBox: {ex.Message}");
+ Console.WriteLine($"Error retrieving document from Dropbox: {ex.Message}");
throw; // or handle the exception as needed
}
}
@@ -152,9 +155,9 @@ By executing the program, you will get the **Presentation** as follows.

-## Save Presentation to DropBox Cloud Storage
+## Save Presentation to Dropbox Cloud Storage
-Steps to save a Presentation to DropBox Cloud Storage.
+Steps to save a Presentation to Dropbox Cloud Storage.
Step 1: Create a new ASP.NET Core Web Application (Model-View-Controller).
@@ -172,7 +175,7 @@ Step 3: Install the following **Nuget packages** in your application from [NuGet


-Step 4: Add a new button in the **Index.cshtml** as shown below.
+Step 4: Add a new form in **Index.cshtml** that posts to the `UploadDocument` action, as shown below.
{% tabs %}
{% highlight CSHTML %}
@@ -191,94 +194,100 @@ Step 5: Include the following namespaces in **HomeController.cs**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
using Dropbox.Api.Files;
using Dropbox.Api;
+using Syncfusion.Drawing;
using Syncfusion.Presentation;
{% endhighlight %}
{% endtabs %}
-Step 6: Include the below code snippet in **HomeController.cs** to **save a Presentation to DropBox Cloud Storage**.
+Step 6: Include the below code snippet in **HomeController.cs** to **save a Presentation to Dropbox Cloud Storage**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
public async Task UploadDocument()
{
//Create a new instance of PowerPoint Presentation file
- IPresentation pptxDocument = Presentation.Create();
-
- //Add a new slide to file and apply background color
- ISlide slide = pptxDocument.Slides.Add(SlideLayoutType.TitleOnly);
+ using (IPresentation pptxDocument = Presentation.Create())
+ {
+ //Add a new slide to file and apply background color
+ ISlide slide = pptxDocument.Slides.Add(SlideLayoutType.TitleOnly);
- //Specify the fill type and fill color for the slide background
- slide.Background.Fill.FillType = FillType.Solid;
- slide.Background.Fill.SolidFill.Color = ColorObject.FromArgb(232, 241, 229);
+ //Specify the fill type and fill color for the slide background
+ slide.Background.Fill.FillType = FillType.Solid;
+ slide.Background.Fill.SolidFill.Color = ColorObject.FromArgb(232, 241, 229);
- //Add title content to the slide by accessing the title placeholder of the TitleOnly layout-slide
- IShape titleShape = slide.Shapes[0] as IShape;
- titleShape.TextBody.AddParagraph("Company History").HorizontalAlignment = HorizontalAlignmentType.Center;
+ //Add title content to the slide by accessing the title placeholder of the TitleOnly layout-slide
+ IShape titleShape = slide.Shapes[0] as IShape;
+ titleShape.TextBody.AddParagraph("Company History").HorizontalAlignment = HorizontalAlignmentType.Center;
- //Add description content to the slide by adding a new TextBox
- IShape descriptionShape = slide.AddTextBox(53.22, 141.73, 874.19, 77.70);
- descriptionShape.TextBody.Text = "IMN Solutions PVT LTD is the software company, established in 1987, by George Milton. The company has been listed as the trusted partner for many high-profile organizations since 1988 and got awards for quality products from reputed organizations.";
+ //Add description content to the slide by adding a new TextBox
+ IShape descriptionShape = slide.AddTextBox(53.22, 141.73, 874.19, 77.70);
+ descriptionShape.TextBody.Text = "IMN Solutions PVT LTD is the software company, established in 1987, by George Milton. The company has been listed as the trusted partner for many high-profile organizations since 1988 and got awards for quality products from reputed organizations.";
- //Add bullet points to the slide
- IShape bulletPointsShape = slide.AddTextBox(53.22, 270, 437.90, 116.32);
+ //Add bullet points to the slide
+ IShape bulletPointsShape = slide.AddTextBox(53.22, 270, 437.90, 116.32);
- //Add a paragraph for a bullet point
- IParagraph firstPara = bulletPointsShape.TextBody.AddParagraph("The company acquired the MCY corporation for 20 billion dollars and became the top revenue maker for the year 2015.");
+ //Add a paragraph for a bullet point
+ IParagraph firstPara = bulletPointsShape.TextBody.AddParagraph("The company acquired the MCY corporation for 20 billion dollars and became the top revenue maker for the year 2015.");
- //Format how the bullets should be displayed
- firstPara.ListFormat.Type = ListType.Bulleted;
- firstPara.LeftIndent = 35;
- firstPara.FirstLineIndent = -35;
+ //Format how the bullets should be displayed
+ firstPara.ListFormat.Type = ListType.Bulleted;
+ firstPara.LeftIndent = 35;
+ firstPara.FirstLineIndent = -35;
- //Add another paragraph for the next bullet point
- IParagraph secondPara = bulletPointsShape.TextBody.AddParagraph("The company is participating in top open source projects in automation industry.");
+ //Add another paragraph for the next bullet point
+ IParagraph secondPara = bulletPointsShape.TextBody.AddParagraph("The company is participating in top open source projects in automation industry.");
- //Format how the bullets should be displayed
- secondPara.ListFormat.Type = ListType.Bulleted;
- secondPara.LeftIndent = 35;
- secondPara.FirstLineIndent = -35;
+ //Format how the bullets should be displayed
+ secondPara.ListFormat.Type = ListType.Bulleted;
+ secondPara.LeftIndent = 35;
+ secondPara.FirstLineIndent = -35;
- //Gets a picture as stream
- FileStream pictureStream = new FileStream("Image.jpg", FileMode.Open);
+ //Gets a picture as a stream (Image.jpg is shipped with the GitHub sample under Data/)
+ using (FileStream pictureStream = new FileStream(Path.GetFullPath("Data/Image.jpg"), FileMode.Open))
+ {
+ //Adds the picture to a slide by specifying its size and position.
+ slide.Shapes.AddPicture(pictureStream, 499.79, 238.59, 364.54, 192.16);
+ }
- //Adds the picture to a slide by specifying its size and position.
- slide.Shapes.AddPicture(pictureStream, 499.79, 238.59, 364.54, 192.16);
+ //Add an auto-shape to the slide
+ IShape stampShape = slide.Shapes.AddShape(AutoShapeType.Explosion1, 48.93, 430.71, 104.13, 80.54);
- //Add an auto-shape to the slide
- IShape stampShape = slide.Shapes.AddShape(AutoShapeType.Explosion1, 48.93, 430.71, 104.13, 80.54);
+ //Format the auto-shape color by setting the fill type and text
+ stampShape.Fill.FillType = FillType.None;
+ stampShape.TextBody.AddParagraph("IMN").HorizontalAlignment = HorizontalAlignmentType.Center;
- //Format the auto-shape color by setting the fill type and text
- stampShape.Fill.FillType = FillType.None;
- stampShape.TextBody.AddParagraph("IMN").HorizontalAlignment = HorizontalAlignmentType.Center;
+ //Saves the PowerPoint to MemoryStream
+ MemoryStream stream = new MemoryStream();
+ pptxDocument.Save(stream);
- //Saves the PowerPoint to MemoryStream
- MemoryStream stream = new MemoryStream();
- pptxDocument.Save(stream);
+ //Reset the stream position so the upload reads from the beginning
+ stream.Position = 0;
- //Upload the document to DropBox
- await UploadDocumentToDropBox(stream);
+ //Upload the document to Dropbox
+ await UploadDocumentToDropBox(stream);
- return Ok("PowerPoint uploaded to DropBox Cloud Storage.");
+ return Ok("PowerPoint uploaded to Dropbox Cloud Storage.");
+ }
}
{% endhighlight %}
{% endtabs %}
-### Upload file to DropBox cloud storage
+### Upload file to Dropbox cloud storage
-This is the helper method to upload Presentation to DropBox cloud storage.
+This is the helper method to upload a Presentation to Dropbox cloud storage.
{% tabs %}
{% highlight c# tabtitle="C#" %}
///
/// Upload file to Dropbox
///
-///
-///
-public async Task UploadDocumentToDropBox(MemoryStream stream)
+/// MemoryStream containing the PowerPoint file to upload
+public async Task UploadDocumentToDropBox(MemoryStream stream)
{
- //Define the access token for authentication with the Dropbox API
+ //TODO: Replace with your Dropbox access token. In production, read this from configuration or a secret store.
var accessToken = "Access_Token";
//Define the file path in Dropbox where the file should be saved. For ex: "/Template.pptx" or "/Apps/Template.pptx"
@@ -289,23 +298,22 @@ public async Task UploadDocumentToDropBox(MemoryStream stream)
//Create a new DropboxClient instance using the provided access token
using (var dbx = new DropboxClient(accessToken))
{
- //Upload the file to Dropbox
- var uploadResult = await dbx.Files.UploadAsync(filePathInDropbox, WriteMode.Overwrite.Instance, body: new MemoryStream(stream.ToArray()));
+ //Upload the file to Dropbox, overwriting any existing file at the same path.
+ //Use WriteMode.Add.Instance instead of Overwrite to receive a conflict if the file already exists.
+ await dbx.Files.UploadAsync(filePathInDropbox, WriteMode.Overwrite.Instance, body: stream);
}
Console.WriteLine("Upload completed successfully");
}
-
catch (Exception e)
{
Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
}
- return stream;
}
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/DropBox-Cloud-Storage/Save-PowerPoint-document).
-By executing the program, you will get the **Presentation** as follows.
+By executing the program, the resulting PowerPoint file is uploaded to Dropbox and the page returns a success message.
-
+
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-App-Engine.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-App-Engine.md
index 55bce8c4ed..08cc0183d6 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-App-Engine.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-App-Engine.md
@@ -8,7 +8,16 @@ documentation: UG
# Open and save Presentation in Google App Engine
-Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in Google App Engine**.
+Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a PowerPoint Presentation in Google App Engine**.
+
+## Prerequisites
+
+- A Google Cloud account with a created GCP project and billing enabled.
+- The **App Engine Admin API** enabled in the [Google Cloud Console](https://console.cloud.google.com/).
+- The [gcloud CLI](https://cloud.google.com/sdk/docs/install) installed locally.
+- [.NET SDK 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later installed.
+- [Visual Studio 2022](https://visualstudio.microsoft.com/) with the **ASP.NET and web development** workload installed.
+- A valid Syncfusion® license key. Refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering a Syncfusion® license key in your application.
## Set up App Engine
@@ -18,7 +27,7 @@ Step 1: Open the **Google Cloud Console** and click the **Activate Cloud Shell**
Step 2: Click the **Cloud Shell Editor** button to view the **Workspace**.

-Step 3: Open **Cloud Shell Terminal**, run the following **command** to confirm authentication.
+Step 3: Open the **Cloud Shell Terminal** and run the following **command** to confirm authentication.
{% tabs %}
{% highlight c# tabtitle="CLI" %}
@@ -28,21 +37,21 @@ gcloud auth list
{% endhighlight %}
{% endtabs %}
-
+
Step 4: Click the **Authorize** button.

## Create an application for App Engine
-Step 1: Open Visual Studio and select the ASP.NET Core Web app (Model-View-Controller) template.
-
+Step 1: Open Visual Studio and select the **ASP.NET Core Web App (Model-View-Controller)** template.
+
-Step 2: Configure your new project according to your requirements.
-
+Step 2: Configure the project name as **Open-and-save-PowerPoint-Presentation** (this name is referenced later in the Dockerfile `ENTRYPOINT`).
+
Step 3: Click the **Create** button.
-
+
Step 4: Install the [Syncfusion.Presentation.Net.Core](https://www.nuget.org/packages/Syncfusion.Presentation.Net.Core) NuGet package as a reference to your project from [NuGet.org](https://www.nuget.org/).

@@ -54,14 +63,16 @@ Step 5: Include the following namespaces in the **HomeController.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using Microsoft.AspNetCore.Mvc;
using Syncfusion.Presentation;
+using System.IO;
{% endhighlight %}
{% endtabs %}
-Step 6: A default action method named Index will be present in HomeController.cs. Right click on Index method and select **Go To View** where you will be directed to its associated view page **Index.cshtml**.
+Step 6: A default action method named `Index` will be present in `HomeController.cs`. Right-click the `Index` method and select **Go To View**, which opens the associated view page **Index.cshtml**.
-Step 7: Add a new button in the Index.cshtml as shown below.
+Step 7: Add a new button in **Index.cshtml** as shown below.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -80,19 +91,30 @@ Step 7: Add a new button in the Index.cshtml as shown below.
{% endhighlight %}
{% endtabs %}
-Step 8: Add a new action method **OpenAndSavePowerPoint** in HomeController.cs and include the below code snippet to **open and save PowerPoint document**.
+Step 8: Create a `Data` folder in the project root and add a sample PowerPoint file named `Template.pptx`. Then add the following item to the `.csproj` file so the file is copied to the publish output directory.
+
+{% tabs %}
+{% highlight xml tabtitle="XML" %}
+
+
+ PreserveNewest
+
+
+{% endhighlight %}
+{% endtabs %}
+
+Step 9: Add a new action method **OpenAndSavePowerPoint** in `HomeController.cs` and include the following code snippet to **open the PowerPoint document** using the file path overload.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-using FileStream fileStreamPath = new(Path.GetFullPath(@"Data/Template.pptx"), FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
-//Open an existing PowerPoint presentation.
-using IPresentation pptxDoc = Presentation.Open(fileStreamPath);
+//Open an existing PowerPoint presentation using the file path overload.
+using IPresentation pptxDoc = Presentation.Open(Path.GetFullPath("Data/Template.pptx"));
{% endhighlight %}
{% endtabs %}
-Step 9: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
+Step 10: Add the following code snippet to access a shape from a slide and change the text within it. Ensure that the first shape on the first slide of `Template.pptx` contains the text "Company History" before running the sample.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -102,38 +124,38 @@ ISlide slide = pptxDoc.Slides[0];
//Get the first shape of the slide.
IShape shape = slide.Shapes[0] as IShape;
//Change the text of the shape.
-if (shape.TextBody.Text == "Company History")
+if (shape != null && shape.TextBody != null && shape.TextBody.Text == "Company History")
shape.TextBody.Text = "Company Profile";
{% endhighlight %}
{% endtabs %}
-Step 10: Add below code example to **save the PowerPoint Presentation**.
+Step 11: Add the following code example to **save the PowerPoint Presentation** and return it to the browser.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Save the PowerPoint Presentation as stream.
+//Save the PowerPoint Presentation as a stream.
MemoryStream pptxStream = new();
pptxDoc.Save(pptxStream);
pptxStream.Position = 0;
-//Download Powerpoint document in the browser.
-return File(pptxStream, "application/powerpoint", "Result.pptx");
+//Download the PowerPoint document in the browser. The framework disposes the stream after the response is sent.
+return File(pptxStream, "application/vnd.openxmlformats-officedocument.presentationml.presentation", "Result.pptx");
{% endhighlight %}
{% endtabs %}
-## Move application to App Engine
+## Test the application in Cloud Shell
Step 1: Open the **Cloud Shell editor**.

-Step 2: Drag and drop the sample from your local machine to **Workspace**.
+Step 2: Drag and drop the sample from your local machine into the **Workspace**.

-N> If you have your sample application in your local machine, drag and drop it into the Workspace. If you created the sample using the Cloud Shell terminal command, it will be available in the Workspace.
+N> If you have your sample application on your local machine, drag and drop it into the Workspace. The sample is created locally in Visual Studio, so this step is required to upload it to Cloud Shell.
-Step 3: Open the Cloud Shell Terminal and run the following **command** to view the files and directories within your **current Workspace**.
+Step 3: Open the **Cloud Shell Terminal** and run the following **command** to view the files and directories within the current Workspace.
{% tabs %}
{% highlight c# tabtitle="CLI" %}
@@ -145,7 +167,7 @@ ls

-Step 4: Run the following **command** to navigate which sample you want run.
+Step 4: Run the following **command** to navigate to the sample you want to run.
{% tabs %}
{% highlight c# tabtitle="CLI" %}
@@ -155,27 +177,27 @@ cd Open-and-save-PowerPoint-Presentation
{% endhighlight %}
{% endtabs %}
-
+
-Step 5: To ensure that the sample is working correctly, please run the application using the following command.
+Step 5: Run the application using the following command. The URL must bind to `0.0.0.0` so the Cloud Shell Web Preview can proxy the request.
{% tabs %}
{% highlight c# tabtitle="CLI" %}
-dotnet run --urls=http://localhost:8080
+dotnet run --urls=http://0.0.0.0:8080
{% endhighlight %}
{% endtabs %}

-Step 6: Verify that the application is running properly by accessing the **Web View** -> **Preview on port 8080**.
+Step 6: Verify that the application is running properly by accessing **Web View** -> **Preview on port 8080**.

-Step 7: Now you can see the sample output on the preview page.
+Step 7: Click the **Open and Save PowerPoint** button on the preview page to download the modified `Result.pptx`.

-Step 8: Close the preview page and return to the terminal then press **Ctrl+C** for which will typically stop the process.
+Step 8: Close the preview page, return to the terminal, and press **Ctrl+C** to stop the process.

## Publish the application
@@ -192,7 +214,7 @@ dotnet publish -c Release

-Step 2: Run the following command in **Cloud Shell Terminal** to navigate to the publish folder.
+Step 2: Run the following command in the **Cloud Shell Terminal** to navigate to the publish folder.
{% tabs %}
{% highlight c# tabtitle="CLI" %}
@@ -205,22 +227,22 @@ cd bin/Release/net8.0/publish/
## Configure app.yaml and docker file
-Step 1: Add the app.yaml file to the publish folder with the following contents.
+Step 1: Add the `app.yaml` file to the publish folder with the following contents.
{% tabs %}
{% highlight c# tabtitle="CLI" %}
cat <> app.yaml
env: flex
-runtime: custom
+runtime: custom
EOT
{% endhighlight %}
{% endtabs %}
-
+
-Step 2: Add the Docker file to the publish folder with the following contents.
+Step 2: Add the `Dockerfile` to the publish folder with the following contents. The `ENTRYPOINT` DLL name must match the project assembly name (`Open-and-save-PowerPoint-Presentation.dll`).
{% tabs %}
{% highlight c# tabtitle="CLI" %}
@@ -228,7 +250,7 @@ Step 2: Add the Docker file to the publish folder with the following contents.
cat <> Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0
RUN apt-get update -y && apt-get install libfontconfig -y
-ADD / /app
+COPY . /app
EXPOSE 8080
ENV ASPNETCORE_URLS=http://*:8080
WORKDIR /app
@@ -238,14 +260,14 @@ EOT
{% endhighlight %}
{% endtabs %}
-
+
-Step 3: You can ensure **Docker** and **app.yaml** files are added in **Workspace**.
-
+Step 3: Verify that the `Dockerfile` and `app.yaml` files have been added to the Workspace.
+
## Deploy to App Engine
-Step 1: To deploy the application to the App Engine, run the following command in Cloud Shell Terminal. Afterwards, retrieve the **URL** from the Cloud Shell Terminal.
+Step 1: Run the following command in the **Cloud Shell Terminal** to deploy the application to App Engine. If this is the first deploy, the command will prompt you to choose a region; select the region closest to your users. Then retrieve the deployed app's URL from the terminal output.
{% tabs %}
{% highlight c# tabtitle="CLI" %}
@@ -255,15 +277,15 @@ gcloud app deploy --version v1
{% endhighlight %}
{% endtabs %}
-
+
-Step 2: Open the **URL** to access the application, which has been successfully deployed.
-
+Step 2: Open the deployed **URL** to access the application.
+
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/GCP/Google_App_Engine).
-By executing the program, you will get the **PowerPoint document** as follows. The output will be saved in **bin** folder.
+By executing the program, you will get the **PowerPoint document** as follows. The file is downloaded by the browser when the **Open and Save PowerPoint** button is clicked on the deployed page.

-Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
+Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Cloud-Platform.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Cloud-Platform.md
index 45a7e6670b..8e264676b7 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Cloud-Platform.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Cloud-Platform.md
@@ -1,20 +1,23 @@
---
title: Open and save Presentation in GCP | Syncfusion
-description: Learn how to open and save Presentation in Google Cloud Platform (GCP) using .NET Core PowerPoint library (Presentation) without Microsoft PowerPoint or interop dependencies.
+description: Learn how to open and save PowerPoint presentations in Google Cloud Platform using the .NET PowerPoint library without Microsoft PowerPoint.
platform: document-processing
-control: PowerPoint
-documentation: UG
----
+control: PowerPoint
+documentation: UG
+---
-# Open and save Presentation in Google Cloud Platform (GCP)
+# Open and Save PowerPoint Presentation in Google Cloud Platform (GCP)
-Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in Google Cloud Platform (GCP)** within a few lines of code.
+Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a PowerPoint Presentation in Google Cloud Platform (GCP)** within a few lines of code.
-N> If this is your first time working with Google Cloud Platform (GCP), please refer to the dedicated GCP resources. This section explains how to open and save Presentation in C# using the PowerPoint library (Presentation) in GCP.
+N> If this is your first time working with Google Cloud Platform (GCP), refer to the [Google Cloud documentation](https://docs.cloud.google.com/docs) for general setup help. This page lists the supported GCP hosting options for the PowerPoint library and links to the detailed steps for each.
-## Prerequisites
+## Prerequisites
-* A [Google Cloud Platform (GCP)](https://console.cloud.google.com/getting-started) account with access to the App Engine service.
+* A [Google Cloud Platform (GCP)](https://cloud.google.com/cloud-console?nodebwarning=true) account with billing enabled.
+* The [Google Cloud SDK (`gcloud` CLI)](https://docs.cloud.google.com/sdk/docs/install-sdk) installed and initialized (`gcloud init`).
+* The **App Engine Admin API** enabled for your project. For steps, see [Enabling APIs](https://docs.cloud.google.com/service-usage/docs/enable-disable).
+* Visual Studio with the **.NET 8 SDK** and the **ASP.NET and web development** workload installed.
## Google Cloud Platform (GCP)
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Cloud-Storage.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Cloud-Storage.md
index 9a97ba3dc4..c6e6a223a2 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Cloud-Storage.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Cloud-Storage.md
@@ -6,29 +6,35 @@ control: PowerPoint
documentation: UG
---
-# Open and Save Presentation in Google Cloud Storage
+# Open and Save a Presentation in Google Cloud Storage
## Prerequisites
-* **[Google cloud storage](https://cloud.google.com/storage/docs/creating-buckets)** is required.
+* **[Google Cloud Storage](https://docs.cloud.google.com/storage/docs/creating-buckets)** is required.
-* **[Service account](https://cloud.google.com/iam/docs/service-accounts-create)** is required.
+* A **[service account](https://cloud.google.com/iam/docs/service-accounts-create)** and its **[service account key](https://cloud.google.com/iam/docs/keys-create-delete#creating)** are required.
-* **[Service account key](https://cloud.google.com/iam/docs/keys-create-delete#creating)** is required.
+* The **Google Cloud Storage API** must be enabled in the Google Cloud Console. For steps, see [Enable Google Cloud services](https://cloud.google.com/service-usage/docs/enable-disable).
-## Open Presentation from Google Cloud Storage
+* The service account must be granted the **Storage Object Viewer** role (to download) and **Storage Object Creator** role (to upload) on the target bucket. For steps, see [Manage access to buckets](https://cloud.google.com/storage/docs/access-control/using-iam-permissions).
+
+* **.NET 8.0 or later**.
+
+* Place the downloaded service account key file (`credentials.json`) in the project root and set **Copy to Output Directory** to **Copy if newer** so the relative path resolves at runtime.
+
+## Open a Presentation from Google Cloud Storage
Steps to open a Presentation from Google Cloud Storage.
-Step 1: Create a new ASP.NET Core Web Application (Model-View-Controller).
+Step 1: Create an ASP.NET Core Web Application (Model-View-Controller).
-
+
Step 2: Name the project.

-Step 3: Install the following **Nuget packages** in your application from [NuGet.org](https://www.nuget.org/).
+Step 3: Install the following **NuGet packages** in your application from [NuGet.org](https://www.nuget.org/).
* [Syncfusion.Presentation.Net.Core](https://www.nuget.org/packages/Syncfusion.Presentation.Net.Core)
* [Google.Cloud.Storage.V1](https://www.nuget.org/packages/Google.Cloud.Storage.V1)
@@ -36,7 +42,7 @@ Step 3: Install the following **Nuget packages** in your application from [NuGet


-Step 4: Add a new button in the **Index.cshtml** as shown below.
+Step 4: Add a new button to **Index.cshtml** as shown below.
{% tabs %}
{% highlight CSHTML %}
@@ -55,111 +61,137 @@ Step 5: Include the following namespaces in **HomeController.cs**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
+using System.Threading.Tasks;
using Google.Apis.Auth.OAuth2;
using Google.Cloud.Storage.V1;
+using Microsoft.AspNetCore.Mvc;
using Syncfusion.Presentation;
{% endhighlight %}
{% endtabs %}
-Step 6: Include the below code snippet in **HomeController.cs** to **open a Presentation from Google Cloud Storage**.
+Step 6: Add the following code snippet to **HomeController.cs** to **open a Presentation from Google Cloud Storage**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
public async Task EditDocument()
{
- //Download the file from Google
- MemoryStream memoryStream = await GetDocumentFromGoogle();
-
- //Create an instance of PowerPoint Presentation file
- using (IPresentation pptxDocument = Presentation.Open(memoryStream))
+ try
{
- //Get the first slide from the PowerPoint presentation
- ISlide slide = pptxDocument.Slides[0];
-
- //Get the first shape of the slide
- IShape shape = slide.Shapes[0] as IShape;
-
- //Change the text of the shape
- if (shape.TextBody.Text == "Company History")
- shape.TextBody.Text = "Company Profile";
-
- //Saving the PowerPoint to a MemoryStream
- MemoryStream outputStream = new MemoryStream();
- pptxDocument.Save(outputStream);
-
- //Download the PowerPoint file in the browser
- FileStreamResult fileStreamResult = new FileStreamResult(outputStream, "application/powerpoint");
- fileStreamResult.FileDownloadName = "EditPowerPoint.pptx";
- return fileStreamResult;
+ //Download the file from Google Cloud Storage
+ MemoryStream memoryStream = await GetDocumentFromGoogle();
+
+ //Save the downloaded file to a temp path so the path-based overload can be used
+ string tempFilePath = Path.Combine(Path.GetTempPath(), "PowerPointTemplate.pptx");
+ using (FileStream fileStream = new FileStream(tempFilePath, FileMode.Create, FileAccess.Write))
+ {
+ memoryStream.CopyTo(fileStream);
+ }
+
+ //Create an instance of the PowerPoint Presentation file using a file path
+ using (IPresentation pptxDocument = Presentation.Open(tempFilePath))
+ {
+ //Get the first slide from the PowerPoint presentation
+ ISlide slide = pptxDocument.Slides[0];
+
+ //Get the first shape of the slide
+ IShape shape = slide.Shapes[0] as IShape;
+
+ //Change the text of the shape
+ if (shape.TextBody.Text == "Company History")
+ shape.TextBody.Text = "Company Profile";
+
+ //Save the PowerPoint file to a path
+ string outputPath = Path.Combine(Path.GetTempPath(), "EditPowerPoint.pptx");
+ pptxDocument.Save(outputPath);
+
+ //Read the saved file into a MemoryStream to return as a download
+ MemoryStream outputStream = new MemoryStream();
+ using (FileStream fileStream = new FileStream(outputPath, FileMode.Open, FileAccess.Read))
+ {
+ fileStream.CopyTo(outputStream);
+ }
+ outputStream.Position = 0;
+
+ //Download the PowerPoint file in the browser
+ FileStreamResult fileStreamResult = new FileStreamResult(outputStream, "application/powerpoint");
+ fileStreamResult.FileDownloadName = "EditPowerPoint.pptx";
+ return fileStreamResult;
+ }
+ }
+ catch (FileNotFoundException ex)
+ {
+ return NotFound($"The specified Presentation was not found in the bucket: {ex.Message}");
+ }
+ catch (Google.GoogleApiException ex) when (ex.HttpStatusCode == System.Net.HttpStatusCode.Forbidden)
+ {
+ return StatusCode(403, "Access to the Google Cloud Storage bucket was denied. Verify the service account has the Storage Object Viewer role.");
+ }
+ catch (Exception ex)
+ {
+ return StatusCode(500, $"An error occurred while opening the Presentation: {ex.Message}");
}
}
{% endhighlight %}
{% endtabs %}
-### Download file from Google cloud storage
+### Download a file from Google Cloud Storage
-This is the helper method to download Presentation from Google cloud storage.
+This is the helper method to download a Presentation from Google Cloud Storage.
{% tabs %}
{% highlight c# tabtitle="C#" %}
///
-/// Download file from Google
+/// Download a file from Google Cloud Storage.
///
-///
+/// A MemoryStream containing the file contents. The caller is responsible for disposing the returned stream.
public async Task GetDocumentFromGoogle()
{
- try
- {
- //Your bucket name
- string bucketName = "Your_bucket_name";
+ //Your bucket name
+ string bucketName = "Your_bucket_name";
- //Your service account key file path
- string keyPath = "credentials.json";
+ //Your service account key file path (relative to the project output directory)
+ string keyPath = "credentials.json";
- //Name of the file to download from the Google Cloud Storage
- string fileName = "PowerPointTemplate.pptx";
+ //Name of the file to download from the Google Cloud Storage bucket
+ string fileName = "PowerPointTemplate.pptx";
- //Create Google Credential from the service account key file
- GoogleCredential credential = GoogleCredential.FromFile(keyPath);
+ //Create Google Credential from the service account key file with the required scopes
+ GoogleCredential credential = GoogleCredential.FromFile(keyPath)
+ .CreateScoped(StorageClient.DefaultScopes);
- //Instantiates a storage client to interact with Google Cloud Storage
- StorageClient storageClient = StorageClient.Create(credential);
+ //Instantiate a storage client to interact with Google Cloud Storage
+ StorageClient storageClient = await StorageClient.CreateAsync(credential);
- //Download a file from Google Cloud Storage
- MemoryStream memoryStream = new MemoryStream();
- await storageClient.DownloadObjectAsync(bucketName, fileName, memoryStream);
- memoryStream.Position = 0;
+ //Download a file from Google Cloud Storage
+ MemoryStream memoryStream = new MemoryStream();
+ await storageClient.DownloadObjectAsync(bucketName, fileName, memoryStream);
+ memoryStream.Position = 0;
- return memoryStream;
- }
- catch (Exception ex)
- {
- Console.WriteLine($"Error retrieving document from Google Cloud Storage: {ex.Message}");
- throw; // or handle the exception as needed
- }
+ return memoryStream;
}
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/Google-Cloud-Storage/Open-PowerPoint-document).
-By executing the program, you will get the **Presentation** as follows.
+By executing the program, you will get the PowerPoint presentation as follows.

-## Save Presentation to Google Cloud Storage
+## Save a Presentation to Google Cloud Storage
Steps to save a Presentation to Google Cloud Storage.
-Step 1: Create a new ASP.NET Core Web Application (Model-View-Controller).
+Step 1: Create an ASP.NET Core Web Application (Model-View-Controller).
-
+
Step 2: Name the project.

-Step 3: Install the following **Nuget packages** in your application from [NuGet.org](https://www.nuget.org/).
+Step 3: Install the following **NuGet packages** in your application from [NuGet.org](https://www.nuget.org/).
* [Syncfusion.Presentation.Net.Core](https://www.nuget.org/packages/Syncfusion.Presentation.Net.Core)
* [Google.Cloud.Storage.V1](https://www.nuget.org/packages/Google.Cloud.Storage.V1)
@@ -167,7 +199,7 @@ Step 3: Install the following **Nuget packages** in your application from [NuGet


-Step 4: Add a new button in the **Index.cshtml** as shown below.
+Step 4: Add a new button to **Index.cshtml** as shown below.
{% tabs %}
{% highlight CSHTML %}
@@ -186,126 +218,152 @@ Step 5: Include the following namespaces in **HomeController.cs**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
+using System.Threading.Tasks;
using Google.Apis.Auth.OAuth2;
using Google.Cloud.Storage.V1;
+using Microsoft.AspNetCore.Mvc;
+using Syncfusion.Drawing;
using Syncfusion.Presentation;
{% endhighlight %}
{% endtabs %}
-Step 6: Include the below code snippet in **HomeController.cs** to **save a Presentation to Google Cloud Storage**.
+Step 6: Add the following code snippet to **HomeController.cs** to **save a Presentation to Google Cloud Storage**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
public async Task UploadDocument()
{
- //Create a new instance of PowerPoint Presentation file
- IPresentation pptxDocument = Presentation.Create();
-
- //Add a new slide to file and apply background color
- ISlide slide = pptxDocument.Slides.Add(SlideLayoutType.TitleOnly);
-
- //Specify the fill type and fill color for the slide background
- slide.Background.Fill.FillType = FillType.Solid;
- slide.Background.Fill.SolidFill.Color = ColorObject.FromArgb(232, 241, 229);
-
- //Add title content to the slide by accessing the title placeholder of the TitleOnly layout-slide
- IShape titleShape = slide.Shapes[0] as IShape;
- titleShape.TextBody.AddParagraph("Company History").HorizontalAlignment = HorizontalAlignmentType.Center;
-
- //Add description content to the slide by adding a new TextBox
- IShape descriptionShape = slide.AddTextBox(53.22, 141.73, 874.19, 77.70);
- descriptionShape.TextBody.Text = "IMN Solutions PVT LTD is the software company, established in 1987, by George Milton. The company has been listed as the trusted partner for many high-profile organizations since 1988 and got awards for quality products from reputed organizations.";
-
- //Add bullet points to the slide
- IShape bulletPointsShape = slide.AddTextBox(53.22, 270, 437.90, 116.32);
-
- //Add a paragraph for a bullet point
- IParagraph firstPara = bulletPointsShape.TextBody.AddParagraph("The company acquired the MCY corporation for 20 billion dollars and became the top revenue maker for the year 2015.");
-
- //Format how the bullets should be displayed
- firstPara.ListFormat.Type = ListType.Bulleted;
- firstPara.LeftIndent = 35;
- firstPara.FirstLineIndent = -35;
-
- //Add another paragraph for the next bullet point
- IParagraph secondPara = bulletPointsShape.TextBody.AddParagraph("The company is participating in top open source projects in automation industry.");
-
- //Format how the bullets should be displayed
- secondPara.ListFormat.Type = ListType.Bulleted;
- secondPara.LeftIndent = 35;
- secondPara.FirstLineIndent = -35;
-
- //Gets a picture as stream
- FileStream pictureStream = new FileStream("Image.jpg", FileMode.Open);
-
- //Adds the picture to a slide by specifying its size and position.
- slide.Shapes.AddPicture(pictureStream, 499.79, 238.59, 364.54, 192.16);
-
- //Add an auto-shape to the slide
- IShape stampShape = slide.Shapes.AddShape(AutoShapeType.Explosion1, 48.93, 430.71, 104.13, 80.54);
-
- //Format the auto-shape color by setting the fill type and text
- stampShape.Fill.FillType = FillType.None;
- stampShape.TextBody.AddParagraph("IMN").HorizontalAlignment = HorizontalAlignmentType.Center;
-
- //Saves the PowerPoint to MemoryStream
- MemoryStream stream = new MemoryStream();
- pptxDocument.Save(stream);
-
- //Upload the file to Google
- await UploadDocumentToGoogle(stream);
-
- return Ok("PowerPoint uploaded to Google Cloud Storage.");
+ try
+ {
+ //Create a new instance of a PowerPoint Presentation file
+ using (IPresentation pptxDocument = Presentation.Create())
+ {
+ //Add a new slide to the file and apply a background color
+ ISlide slide = pptxDocument.Slides.Add(SlideLayoutType.TitleOnly);
+
+ //Specify the fill type and fill color for the slide background
+ slide.Background.Fill.FillType = FillType.Solid;
+ slide.Background.Fill.SolidFill.Color = ColorObject.FromArgb(232, 241, 229);
+
+ //Add title content to the slide by accessing the title placeholder of the TitleOnly layout slide
+ IShape titleShape = slide.Shapes[0] as IShape;
+ titleShape.TextBody.AddParagraph("Company History").HorizontalAlignment = HorizontalAlignmentType.Center;
+
+ //Add description content to the slide by adding a new TextBox
+ IShape descriptionShape = slide.AddTextBox(53.22, 141.73, 874.19, 77.70);
+ descriptionShape.TextBody.Text = "IMN Solutions PVT LTD is the software company, established in 1987, by George Milton. The company has been listed as the trusted partner for many high-profile organizations since 1988 and got awards for quality products from reputed organizations.";
+
+ //Add bullet points to the slide
+ IShape bulletPointsShape = slide.AddTextBox(53.22, 270, 437.90, 116.32);
+
+ //Add a paragraph for a bullet point
+ IParagraph firstPara = bulletPointsShape.TextBody.AddParagraph("The company acquired the MCY corporation for 20 billion dollars and became the top revenue maker for the year 2015.");
+
+ //Format how the bullets should be displayed
+ firstPara.ListFormat.Type = ListType.Bulleted;
+ firstPara.LeftIndent = 35;
+ firstPara.FirstLineIndent = -35;
+
+ //Add another paragraph for the next bullet point
+ IParagraph secondPara = bulletPointsShape.TextBody.AddParagraph("The company is participating in top open source projects in automation industry.");
+
+ //Format how the bullets should be displayed
+ secondPara.ListFormat.Type = ListType.Bulleted;
+ secondPara.LeftIndent = 35;
+ secondPara.FirstLineIndent = -35;
+
+ //Get a picture as a stream
+ using (FileStream pictureStream = new FileStream("Image.jpg", FileMode.Open, FileAccess.Read))
+ {
+ //Add the picture to a slide by specifying its size and position
+ slide.Shapes.AddPicture(pictureStream, 499.79, 238.59, 364.54, 192.16);
+ }
+
+ //Add an auto-shape to the slide
+ IShape stampShape = slide.Shapes.AddShape(AutoShapeType.Explosion1, 48.93, 430.71, 104.13, 80.54);
+
+ //Format the auto-shape color by setting the fill type and text
+ stampShape.Fill.FillType = FillType.None;
+ stampShape.TextBody.AddParagraph("IMN").HorizontalAlignment = HorizontalAlignmentType.Center;
+
+ //Save the PowerPoint to a MemoryStream
+ using (MemoryStream stream = new MemoryStream())
+ {
+ pptxDocument.Save(stream);
+ stream.Position = 0;
+
+ //Upload the file to Google Cloud Storage
+ await UploadDocumentToGoogle(stream);
+ }
+ }
+
+ return Ok("PowerPoint uploaded to Google Cloud Storage.");
+ }
+ catch (FileNotFoundException ex)
+ {
+ return NotFound($"The image file was not found: {ex.Message}");
+ }
+ catch (Google.GoogleApiException ex) when (ex.HttpStatusCode == System.Net.HttpStatusCode.Forbidden)
+ {
+ return StatusCode(403, "Access to the Google Cloud Storage bucket was denied. Verify the service account has the Storage Object Creator role.");
+ }
+ catch (Exception ex)
+ {
+ return StatusCode(500, $"An error occurred while uploading the Presentation: {ex.Message}");
+ }
}
{% endhighlight %}
{% endtabs %}
-### Upload file to Google cloud storage
+### Upload a file to Google Cloud Storage
-This is the helper method to upload Presentation to Google cloud storage.
+This is the helper method to upload a Presentation to Google Cloud Storage.
{% tabs %}
{% highlight c# tabtitle="C#" %}
///
-/// Upload file to Google
+/// Upload a file to Google Cloud Storage.
///
-///
-///
-public async Task UploadDocumentToGoogle(MemoryStream stream)
+/// The MemoryStream that contains the file to upload. The stream is left at position 0 and is not disposed by this method.
+/// A task that represents the asynchronous upload operation.
+public async Task UploadDocumentToGoogle(MemoryStream stream)
{
- try
- {
- //Your bucket name
- string bucketName = "Your_bucket_name";
+ //Your bucket name
+ string bucketName = "Your_bucket_name";
- //Your service account key file path
- string keyPath = "credentials.json";
+ //Your service account key file path (relative to the project output directory)
+ string keyPath = "credentials.json";
- //Name of the file to upload to Google Cloud Storage
- string fileName = "CreatePowerPoint.pptx";
+ //Name of the file to save in Google Cloud Storage
+ string fileName = "CreatePowerPoint.pptx";
- //Create Google Credential from the service account key file
- GoogleCredential credential = GoogleCredential.FromFile(keyPath);
+ //Content type for a .pptx file
+ string contentType = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
- //Instantiates a storage client to interact with Google Cloud Storage
- StorageClient storageClient = StorageClient.Create(credential);
+ //Create Google Credential from the service account key file with the required scopes
+ GoogleCredential credential = GoogleCredential.FromFile(keyPath)
+ .CreateScoped(StorageClient.DefaultScopes);
- //Uploads a file to Google Cloud Storage
- storageClient.UploadObject(bucketName, fileName, null, stream);
+ //Instantiate a storage client to interact with Google Cloud Storage
+ StorageClient storageClient = await StorageClient.CreateAsync(credential);
- Console.WriteLine("Upload completed successfully");
- }
- catch (Exception e)
- {
- Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
- }
- return stream;
+ //Ensure the stream is at the beginning before uploading
+ stream.Position = 0;
+
+ //Upload the file to Google Cloud Storage
+ await storageClient.UploadObjectAsync(bucketName, fileName, contentType, stream);
}
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/Google-Cloud-Storage/Save-PowerPoint-document).
-By executing the program, you will get the **Presentation** as follows.
+By executing the program, the Presentation is saved to the configured Google Cloud Storage bucket and the API returns the message **"PowerPoint uploaded to Google Cloud Storage."**

+
+## See also
+
+* [Open and Save a Presentation in AWS S3 Cloud Storage](Open-and-Save-PowerPoint-Presentation-in-AWS-S3-Cloud-Storage.md)
+* [Open and Save a Presentation in Azure Blob Cloud Storage](Open-and-Save-PowerPoint-Presentation-in-Azure-Blob-Cloud-Storage.md)
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Drive-Storage.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Drive-Storage.md
index b32c8541ee..9d7235a3b4 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Drive-Storage.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Google-Drive-Storage.md
@@ -10,11 +10,16 @@ documentation: UG
## Prerequisites
-* **[Google Drive Cloud Storage](https://www.google.com/intl/en_in/drive/)** is required.
+* **[Google Drive Cloud Storage](https://workspace.google.com/intl/en_in/products/drive/)** is required.
+* **.NET 8.0** or later.
+* **Visual Studio 2022** or later with the .NET desktop development workload installed.
+* A Google Cloud project with the **Google Drive API** enabled. For more information, see the official [Enable the Google Drive API](https://developers.google.com/workspace/drive/api/guides/enable-sdk) guide.
+* An OAuth 2.0 client secret file (`credentials.json`) downloaded from the Google Cloud Console. The file must be placed in the application's working directory (typically `bin\Debug\net8.0` after building).
+* The file you intend to open must be shared with the Google account that signs in during the OAuth flow, or the user must have access to it through the configured scope.
## Open Presentation from Google Drive
-Steps to open a Presentation from Google Drive Cloud Storage.
+Follow these steps to open a Presentation from Google Drive Cloud Storage:
Step 1: Set up **Google Drive API**.
@@ -36,10 +41,14 @@ Step 4: Include the following namespaces in the **Program.cs** file.
{% highlight c# tabtitle="C# [Cross-platform]" %}
+using System;
+using System.IO;
+using System.Threading;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Drive.v3;
using Google.Apis.Services;
using Google.Apis.Util.Store;
+using Syncfusion.Presentation;
{% endhighlight %}
@@ -55,19 +64,20 @@ Step 5: Add the below code example to **open a Presentation from Google Drive**.
UserCredential credential;
string[] Scopes = { DriveService.Scope.DriveReadonly };
string ApplicationName = "YourAppName";
-// Step 1: Open Google Drive with credentials.
-using (var cretendialStream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
+
+// Step 1: Authenticate with Google Drive using the credentials.json file.
+using (var credentialStream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
string credPath = "token.json";
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
- GoogleClientSecrets.Load(cretendialStream).Secrets,
+ GoogleClientSecrets.Load(credentialStream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
}
-// Step 2: Create Drive API service.
+// Step 2: Create the Drive API service.
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
@@ -75,21 +85,30 @@ var service = new DriveService(new BaseClientService.Initializer()
});
// Step 3: Specify the file ID of the PowerPoint presentation you want to open.
-string fileId = "YOUR_FILE_ID"; // Replace with the actual file ID YOUR_FILE_ID.
+string fileId = "YOUR_FILE_ID"; // Replace with the actual file ID of the .pptx in Google Drive.
-// Step 4: Download the PowerPoint presentation from Google Drive.
-var request = service.Files.Get(fileId);
+// Step 4: Download the PowerPoint presentation from Google Drive into a memory stream.
var stream = new MemoryStream();
-request.Download(stream);
+service.Files.Get(fileId).Download(stream);
+stream.Position = 0; // Reset the stream position before writing/reading the bytes.
// Step 5: Save the PowerPoint presentation locally.
using (FileStream fileStream = new FileStream("Output.pptx", FileMode.Create, FileAccess.Write))
{
stream.WriteTo(fileStream);
}
-//Dispose the dtream.
+
+// Step 6: Open the downloaded PowerPoint file using the Syncfusion PowerPoint library.
+using (IPresentation pptxDocument = Presentation.Open("Output.pptx"))
+{
+ // Access slides and shapes here. The following example retrieves the first slide.
+ ISlide slide = pptxDocument.Slides[0];
+ Console.WriteLine("Slide count: " + pptxDocument.Slides.Count);
+}
+
+// Step 7: Dispose the memory stream.
stream.Dispose();
-
+
{% endhighlight %}
{% endtabs %}
@@ -98,7 +117,7 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Save Presentation to Google Drive
-To save a Presentation to Google Drive, you can follow the steps below
+The prerequisites (Google Drive API, console application, and NuGet packages) are the same as described in the [Prerequisites](#prerequisites) and [Open Presentation from Google Drive](#open-presentation-from-google-drive) sections above.
Step 1: Set up **Google Drive API**.
@@ -123,7 +142,11 @@ Step 4: Include the following namespaces in the **Program.cs** file.
{% highlight c# tabtitle="C# [Cross-platform]" %}
+using System;
+using System.IO;
+using System.Threading;
using Syncfusion.Presentation;
+using Syncfusion.Drawing;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Drive.v3;
using Google.Apis.Services;
@@ -142,102 +165,105 @@ Step 5: Add the below code example to create a simple Presentation and **save in
{% highlight c# tabtitle="C# [Cross-platform]" %}
//Create a new instance of PowerPoint Presentation file.
-IPresentation pptxDocument = Presentation.Create();
-
-//Add a new slide to file and apply background color.
-ISlide slide = pptxDocument.Slides.Add(SlideLayoutType.TitleOnly);
-
-//Specify the fill type and fill color for the slide background .
-slide.Background.Fill.FillType = FillType.Solid;
-slide.Background.Fill.SolidFill.Color = ColorObject.FromArgb(232, 241, 229);
-
-//Add title content to the slide by accessing the title placeholder of the TitleOnly layout-slide.
-IShape titleShape = slide.Shapes[0] as IShape;
-titleShape.TextBody.AddParagraph("Company History").HorizontalAlignment = HorizontalAlignmentType.Center;
-
-//Add description content to the slide by adding a new TextBox.
-IShape descriptionShape = slide.AddTextBox(53.22, 141.73, 874.19, 77.70);
-descriptionShape.TextBody.Text = "IMN Solutions PVT LTD is the software company, established in 1987, by George Milton. The company has been listed as the trusted partner for many high-profile organizations since 1988 and got awards for quality products from reputed organizations.";
-
-//Add bullet points to the slide.
-IShape bulletPointsShape = slide.AddTextBox(53.22, 270, 437.90, 116.32);
-
-//Add a paragraph for a bullet point.
-IParagraph firstPara = bulletPointsShape.TextBody.AddParagraph("The company acquired the MCY corporation for 20 billion dollars and became the top revenue maker for the year 2015.");
-
-//Format how the bullets should be displayed.
-firstPara.ListFormat.Type = ListType.Bulleted;
-firstPara.LeftIndent = 35;
-firstPara.FirstLineIndent = -35;
-
-//Add another paragraph for the next bullet point.
-IParagraph secondPara = bulletPointsShape.TextBody.AddParagraph("The company is participating in top open source projects in automation industry.");
-
-//Format how the bullets should be displayed.
-secondPara.ListFormat.Type = ListType.Bulleted;
-secondPara.LeftIndent = 35;
-secondPara.FirstLineIndent = -35;
-
-//Gets a picture as stream.
-FileStream pictureStream = new FileStream(Path.GetFullPath("Data/Image.jpg"), FileMode.Open);
-
-//Adds the picture to a slide by specifying its size and position.
-slide.Shapes.AddPicture(pictureStream, 499.79, 238.59, 364.54, 192.16);
-
-//Add an auto-shape to the slide.
-IShape stampShape = slide.Shapes.AddShape(AutoShapeType.Explosion1, 48.93, 430.71, 104.13, 80.54);
-
-//Format the auto-shape color by setting the fill type and text.
-stampShape.Fill.FillType = FillType.None;
-stampShape.TextBody.AddParagraph("IMN").HorizontalAlignment = HorizontalAlignmentType.Center;
-
-//Saves the PowerPoint to MemoryStream.
-MemoryStream stream = new MemoryStream();
-pptxDocument.Save(stream);
-
-// Load Google Drive API credentials from a file.
-UserCredential credential;
-string[] Scopes = { DriveService.Scope.Drive };
-string ApplicationName = "YourAppName";
-
-using (var stream1 = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))//Replace with your actual credentials.json
+using (IPresentation pptxDocument = Presentation.Create())
{
- string credPath = "token.json";
- // Authorize the Google Drive API access
- credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
- GoogleClientSecrets.Load(stream1).Secrets,
- Scopes,
- "user",
- CancellationToken.None,
- new FileDataStore(credPath, true)).Result;
-}
-// Create a new instance of Google Drive service.
-var service = new DriveService(new BaseClientService.Initializer()
-{
- HttpClientInitializer = credential,
- ApplicationName = ApplicationName,
-});
-
-// Create metadata for the file to be uploaded.
-var fileMetadata = new File()
-{
- Name = "Output.pptx", // Name of the file in Google Drive
- MimeType = "application/powerpoint",
-};
-FilesResource.CreateMediaUpload request;
-
-// Create a memory stream from the PowerPoint presentation.
-using (var fs = new MemoryStream(stream.ToArray()))
-{
- // Create an upload request for Google Drive.
- request = service.Files.Create(fileMetadata, fs, "application/powerpoint");
- // Upload the file.
- request.Upload();
+ //Add a new slide to file and apply background color.
+ ISlide slide = pptxDocument.Slides.Add(SlideLayoutType.TitleOnly);
+
+ //Specify the fill type and fill color for the slide background.
+ slide.Background.Fill.FillType = FillType.Solid;
+ slide.Background.Fill.SolidFill.Color = ColorObject.FromArgb(232, 241, 229);
+
+ //Add title content to the slide by accessing the title placeholder of the TitleOnly layout-slide.
+ IShape titleShape = slide.Shapes[0] as IShape;
+ titleShape.TextBody.AddParagraph("Company History").HorizontalAlignment = HorizontalAlignmentType.Center;
+
+ //Add description content to the slide by adding a new TextBox.
+ IShape descriptionShape = slide.AddTextBox(53.22, 141.73, 874.19, 77.70);
+ descriptionShape.TextBody.Text = "IMN Solutions PVT LTD is the software company, established in 1987, by George Milton. The company has been listed as the trusted partner for many high-profile organizations since 1988 and got awards for quality products from reputed organizations.";
+
+ //Add bullet points to the slide.
+ IShape bulletPointsShape = slide.AddTextBox(53.22, 270, 437.90, 116.32);
+
+ //Add a paragraph for a bullet point.
+ IParagraph firstPara = bulletPointsShape.TextBody.AddParagraph("The company acquired the MCY corporation for 20 billion dollars and became the top revenue maker for the year 2015.");
+
+ //Format how the bullets should be displayed.
+ firstPara.ListFormat.Type = ListType.Bulleted;
+ firstPara.LeftIndent = 35;
+ firstPara.FirstLineIndent = -35;
+
+ //Add another paragraph for the next bullet point.
+ IParagraph secondPara = bulletPointsShape.TextBody.AddParagraph("The company is participating in top open source projects in automation industry.");
+
+ //Format how the bullets should be displayed.
+ secondPara.ListFormat.Type = ListType.Bulleted;
+ secondPara.LeftIndent = 35;
+ secondPara.FirstLineIndent = -35;
+
+ //Get a picture as a stream.
+ FileStream pictureStream = new FileStream(Path.GetFullPath("Data/Image.jpg"), FileMode.Open);
+
+ //Add the picture to a slide by specifying its size and position.
+ slide.Shapes.AddPicture(pictureStream, 499.79, 238.59, 364.54, 192.16);
+
+
+ //Add an auto-shape to the slide.
+ IShape stampShape = slide.Shapes.AddShape(AutoShapeType.Explosion1, 48.93, 430.71, 104.13, 80.54);
+
+ //Format the auto-shape color by setting the fill type and text.
+ stampShape.Fill.FillType = FillType.None;
+ stampShape.TextBody.AddParagraph("IMN").HorizontalAlignment = HorizontalAlignmentType.Center;
+
+ //Save the PowerPoint to a memory stream.
+ using (MemoryStream stream = new MemoryStream())
+ {
+ pptxDocument.Save(stream);
+ stream.Position = 0; // Reset the stream position before uploading.
+
+ // Authenticate with Google Drive using the credentials.json file.
+ UserCredential credential;
+ string[] Scopes = { DriveService.Scope.Drive };
+ string ApplicationName = "YourAppName";
+
+ using (var credentialStream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
+ {
+ string credPath = "token.json";
+ credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
+ GoogleClientSecrets.Load(credentialStream).Secrets,
+ Scopes,
+ "user",
+ CancellationToken.None,
+ new FileDataStore(credPath, true)).Result;
+ }
+
+ // Create a new instance of Google Drive service.
+ var service = new DriveService(new BaseClientService.Initializer()
+ {
+ HttpClientInitializer = credential,
+ ApplicationName = ApplicationName,
+ });
+
+ // Create metadata for the file to be uploaded.
+ var fileMetadata = new File()
+ {
+ Name = "Output.pptx", // Name of the file in Google Drive
+ MimeType = "application/powerpoint",
+ // Optional: set the destination folder by providing a parent ID.
+ // Parents = new List { "FOLDER_ID" }
+ };
+
+ // Create an upload request for Google Drive and upload the file.
+ var request = service.Files.Create(fileMetadata, stream, "application/powerpoint");
+ var uploadResult = request.Upload();
+
+ if (uploadResult.Status == Google.Apis.Upload.UploadStatus.Failed)
+ {
+ Console.WriteLine("Upload failed: " + uploadResult.Exception?.Message);
+ }
+ }
}
-//Dispose the stream.
-stream.Dispose();
-pptxDocument.Close();
{% endhighlight %}
@@ -247,4 +273,4 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
By executing the program, you will get the **PowerPoint presentation** as follows.
-
\ No newline at end of file
+
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-MAC.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-MAC.md
index c7bdf3953d..ce333cf64e 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-MAC.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-MAC.md
@@ -1,21 +1,21 @@
---
title: Open and save Presentation on macOS | Syncfusion
-description: Open and save Presentation in .NET Core application on macOS using .NET Core PowerPoint library (Presentation) without Microsoft PowerPoint or interop dependencies.
+description: Open and save Presentation in .NET Core application on macOS using .NET Core PowerPoint library without Microsoft PowerPoint or interop dependencies.
platform: document-processing
control: PowerPoint
documentation: UG
---
-# Open and save Presentation on macOS
+# Open and save a PowerPoint presentation on macOS
-Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in .NET Core application on macOS**.
+Syncfusion® PowerPoint is a [.NET Core PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit, and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a PowerPoint presentation in a .NET Core application on macOS**.
-## Steps to open and save PowerPoint Presentation programmatically
+## Steps to open and save a PowerPoint presentation programmatically
-Step 1: Create a new C# .NET Core console application.
+Step 1: Create a new C# **.NET Core console application** in your IDE.

-Step 2: Select the project version.
+Step 2: Select the target .NET framework

Step 3: Install the [Syncfusion.Presentation.Net.Core](https://www.nuget.org/packages/Syncfusion.Presentation.Net.Core/) NuGet package as reference to your .NET Standard applications from [NuGet.org](https://www.nuget.org/).
@@ -23,9 +23,9 @@ Step 3: Install the [Syncfusion.Presentation.Net.Core](https://www.nuget.org/pac


-N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
+N> If you reference Syncfusion® assemblies from the trial setup or from the NuGet feed, you must add the `Syncfusion.Licensing` assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to learn about registering a Syncfusion® license key in your application.
-Step 4: Include the following Namespaces in the **Program.cs** file.
+Step 4: Include the following namespaces in the **Program.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -35,18 +35,18 @@ using Syncfusion.Presentation;
{% endhighlight %}
{% endtabs %}
-Step 5: Add the following code snippet in **Program.cs** file to **open an existing Presentation in .NET Core application on macOS**.
+Step 5: Add the following code snippet in the **Program.cs** file to **open an existing PowerPoint presentation in a .NET Core application on macOS**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
//Open an existing PowerPoint presentation
-IPresentation pptxDoc = Presentation.Open(new FileStream("Sample.pptx",FileMode.Open));
+IPresentation pptxDoc = Presentation.Open("Sample.pptx")
{% endhighlight %}
{% endtabs %}
-Step 6: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
+Step 6: The following code snippet demonstrates accessing a shape from a slide and changing the text within it. The sample assumes the first shape on the first slide is a text shape that contains the text "Company History".
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -54,25 +54,23 @@ Step 6: Add below code snippet demonstrates accessing a shape from a slide and c
//Gets the first slide from the PowerPoint presentation
ISlide slide = pptxDoc.Slides[0];
//Gets the first shape of the slide
-IShape shape = slide.Shapes[0] as IShape;
+IShape shape = slide.Shapes[0];
//Change the text of the shape
-if(shape.TextBody.Text == "Company History")
+if (shape.TextBody != null && shape.TextBody.Text == "Company History")
+{
shape.TextBody.Text = "Company Profile";
+}
{% endhighlight %}
{% endtabs %}
-Step 7: Add below code example to **save the PowerPoint Presentation in .NET Core application on macOS**.
+Step 7: The following code example saves the PowerPoint presentation in a .NET Core application on macOS.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Save the PowerPoint presentation as stream
-FileStream outputStream = new FileStream("Output.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-outputStream.Position = 0;
-outputStream.Flush();
-outputStream.Dispose();
+//Save the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
//Close the PowerPoint presentation
pptxDoc.Close();
@@ -81,8 +79,20 @@ pptxDoc.Close();
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/Mac).
+Step 9: Build and run the application from the project directory using the following command:
+
+```
+dotnet run
+```
+
By executing the program, you will get the **PowerPoint document** as follows.

-Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
\ No newline at end of file
+Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
+
+## See Also
+
+- [Open and save a PowerPoint presentation in a .NET Core console application](Open-and-Save-PowerPoint-in-Console-application)
+- [Open and save a PowerPoint presentation in Windows Forms](Open-and-Save-PowerPoint-Presentation-in-Windows-Forms)
+- [Open and save a PowerPoint presentation in ASP.NET Core](Open-and-Save-PowerPoint-Presentation-in-ASP-NET-Core)
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-MAUI.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-MAUI.md
index 7f5f7e5319..c95b1cc183 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-MAUI.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-MAUI.md
@@ -8,14 +8,20 @@ documentation: UG
# Open and save Presentation in .NET MAUI
-Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www.syncfusion.com/powerpoint-framework/maui/powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in .NET MAUI**.
+Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www.syncfusion.com/powerpoint-framework/maui/powerpoint-library) used to create, read, edit, and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a PowerPoint presentation in .NET MAUI**.
## Prerequisites
-To create .NET Multi-platform App UI (.NET MAUI) apps, you need the latest versions of Visual Studio 2022 and .NET 6. For more details, refer [here](https://docs.microsoft.com/en-us/dotnet/maui/get-started/installation).
+To create .NET Multi-platform App UI (.NET MAUI) apps, the following are required:
-## Steps to open and save PowerPoint Presentation programmatically
+- **Visual Studio 2022** or later.
+- **.NET 8** (or later) with the **.NET Multi-platform App UI development** workload installed. Verify the workload is installed by running `dotnet workload list`, or modify the Visual Studio installation and select the workload.
+- The **.NET MAUI App** template (no longer labeled "Preview") must be available in Visual Studio.
-Step 1: Create a new C# .NET MAUI app. Select **.NET MAUI App (Preview)** from the template and click the **Next** button.
+For more details, refer [here](https://learn.microsoft.com/en-us/dotnet/maui/get-started/installation?view=net-maui-10.0&tabs=visual-studio).
+
+## Steps to open and save PowerPoint presentation programmatically
+
+Step 1: Create a new C# .NET MAUI app. Select **.NET MAUI App** from the template list and click the **Next** button.

@@ -27,7 +33,7 @@ Step 3: Install the [Syncfusion.Presentation.NET](https://www.nuget.org/packages

-N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
+N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from the trial setup or from the NuGet feed, you must also add a reference to the `Syncfusion.Licensing` assembly and include a license key in your project. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering a Syncfusion® license key in your application to use our components. Register the license key once at application startup, for example in `App.xaml.cs` or `MauiProgram.cs`:
Step 4: Add a new button to the **MainPage.xaml** as shown below.
@@ -55,29 +61,47 @@ Step 4: Add a new button to the **MainPage.xaml** as shown below.
{% endhighlight %}
{% endtabs %}
-Step 5: Include the following namespaces in the **MainPage.xaml.cs** file.
+Step 5: Add the corresponding event handler stub to **MainPage.xaml.cs**. The `Clicked` attribute in the XAML references this method.
+
+{% tabs %}
+{% highlight c# tabtitle="C#" %}
+
+// Empty handler wired up by the XAML Clicked attribute.
+private void OpenAndSavePresentation(object sender, EventArgs e)
+{
+}
+
+{% endhighlight %}
+{% endtabs %}
+
+Step 6: Include the following namespaces in the **MainPage.xaml.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
+using System.Reflection;
using Syncfusion.Presentation;
{% endhighlight %}
{% endtabs %}
-Step 6: Add a new action method **OpenAndSavePresentation** in MainPage.xaml.cs and include the below code snippet to **open an existing PowerPoint Presentation in .NET MAUI**.
+Step 8: Add the following code snippet inside the **OpenAndSavePresentation** method in `MainPage.xaml.cs` to **open an existing PowerPoint presentation in .NET MAUI**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-Assembly assembly = typeof(MainPage).GetTypeInfo().Assembly;
-//Opens an existing PowerPoint presentation.
-using IPresentation pptxDoc = Presentation.Open(assembly.GetManifestResourceStream("ReadAndEditPowerPoint.Resources.Presentation.Sample.pptx"));
+//Resolves the assembly that contains the embedded Sample.pptx resource.
+Assembly assembly = typeof(MainPage).Assembly;
+//Opens an existing PowerPoint presentation from an embedded resource.
+using IPresentation pptxDoc = Presentation.Open(assembly.GetManifestResourceStream("ReadAndEditPowerPoint.Resources.Sample.pptx"));
{% endhighlight %}
{% endtabs %}
-Step 7: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
+N> The manifest resource name must match the project's default namespace followed by the folder and file name (for example, `ReadAndEditPowerPoint.Resources.Sample.pptx`). To verify the exact name, call `assembly.GetManifestResourceNames()`.
+
+Step 9: Add the following code snippet to access a shape on the first slide and change the text within it.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -85,25 +109,28 @@ Step 7: Add below code snippet demonstrates accessing a shape from a slide and c
//Gets the first slide from the PowerPoint presentation.
ISlide slide = pptxDoc.Slides[0];
//Gets the first shape of the slide.
-Syncfusion.Presentation.IShape shape = slide.Shapes[0] as Syncfusion.Presentation.IShape;
-//Modifies the text of the shape.
-if (shape.TextBody.Text == "Company History")
+IShape shape = slide.Shapes[0] as IShape;
+//Modifies the text of the shape when a text body exists.
+if (shape != null && shape.TextBody != null && shape.TextBody.Text == "Company History")
+{
shape.TextBody.Text = "Company Profile";
+}
{% endhighlight %}
{% endtabs %}
-Step 8: Add below code example to **save the PowerPoint Presentation in .NET MAUI**.
+Step 10: Add the following code example to **save the PowerPoint presentation in .NET MAUI**. The presentation is written to a memory stream, then handed to the `SaveService` helper which saves the file to the device and opens it with the platform's default viewer.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Saves the presentation to the memory stream.
-using MemoryStream stream = new();
+//Saves the presentation to a memory stream.
+MemoryStream stream = new MemoryStream();
pptxDoc.Save(stream);
+pptxDoc.Close();
stream.Position = 0;
-//Saves the memory stream as file.
-SaveService saveService = new();
+//Saves the memory stream as a file and opens it with the platform default viewer.
+SaveService saveService = new SaveService();
saveService.SaveAndView("Output.pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation", stream);
{% endhighlight %}
@@ -111,13 +138,13 @@ saveService.SaveAndView("Output.pptx", "application/vnd.openxmlformats-officedoc
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/.NET-MAUI).
-By executing the program, you will get the **PowerPoint document** as follows.
+By executing the program, the resulting **PowerPoint presentation** is saved to the device and opened with the platform's default viewer, as shown below.
-
+
## Helper files for .NET MAUI
-Refer the below helper files and add them into the mentioned project. These helper files allow you to save the stream as a physical file and open the file for viewing.
+Refer to the following helper files and add them to the mentioned project. These helper files allow you to save the stream as a physical file and open the file for viewing on the corresponding platform.
@@ -138,7 +165,7 @@ Refer the below helper files and add them into the mentioned project. These help
- Save implementation for iOS device
+ Save implementation for iOS.
@@ -187,9 +214,15 @@ Refer the below helper files and add them into the mentioned project. These help
{{'[PreviewControllerDS.cs](https://github.com/SyncfusionExamples/PowerPoint-Examples/blob/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/.NET-MAUI/Read-and-edit-presentation/Platforms/iOS/PreviewControllerDS.cs)'| markdownify }} {{'[QLPreviewItemFileSystem.cs](https://github.com/SyncfusionExamples/PowerPoint-Examples/blob/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/.NET-MAUI/Read-and-edit-presentation/Platforms/iOS/QLPreviewItemFileSystem.cs)'| markdownify }}
- Helper classes for viewing the PowerPoint Presentation in iOS device
+ Helper classes for viewing the PowerPoint presentation on iOS.
-Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
+
+## Next steps
+
+- [Create a PowerPoint presentation from scratch](Create-PowerPoint-in-Console-application.md)
+- [Edit comments and shapes in an existing PowerPoint presentation](Comments.md)
+
+Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-UWP.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-UWP.md
index 64af002958..c988fe8c9c 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-UWP.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-UWP.md
@@ -8,15 +8,20 @@ documentation: UG
# Open and save Presentation in UWP
-Syncfusion® PowerPoint is a [UWP PowerPoint library](https://www.syncfusion.com/powerpoint-framework/uwp/powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in UWP**.
+Syncfusion® PowerPoint is a [UWP PowerPoint library](https://www.syncfusion.com/powerpoint-framework/uwp/powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a PowerPoint presentation in UWP**.
-## Steps to open and save PowerPoint Presentation programmatically
+## Prerequisites
-Step 1: Create a new C# UWP application project.
+- Visual Studio 2022 or later with the **.NET desktop development** and **Universal Windows Platform development** workloads installed.
+- Windows 10 SDK (minimum build 17763 or later) to develop UWP applications.
+
+## Steps to open and save PowerPoint presentation programmatically
+
+Step 1: In Visual Studio, create a new C# **Blank App (Universal Windows)** project.

-Step 2: Install the [Syncfusion.Presentation.UWP](https://www.nuget.org/packages/Syncfusion.Presentation.UWP/) NuGet package as reference to your .NET Standard applications from [NuGet.org](https://www.nuget.org/).
+Step 2: Install the [Syncfusion.Presentation.UWP](https://www.nuget.org/packages/Syncfusion.Presentation.UWP/) NuGet package as a reference to your UWP application from [NuGet.org](https://www.nuget.org/).

@@ -49,17 +54,21 @@ Step 4: Include the following namespaces in the **MainPage.xaml.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.Collections.Generic;
+using System.Reflection;
using Syncfusion.Presentation;
+using Windows.Storage;
+using Windows.Storage.Pickers;
{% endhighlight %}
{% endtabs %}
-Step 5: Include the below code snippet in the click event of the button in MainPage.xaml.cs, to **Open an existing PowerPoint Presentation in UWP**.
+Step 5: Add an existing **Template.pptx** file to the project's **Assets** folder. In **Solution Explorer**, right-click the **Assets** folder, select **Add → Existing Item**, choose **Template.pptx**, and set its **Build Action** to **Embedded Resource** in the Properties window. Then add the following code snippet in the click event of the button in `MainPage.xaml.cs` to **open an existing PowerPoint presentation in UWP**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//"App" is the class of Portable project.
+//"App" is the class of the UWP project.
Assembly assembly = typeof(App).GetTypeInfo().Assembly;
//Open an existing PowerPoint presentation
IPresentation pptxDoc = Presentation.Open(assembly.GetManifestResourceStream("Read_and_edit_PowerPoint_presentation.Assets.Template.pptx"));
@@ -67,7 +76,7 @@ IPresentation pptxDoc = Presentation.Open(assembly.GetManifestResourceStream("Re
{% endhighlight %}
{% endtabs %}
-Step 6: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
+Step 6: Add the following code snippet, which demonstrates accessing a shape from a slide and changing the text within it.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -83,7 +92,7 @@ if (shape.TextBody.Text == "Company History")
{% endhighlight %}
{% endtabs %}
-Step 7: Add below code snippet to Save and close the presentation.
+Step 7: Add the following code snippet to save and close the presentation. The `IPresentation.SaveAsync` method saves the file in **.pptx** format by default; the same approach supports saving as other PowerPoint formats such as **.pptm** and **.ppsx** by selecting the appropriate file type in the picker.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -95,18 +104,19 @@ savePicker.SuggestedFileName = "Result";
savePicker.FileTypeChoices.Add("PowerPoint Files", new List() { ".pptx" });
//Creates a storage file from FileSavePicker
StorageFile storageFile = await savePicker.PickSaveFileAsync();
-//Saves changes to the specified storage file
-await pptxDoc.SaveAsync(storageFile);
+//Saves changes to the specified storage file (skip if the user cancels the picker)
+if (storageFile != null)
+ await pptxDoc.SaveAsync(storageFile);
//Close the PowerPoint presentation
pptxDoc.Close();
{% endhighlight %}
{% endtabs %}
-You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/UWP).
+By executing the program, you will get the **PowerPoint presentation** as follows.
-By executing the program, you will get the **PowerPoint document** as follows.
+
-
+You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/UWP).
Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-WPF.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-WPF.md
index 61d8f3c3ff..e446b87b7b 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-WPF.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-WPF.md
@@ -1,6 +1,6 @@
---
title: Open and save Presentation in WPF | Syncfusion
-description: Open and save Presentation in WPF using .NET PowerPoint library (Presentation) without Microsoft PowerPoint or interop dependencies.
+description: Open and save Presentation in WPF using Syncfusion .NET PowerPoint library (Presentation) without Microsoft PowerPoint or interop dependencies.
platform: document-processing
control: PowerPoint
documentation: UG
@@ -8,15 +8,16 @@ documentation: UG
# Open and save Presentation in WPF
-Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in WPF**.
+Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, edit, and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a PowerPoint presentation in WPF**.
+
## Steps to open and save PowerPoint Presentation programmatically
-Step 1: Create a new C# WPF application project.
+Step 1: Create a new C# **WPF Application** project in Visual Studio.

-Step 2: Install the [Syncfusion.Presentation.Wpf](https://www.nuget.org/packages/Syncfusion.Presentation.Wpf/) NuGet package as reference to your .NET Standard applications from [NuGet.org](https://www.nuget.org/).
+Step 2: Install the [Syncfusion.Presentation.Wpf](https://www.nuget.org/packages/Syncfusion.Presentation.Wpf/) NuGet package as a reference to your application from [NuGet.org](https://www.nuget.org/).

@@ -27,75 +28,78 @@ Step 3: Add a new button in the **MainWindow.xaml** as shown below.
{% tabs %}
{% highlight xaml tabtitle="XAML" %}
-
-
+
{% endhighlight %}
{% endtabs %}
-Step 4: Include the following namespaces in the **MainWindow.xaml.cs** file.
+Step 4: Include the following namespaces in the **MainWindow.xaml.cs** file, and add the empty `OpenAndSavePresentation` click handler that the XAML references:
{% tabs %}
{% highlight c# tabtitle="C#" %}
using Syncfusion.Presentation;
-
+using System.IO;
{% endhighlight %}
{% endtabs %}
-Step 5: Add the following code in **OpenAndSavePresentation** to **open an existing PowerPoint Presentation in WPF**.
+Step 5: Add the empty `OpenAndSavePresentation` click handler that the XAML references in **MainWindow.xaml.cs**
{% tabs %}
{% highlight c# tabtitle="C#" %}
-
-//Opens an existing PowerPoint presentation.
-IPresentation pptxDoc = Presentation.Open("Data/Template.pptx");
-
-{% endhighlight %}
-{% endtabs %}
-
-Step 6: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
-
-{% tabs %}
-{% highlight c# tabtitle="C#" %}
-
-//Gets the first slide from the PowerPoint presentation
-ISlide slide = pptxDoc.Slides[0];
-//Gets the first shape of the slide
-IShape shape = slide.Shapes[0] as IShape;
-//Change the text of the shape
-if (shape.TextBody.Text == "Company History")
- shape.TextBody.Text = "Company Profile";
+public partial class MainWindow : System.Windows.Window
+{
+ public MainWindow()
+ {
+ InitializeComponent();
+ }
+
+ private void OpenAndSavePresentation(object sender, System.Windows.RoutedEventArgs e)
+ {
+ // The body is filled in the next step.
+ }
+}
{% endhighlight %}
{% endtabs %}
-Step 7: Add below code example to **save the PowerPoint Presentation in WPF**.
+Step 6: Add the following code inside `OpenAndSavePresentation` to **open an existing PowerPoint presentation in WPF**:
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Saves the Presentation to the file system.
-pptxDoc.Save("Result.pptx");
-//Close the PowerPoint presentation
-pptxDoc.Close();
+//Open an existing PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Open("Data/Template.pptx"))
+{
+ //Gets the first slide from the PowerPoint presentation
+ ISlide slide = pptxDoc.Slides[0];
+ //Gets the first shape of the slide
+ IShape shape = slide.Shapes[0] as IShape;
+ //Change the text of the shape
+ if (shape.TextBody.Text == "Company History")
+ shape.TextBody.Text = "Company Profile";
+
+ //Save the PowerPoint presentation to the file system.
+ pptxDoc.Save("Result.pptx");
+}
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/WPF).
-By executing the program, you will get the **PowerPoint document** as follows.
+By executing the program, you will get the PowerPoint presentation as follows.

diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-WinUI.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-WinUI.md
index ea86a89369..df21f08a8b 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-WinUI.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-WinUI.md
@@ -11,7 +11,7 @@ documentation: UG
Syncfusion® PowerPoint is a [WinUI PowerPoint library](https://www.syncfusion.com/powerpoint-framework/winui/powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in WinUI**.
## Prerequisites
-To use the WinUI 3 project templates, install the Windows App SDK extension for Visual Studio. For more details, refer [here](https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/set-up-your-development-environment).
+To use the WinUI 3 project templates, install the Windows App SDK extension for Visual Studio. For more details, refer [here](https://learn.microsoft.com/en-us/windows/apps/get-started/start-here?tabs=visual-studio).
## WinUI Desktop app
@@ -25,11 +25,11 @@ Step 2: Enter the project name and click **Create**.

-Step 3: Set the Target version to Windows 10, version 2004 (build 19041) and the Minimum version to Windows 10, version 1809 (build 17763) and then click **OK**.
+Step 3: Set the **Target version** to **Windows 10, version 22H2 (build 19045)** and the **Minimum version** to **Windows 10, version 1809 (build 17763)**, then click **OK**.

-Step 4: Install the [Syncfusion.Presentation.NET](https://www.nuget.org/packages/Syncfusion.Presentation.NET) NuGet package as a reference to your .NET Standard applications from the [NuGet.org](https://www.nuget.org/).
+Step 4: Install the [Syncfusion.Presentation.NET](https://www.nuget.org/packages/Syncfusion.Presentation.NET) NuGet package as a reference to your application from the [NuGet.org](https://www.nuget.org/).

@@ -61,6 +61,8 @@ Step 6: Include the following namespaces in the **MainWindow.xaml.cs** file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
+using System.Reflection;
using Syncfusion.Presentation;
{% endhighlight %}
@@ -83,20 +85,20 @@ Step 8: Add below code snippet demonstrates accessing a shape from a slide and c
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Opens an existing PowerPoint presentation.
-using IPresentation pptxDoc = Presentation.Open(stream);
+//Load the PowerPoint file from the application's installation folder.
+using IPresentation pptxDoc = Presentation.Open("Assets/Template.pptx");
//Get the first slide from the PowerPoint presentation.
ISlide slide = pptxDoc.Slides[0];
//Get the first shape of the slide.
IShape shape = slide.Shapes[0] as IShape;
//Modify the text of the shape.
-if (shape.TextBody.Text == "Company History")
+if (shape != null && shape.TextBody.Text == "Company History")
shape.TextBody.Text = "Company Profile";
{% endhighlight %}
{% endtabs %}
-Step 9: Add below code example to **save the PowerPoint Presentation in WinUI Desktop app**. Refer the helper class file to save the **Presentation document** in WinUI Desktop App from [here](https://github.com/SyncfusionExamples/PowerPoint-Examples/blob/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/WinUI/WinUI-Desktop-app/Read-and-edit-PowerPoint-presentation/SaveHelper.cs).
+Step 10: Add the following code example to **save the PowerPoint presentation** in a WinUI Desktop app. The `SaveHelper` class (from the [GitHub sample](https://github.com/SyncfusionExamples/PowerPoint-Examples/blob/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/WinUI/WinUI-Desktop-app/Read-and-edit-PowerPoint-presentation/SaveHelper.cs)) uses a `FileSavePicker` and `WindowsRT.Interop` to write the file to disk.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -265,3 +267,10 @@ By executing the program, you will get the **PowerPoint document** as follows.

Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
+
+## See also
+
+- [Create a PowerPoint presentation in WinUI](./create-read-edit-powerpoint-files-in-winui)
+- [Open and save Presentation in UWP](./Open-and-Save-PowerPoint-Presentation-in-UWP)
+- [.NET PowerPoint Library — features and pricing](https://www.syncfusion.com/document-sdk/net-powerpoint-library)
+- [Syncfusion licensing overview](https://help.syncfusion.com/common/essential-studio/licensing/overview)
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Windows-Forms.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Windows-Forms.md
index 73ee1830bf..021a750e4d 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Windows-Forms.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Windows-Forms.md
@@ -16,11 +16,11 @@ Step 1: Create a new C# Windows Forms application project.

-Step 2: Install the [Syncfusion.Presentation.WinForms](https://www.nuget.org/packages/Syncfusion.Presentation.WinForms/) NuGet package as reference to your .NET Standard applications from [NuGet.org](https://www.nuget.org/).
+Step 2: Install the [Syncfusion.Presentation.WinForms](https://www.nuget.org/packages/Syncfusion.Presentation.WinForms/) NuGet package as a reference to your Windows Forms application from [NuGet.org](https://www.nuget.org/).

-N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
+N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add the "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
Step 3: Include the following namespaces in the **Form1.Designer.cs** file.
@@ -88,30 +88,32 @@ IPresentation pptxDoc = Presentation.Open("../../Data/Template.pptx");
{% endhighlight %}
{% endtabs %}
-Step 6: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
+Step 6: The following code snippet demonstrates accessing a shape from a slide and changing the text within it.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Gets the first slide from the PowerPoint presentation
+//Gets the first slide from the PowerPoint presentation.
ISlide slide = pptxDoc.Slides[0];
-//Gets the first shape of the slide
+//Gets the first shape of the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Change the text of the shape
-if (shape.TextBody.Text == "Company History")
+//Changes the text of the shape.
+if (shape != null && shape.TextBody != null && shape.TextBody.Text == "Company History")
+{
shape.TextBody.Text = "Company Profile";
+}
{% endhighlight %}
{% endtabs %}
-Step 7: Add below code example to **save the PowerPoint Presentation in Windows Forms**.
+Step 7: Add the following code example to **save the PowerPoint Presentation in Windows Forms**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Saves the Presentation to the file system.
+//Saves the PowerPoint presentation to the file system.
pptxDoc.Save("Result.pptx");
-//Close the PowerPoint presentation
+//Closes the PowerPoint presentation.
pptxDoc.Close();
{% endhighlight %}
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Xamarin.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Xamarin.md
index 7eb964cd39..e2da75d249 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Xamarin.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-Presentation-in-Xamarin.md
@@ -10,13 +10,13 @@ documentation: UG
Syncfusion® PowerPoint is a [Xamarin PowerPoint library](https://www.syncfusion.com/powerpoint-framework/xamarin/powerpoint-library) used to create, read, edit and convert PowerPoint documents programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in Xamarin**.
-## Steps to open and save PowerPoint Presentation programmatically
+## Steps to open and save a PowerPoint presentation programmatically
Step 1: Create a new C# **Xamarin.Forms** application project.

-Step 2: Select a project template and required platforms to deploy the application. In this application the portable assemblies to be shared across multiple platforms, the .NET Standard code sharing strategy has been selected. For more details about code sharing refer [here](https://docs.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/code-sharing).
+Step 2: Select a project template and the required platforms to deploy the application. In this application, the .NET Standard code-sharing strategy is selected so that portable assemblies are shared across multiple platforms. For more details about code sharing, refer [here](https://learn.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/code-sharing).

@@ -26,10 +26,10 @@ Step 3: Install [Syncfusion.Xamarin.Presentation](https://www.nuget.org/packages
N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
-Step 4: Add new Forms XAML page in portable project If there is no XAML page is defined in the App class. Otherwise proceed to the next step.
+Step 4: Add a new Forms XAML page to the portable project if no XAML page is defined in the App class. Otherwise, proceed to the next step.
-
To add the new XAML page, right click on the project and select Add > New Item and add a Forms XAML Page from the list. Name it as MainXamlPage.
-
In App class of portable project (App.cs), replace the existing constructor of App class with the code snippet given below which invokes the MainXamlPage.
+
To add the new XAML page, right-click the project and select Add > New Item, then add a Forms XAML Page from the list. Name it MainXamlPage.
+
In the App class of the portable project (App.cs), replace the existing constructor of the App class with the code snippet given below, which invokes the MainXamlPage.
{% tabs %}
@@ -52,7 +52,7 @@ Step 5: In the **MainXamlPage.xaml** add new button as shown below.
+ x:Class="Read_and_edit_PowerPoint_presentation.MainXamlPage">
@@ -61,17 +61,20 @@ Step 5: In the **MainXamlPage.xaml** add new button as shown below.
{% endhighlight %}
{% endtabs %}
-Step 6: Include the following namespace in the MainXamlPage.xaml.cs file.
+Step 6: Include the following namespaces in the MainXamlPage.xaml.cs file.
{% tabs %}
{% highlight c# tabtitle="C#" %}
+using System.IO;
+using System.Reflection;
using Syncfusion.Presentation;
+using Xamarin.Forms;
{% endhighlight %}
{% endtabs %}
-Step 7: Include the below code snippet in the click event of the button in MainXamlPage.xaml.cs, to **open an existing PowerPoint Presentation in Xamarin**.
+Step 7: Include the below code snippet in the click event of the button in MainXamlPage.xaml.cs, to **open an existing PowerPoint presentation in Xamarin**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -84,7 +87,7 @@ IPresentation pptxDoc = Presentation.Open(assembly.GetManifestResourceStream("Re
{% endhighlight %}
{% endtabs %}
-Step 8: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
+Step 8: Add the code snippet below, which demonstrates accessing a shape from a slide and changing the text within it.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -100,7 +103,7 @@ if (shape.TextBody.Text == "Company History")
{% endhighlight %}
{% endtabs %}
-Step 9: Add below code example to **save the PowerPoint Presentation in Xamarin**.
+Step 9: Add the code example below to **save the PowerPoint presentation in Xamarin**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
@@ -149,7 +152,7 @@ Refer the below helper files and add them into the mentioned project. These help
{{'[iOS Project](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/Xamarin/Read-and-edit-PowerPoint-presentation/Read-and-edit-PowerPoint-presentation.iOS)'| markdownify }}
Save implementation for iOS device
@@ -191,5 +194,8 @@ By executing the program, you will get the **PowerPoint document** as follows.

-Looking for the full .NET PowerPoint Library component overview, features, pricing, and documentation? Visit the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) page.
+## Related Links
+
+- [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library)
+- [Create, read, and edit a PowerPoint file in .NET MAUI](https://help.syncfusion.com/document-processing/powerpoint/powerpoint-library/net/create-read-edit-powerpoint-files-in-maui)
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-in-Console-application.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-in-Console-application.md
index ba88675c30..b1ff1e80b0 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-in-Console-application.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Open-and-Save-PowerPoint-in-Console-application.md
@@ -8,20 +8,20 @@ documentation: UG
# Open and save Presentation in Console application
-Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, and edit **PowerPoint presentation** programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save Presentation in Console application**.
+Syncfusion® PowerPoint is a [.NET PowerPoint library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) used to create, read, and edit **PowerPoint presentations** programmatically without **Microsoft PowerPoint** or interop dependencies. Using this library, you can **open and save a Presentation in a Console application**.
-## Open and save Presentation using .NET Core and Latest
+## Open and save Presentation in .NET Core / .NET (Latest)
-The below steps illustrates **create a PowerPoint** in console application using **.NET Core**.
+The following steps illustrate how to open and save a PowerPoint presentation in a .NET Core (or .NET 6.0+/Latest) console application.
-Step 1: Create a new **.NET Core console application** project.
+Step 1: Create a new **.NET Core console application** project. Select a supported target framework **.NET 8.0**, or later.

Step 2: Install the [Syncfusion.Presentation.Net.Core](https://www.nuget.org/packages/Syncfusion.Presentation.Net.Core/) NuGet package as a reference to your project from [NuGet.org](https://www.nuget.org/).

-N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
+N> Starting with v16.2.0.x, if you reference Syncfusion® assemblies from the trial setup or from the NuGet feed, you also have to add the "Syncfusion.Licensing" assembly reference and include a license key in your project. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to learn about registering the Syncfusion® license key in your application to use our components.
Step 3: Include the following namespaces in **Program.cs** file.
@@ -33,66 +33,54 @@ using Syncfusion.Presentation;
{% endhighlight %}
{% endtabs %}
-Step 4: Add the following code snippet in **Program.cs** file to **open an existing Presentation in .NET Core console application**.
+Step 4: Add the following code snippet in **Program.cs** to **open an existing presentation in a .NET Core console application**.
{% tabs %}
{% highlight c# tabtitle="C#" %}
//Open an existing PowerPoint presentation.
-using (IPresentation pptxDoc = Presentation.Open(new FileStream("Sample.pptx",FileMode.Open)));
-
-{% endhighlight %}
-{% endtabs %}
-
-Step 5: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
-
-{% tabs %}
-{% highlight c# tabtitle="C#" %}
-
-//Gets the first slide from the PowerPoint presentation.
-ISlide slide = pptxDoc.Slides[0];
-//Gets the first shape of the slide.
-IShape shape = slide.Shapes[0] as IShape;
-//Change the text of the shape.
-if(shape.TextBody.Text == "Company History")
- shape.TextBody.Text = "Company Profile";
-
-{% endhighlight %}
-{% endtabs %}
-
-Step 6: Add below code example to **save the PowerPoint Presentation in .NET Core console application**.
-
-{% tabs %}
-{% highlight c# tabtitle="C#" %}
-
-//Save the PowerPoint presentation as stream.
-using (FileStream outputStream = new FileStream("Output.pptx", FileMode.Create))
+using (IPresentation pptxDoc = Presentation.Open("Sample.pptx"))
{
- pptxDoc.Save(outputStream);
+ //Get the first slide from the PowerPoint presentation.
+ ISlide slide = pptxDoc.Slides[0];
+ //Get the first shape of the slide.
+ IShape shape = slide.Shapes[0] as IShape;
+ //Change the text of the shape.
+ if (shape.TextBody.Text == "Company History")
+ {
+ shape.TextBody.Text = "Company Profile";
+ }
+
+ //Save the PowerPoint presentation to the specified path.
+ pptxDoc.Save("Output.pptx");
}
{% endhighlight %}
{% endtabs %}
+> The `Sample.pptx` file used in this example is included in the GitHub sample linked below. Adjust the text check ("Company History") to match the content in your own presentation.
+
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/.NET).
+Step 7: Build and run the project. In Visual Studio, press **F5** (with debugger) or **Ctrl + F5** (without debugger). From the command line, run `dotnet run` in the project folder.
+
By executing the program, you will get the **PowerPoint** as follows.

-## Open and save PowerPoint in .NET Framework
+## Open and save PowerPoint Presentation in .NET Framework
-The below steps illustrates **open and save a PowerPoint** in console application using **.NET Framework**.
+The following steps illustrate how to open and save a PowerPoint presentation in a .NET Framework console application.
-Step 1: Create a new **.NET FrameWork console application** project.
+Step 1: Create a new **.NET Framework console application** project targeting **.NET Framework 4.6.1** or later.

-Step 2: Install [Syncfusion.Presentation.WinForms](https://www.nuget.org/packages/Syncfusion.Presentation.WinForms/) NuGet package as a reference to your Windows Forms application from the [NuGet.org](https://www.nuget.org/).
+Step 2: Install the [Syncfusion.Presentation.WinForms](https://www.nuget.org/packages/Syncfusion.Presentation.WinForms/) NuGet package as a reference to your .NET Framework console application from [NuGet.org](https://www.nuget.org/).

-N> 1. The [Syncfusion.Presentation.WinForms](https://www.nuget.org/packages/Syncfusion.Presentation.WinForms/) is a dependency for Syncfusion® Windows Forms GUI controls and is named with the suffix "WinForms". It contains platform-independent .NET Framework assemblies (compatible with versions 4.0, 4.5, 4.5.1, and 4.6) for the PowerPoint library and does not include any Windows Forms-related references or code. Therefore, we recommend using this package for .NET Framework Console applications.
-N> 2. Starting with v16.2.0.x, if you reference Syncfusion® assemblies from trial setup or from the NuGet feed, you also have to add "Syncfusion.Licensing" assembly reference and include a license key in your projects. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components.
+N> 1. The [Syncfusion.Presentation.WinForms](https://www.nuget.org/packages/Syncfusion.Presentation.WinForms/) is a dependency for Syncfusion® Windows Forms GUI controls and is named with the suffix "WinForms". It contains platform-independent .NET Framework assemblies (compatible with versions 4.0, 4.5, 4.5.1, 4.6, and 4.6.1) for the PowerPoint library and does not include any Windows Forms-related references or code. Therefore, we recommend using this package for .NET Framework console applications.
+N> 2. Starting with v16.2.0.x, if you reference Syncfusion® assemblies from the trial setup or from the NuGet feed, you also have to add the "Syncfusion.Licensing" assembly reference and include a license key in your project. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to learn about registering the Syncfusion® license key in your application to use our components.
Step 3: Include the following namespaces in **Program.cs** file.
@@ -104,45 +92,41 @@ using Syncfusion.Presentation;
{% endhighlight %}
{% endtabs %}
-Step 4: Add the following code snippet in **Program.cs** file to **open an existing Presentation in .NET FrameWork console application**.
+Step 4: Add the following code snippet in **Program.cs** to **open an existing presentation in a .NET Framework console application**. Place `Template.pptx` in the project output directory (typically `bin\Debug`) or provide a full path.
{% tabs %}
{% highlight c# tabtitle="C#" %}
-//Load or open an PowerPoint Presentation.
-using (IPresentation pptxDoc = Presentation.Open("Template.pptx"));
-
-{% endhighlight %}
-{% endtabs %}
-
-Step 5: Add below code snippet demonstrates accessing a shape from a slide and changing the text within it.
-
-{% tabs %}
-{% highlight c# tabtitle="C#" %}
-
-//Get the first slide from the PowerPoint presentation.
-ISlide slide = pptxDoc.Slides[0];
-//Get the first shape of the slide.
-IShape shape = slide.Shapes[0] as IShape;
-//Change the text of the shape.
-if (shape.TextBody.Text == "Company History")
- shape.TextBody.Text = "Company Profile";
+//Load or open a PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Open("Template.pptx"))
+{
+ //Get the first slide from the PowerPoint presentation.
+ ISlide slide = pptxDoc.Slides[0];
+ //Get the first shape of the slide.
+ IShape shape = slide.Shapes[0] as IShape;
+ //Change the text of the shape.
+ if (shape.TextBody.Text == "Company History")
+ {
+ shape.TextBody.Text = "Company Profile";
+ }
+
+ //Save the PowerPoint presentation to the specified path.
+ pptxDoc.Save("Result.pptx");
+}
{% endhighlight %}
{% endtabs %}
-Step 6: Add below code example to **save the PowerPoint Presentation in .NET FrameWork console application**.
-
-{% tabs %}
-{% highlight c# tabtitle="C#" %}
-
-pptxDoc.Save("Result.pptx");
-
-{% endhighlight %}
-{% endtabs %}
+> The `Template.pptx` file used in this example is included in the GitHub sample linked below. Adjust the text check ("Company History") to match the content in your own presentation.
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Open-and-save-PowerPoint/.NET-Framework).
+Step 5: Build and run the project. In Visual Studio, press **F5** (with debugger) or **Ctrl + F5** (without debugger). The output `Result.pptx` will be generated in the project output directory.
+
By executing the program, you will get the **PowerPoint** as follows.
-
\ No newline at end of file
+
+
+## See Also
+[Open and save Presentation in Windows Forms](./Open-and-Save-PowerPoint-Presentation-in-Windows-Forms)
+[Open and save Presentation in ASP.NET Core](./Open-and-Save-PowerPoint-Presentation-in-ASP-NET-Core)
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Security.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Security.md
index 0d5cf797a7..96bfac2c9a 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Security.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Security.md
@@ -10,28 +10,22 @@ documentation: UG
To quickly start protecting PowerPoint presentations, please check out this video:
{% youtube "https://www.youtube.com/watch?v=GnnVPtrP9rE" %}
-## Encrypting with password
+## Encrypting with password
-You can protect a PowerPoint Presentation by encrypting the document by using a password. This prevents unauthorized users to access or make changes in the Presentation.
+You can protect a PowerPoint presentation by encrypting the document using a password. This prevents unauthorized users from accessing or making changes to the presentation. The input file (for example, `Template.pptx`) must already exist in the working directory.
-The following code example demonstrates how to encrypt a PowerPoint Presentation with password.
+The following code example demonstrates how to encrypt a PowerPoint presentation with a password.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Security/Encrypt-PowerPoint-with-password/.NET/Encrypt-PowerPoint-with-password/Program.cs" %}
//Open an existing presentation.
-using (FileStream inputStream = new FileStream("Template.pptx", FileMode.Open, FileAccess.Read))
+using (IPresentation presentation = Presentation.Open("Template.pptx"))
{
- using (IPresentation presentation = Presentation.Open(inputStream))
- {
- //Encrypt the presentation with a password.
- presentation.Encrypt("syncfusion");
- //Saves the Presentation.
- using (FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create))
- {
- presentation.Save(outputStream);
- }
- }
+ //Encrypt the presentation with a password.
+ presentation.Encrypt("syncfusion");
+ //Saves the presentation.
+ presentation.Save("Sample.pptx");
}
{% endhighlight %}
@@ -64,72 +58,59 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
Essential® Presentation provides ability to remove the encryption from the PowerPoint Presentation. You can decrypt a PowerPoint Presentation by opening it with the password.
-**Opening** **the** **Encrypted** **PowerPoint** **Presentation**
+### Opening an Encrypted PowerPoint Presentation
-The following code example demonstrates opening the encrypted PowerPoint Presentation.
+The following code example demonstrates opening an encrypted PowerPoint presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" %}
-//Opens an existing Presentation from file system and it can be decrypted by using the provided password.
-using (FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open))
+//Opens an existing presentation from the file system and decrypts it using the provided password.
+using (IPresentation presentation = Presentation.Open("Sample.pptx", "PASSWORD!@1#$"))
{
- using (IPresentation presentation = Presentation.Open(inputStream, "PASSWORD!@1#$"))
- {
- //Save the PowerPoint Presentation as stream.
- using (FileStream outputStream = new FileStream("Output.pptx", FileMode.Create))
- {
- presentation.Save(outputStream);
- }
- }
+ //Saves the presentation.
+ presentation.Save("Output.pptx");
}
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Opens an existing Presentation from file system and it can be decrypted by using the provided password.
+//Opens an existing presentation from the file system and decrypts it using the provided password.
using (IPresentation presentation = Presentation.Open("Sample.pptx", "PASSWORD!@1#$"))
{
- //Saves the Presentation.
+ //Saves the presentation.
presentation.Save("Output.pptx");
}
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Opens an existing Presentation from file system and it can be decrypted by using the provided password.
+'Opens an existing presentation from the file system and decrypts it using the provided password.
Using presentationDocument As IPresentation = Presentation.Open("Sample.pptx", "PASSWORD!@1#$")
- 'Saves the Presentation
+ 'Saves the presentation.
presentationDocument.Save("Output.pptx")
End Using
{% endhighlight %}
{% endtabs %}
-**Removing the encryption from Presentation**
+### Removing the Encryption from a Presentation
-The following code example demonstrates removing the encryption from a PowerPoint Presentation.
+The following code example demonstrates removing encryption from a PowerPoint presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Security/Remove-encryption/.NET/Remove-encryption/Program.cs" %}
-//Opens an existing Presentation from file system and it can be decrypted by using the provided password.
-using (FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open))
+//Opens an existing presentation from the file system and decrypts it using the provided password.
+using (IPresentation presentation = Presentation.Open("Sample.pptx", "syncfusion"))
{
- //Opens an existing Presentation from file system and it can be decrypted by using the provided password.
- using (IPresentation presentation = Presentation.Open(inputStream, "syncfusion"))
- {
- //Decrypts the document.
- presentation.RemoveEncryption();
- //Save the PowerPoint Presentation as stream.
- using (FileStream outputStream = new FileStream("Output.pptx", FileMode.Create))
- {
- presentation.Save(outputStream);
- }
- }
+ //Decrypts the document.
+ presentation.RemoveEncryption();
+ //Saves the presentation.
+ presentation.Save("Output.pptx");
}
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Opens an existing Presentation from file system and it can be decrypted by using the provided password.
+//Opens an existing presentation from the file system and decrypts it using the provided password.
using (IPresentation presentation = Presentation.Open("Sample.pptx", "syncfusion"))
{
//Decrypts the document.
@@ -140,11 +121,11 @@ using (IPresentation presentation = Presentation.Open("Sample.pptx", "syncfusion
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Opens an existing Presentation from file system and it can be decrypted by using the provided password.
+'Opens an existing presentation from the file system and decrypts it using the provided password.
Using presentationDocument As IPresentation = Presentation.Open("Sample.pptx", "syncfusion")
'Decrypts the document.
presentationDocument.RemoveEncryption()
- 'Saves the Presentation.
+ 'Saves the presentation.
presentationDocument.Save("Output.pptx")
End Using
{% endhighlight %}
@@ -155,147 +136,141 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Write Protection
-You can set write protection for a PowerPoint Presentation and remove protection from the write protected PowerPoint presentation.
+You can set write protection for a PowerPoint presentation and remove the protection from a write-protected PowerPoint presentation.
-### Protect PowerPoint Presentation
+### Setting Write Protection
-You can protect a PowerPoint Presentation with password to restrict unauthorized editing.
+You can protect a PowerPoint presentation with a password to restrict unauthorized editing.
-The following code example shows how to set write protection for a PowerPoint Presentation.
+The following code example shows how to set write protection for a PowerPoint presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Security/Set-write-protection/.NET/Set-write-protection/Program.cs" %}
-//Create a new instance for PowerPoint presentation
-IPresentation pptxDoc = Presentation.Create();
-//Add the blank slide to the presentation
-ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Add the shape to the slide
-IShape shape = slide.Shapes.AddShape(AutoShapeType.BlockArc, 0, 0, 200, 200);
-//Add the paragraph to the shape.
-IParagraph paragraph = shape.TextBody.AddParagraph("welcome");
-//Sets the author name
-pptxDoc.BuiltInDocumentProperties.Author = "Syncfusion";
-//Set the write protection for presentation instance
-pptxDoc.SetWriteProtection("MYPASSWORD");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Output.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Closes the presentation
-pptxDoc.Close();
+//Create a new instance for the PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Create())
+{
+ //Add a blank slide to the presentation.
+ ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
+ //Add a shape to the slide.
+ IShape shape = slide.Shapes.AddShape(AutoShapeType.BlockArc, 0, 0, 200, 200);
+ //Add a paragraph to the shape.
+ IParagraph paragraph = shape.TextBody.AddParagraph("welcome");
+ //Set the author name.
+ pptxDoc.BuiltInDocumentProperties.Author = "Syncfusion";
+ //Set the write protection for the presentation instance.
+ pptxDoc.SetWriteProtection("MYPASSWORD");
+ //Saves the presentation.
+ pptxDoc.Save("Sample.pptx");
+}
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Create a new instance for PowerPoint presentation
-IPresentation pptxDoc = Presentation.Create();
-//Add the blank slide to the presentation
-ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Add the shape to the slide
-IShape shape = slide.Shapes.AddShape(AutoShapeType.BlockArc, 0, 0, 200, 200);
-//Add the paragraph to the shape.
-IParagraph paragraph = shape.TextBody.AddParagraph("welcome");
-//Sets the author name
-pptxDoc.BuiltInDocumentProperties.Author = "Syncfusion";
-//Set the write protection for presentation instance
-pptxDoc.SetWriteProtection("MYPASSWORD");
-//Saves the modified cloned PowerPoint presentation
-pptxDoc.Save("Sample.pptx");
-//Close the presentation instance
-pptxDoc.Close();
+//Create a new instance for the PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Create())
+{
+ //Add a blank slide to the presentation.
+ ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
+ //Add a shape to the slide.
+ IShape shape = slide.Shapes.AddShape(AutoShapeType.BlockArc, 0, 0, 200, 200);
+ //Add a paragraph to the shape.
+ IParagraph paragraph = shape.TextBody.AddParagraph("welcome");
+ //Set the author name.
+ pptxDoc.BuiltInDocumentProperties.Author = "Syncfusion";
+ //Set the write protection for the presentation instance.
+ pptxDoc.SetWriteProtection("MYPASSWORD");
+ //Saves the presentation.
+ pptxDoc.Save("Sample.pptx");
+}
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Create a new instance for PowerPoint presentation
-IPresentation pptxDoc = Presentation.Create()
-'Add the blank slide to the presentation
-ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
-'Add the shape to the slide
-IShape shape = slide.Shapes.AddShape(AutoShapeType.BlockArc, 0, 0, 200, 200)
-'Add the paragraph to the shape.
-IParagraph paragraph = shape.TextBody.AddParagraph("welcome")
-'Sets the author name
-pptxDoc.BuiltInDocumentProperties.Author = "Syncfusion"
-'Set the write protection for presentation instance
-pptxDoc.SetWriteProtection("MYPASSWORD")
-'Saves the modified cloned PowerPoint presentation
-pptxDoc.Save("Sample.pptx")
-'Close the presentation instance
-pptxDoc.Close()
+'Create a new instance for the PowerPoint presentation.
+Using pptxDoc As IPresentation = Presentation.Create()
+ 'Add a blank slide to the presentation.
+ Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
+ 'Add a shape to the slide.
+ Dim shape As IShape = slide.Shapes.AddShape(AutoShapeType.BlockArc, 0, 0, 200, 200)
+ 'Add a paragraph to the shape.
+ Dim paragraph As IParagraph = shape.TextBody.AddParagraph("welcome")
+ 'Set the author name.
+ pptxDoc.BuiltInDocumentProperties.Author = "Syncfusion"
+ 'Set the write protection for the presentation instance.
+ pptxDoc.SetWriteProtection("MYPASSWORD")
+ 'Saves the presentation.
+ pptxDoc.Save("Sample.pptx")
+End Using
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Security/Set-write-protection).
-### Remove Protection
+### Removing Write Protection
-You can check whether a PowerPoint Presentation is write protected and remove protection from the write protected PowerPoint Presentation.
+You can check whether a PowerPoint presentation is write protected and remove the protection. The `IsWriteProtected` property returns `true` when the presentation is read-only due to write protection.
-The following code example shows how to remove restriction protection from the write protected PowerPoint Presentation
+The following code example shows how to remove write protection from a PowerPoint presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Security/Remove-write-protection/.NET/Remove-write-protection/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Gets whether the presentation is write Protected. Read - only.
-bool writeProtected = pptxDoc.IsWriteProtected;
-//Checks whether the presentation is write protected
-if (writeProtected)
+//Open the PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Open("Sample.pptx"))
{
- //Removes the write protection for presentation instance.
- pptxDoc.RemoveWriteProtection();
+ //Gets whether the presentation is write protected (read-only).
+ bool writeProtected = pptxDoc.IsWriteProtected;
+ //Check whether the presentation is write protected.
+ if (writeProtected)
+ {
+ //Removes the write protection for the presentation instance.
+ pptxDoc.RemoveWriteProtection();
+ }
+ //Saves the presentation.
+ pptxDoc.Save("Output.pptx");
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Output.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Closes the presentation
-pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Open the PowerPoint presentation
-IPresentation pptxDoc = Presentation.Open("Sample.pptx");
-//Gets whether the presentation is write Protected. Read - only.
-bool writeProtected = pptxDoc.IsWriteProtected;
-//Checks whether the presentation is write protected
-if (writeProtected)
+//Open the PowerPoint presentation.
+using (IPresentation pptxDoc = Presentation.Open("Sample.pptx"))
{
- //Removes the write protection for presentation instance.
- pptxDoc.RemoveWriteProtection();
+ //Gets whether the presentation is write protected (read-only).
+ bool writeProtected = pptxDoc.IsWriteProtected;
+ //Check whether the presentation is write protected.
+ if (writeProtected)
+ {
+ //Removes the write protection for the presentation instance.
+ pptxDoc.RemoveWriteProtection();
+ }
+ //Saves the presentation.
+ pptxDoc.Save("Output.pptx");
}
-//Saves the modified cloned PowerPoint presentation
-pptxDoc.Save("Output.pptx");
-//Close the presentation instance
-pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Open the PowerPoint presentation
-IPresentation pptxDoc = Presentation.Open("Sample.pptx");
-'Gets whether the presentation is write Protected. Read - only.
-bool writeProtected = pptxDoc.IsWriteProtected;
-'Checks whether the presentation is write protected
-if (writeProtected)
-{
- 'Removes the write protection for presentation instance.
- pptxDoc.RemoveWriteProtection();
-}
-'Saves the modified cloned PowerPoint presentation
-pptxDoc.Save("Output.pptx")
-'Close the presentation instance
-pptxDoc.Close()
+'Open the PowerPoint presentation.
+Using pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
+ 'Gets whether the presentation is write protected (read-only).
+ Dim writeProtected As Boolean = pptxDoc.IsWriteProtected
+ 'Check whether the presentation is write protected.
+ If writeProtected Then
+ 'Removes the write protection for the presentation instance.
+ pptxDoc.RemoveWriteProtection()
+ End If
+ 'Saves the presentation.
+ pptxDoc.Save("Output.pptx")
+End Using
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Security/Remove-write-protection).
-N> 1. In Xamarin applications, Encryption, Decryption and Write Protection features are supported from the target framework .NET Standard 2.0 version onwards.
-N> 2. For ASP.NET Core, Encryption, Decryption and Write Protection features are supported from the .NET Core 2.0 version onwards.
+N> 1. In Xamarin applications, encryption, decryption, and write protection are supported in .NET Standard 2.0 and later.
+N> 2. In ASP.NET Core, encryption, decryption, and write protection are supported in .NET Core 2.0 and later.
## Online Demo
-* Explore how to set write protection for a PowerPoint presentation with a password using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/writeprotection#/tailwind).
-* See how to encrypt and decrypt the PowerPoint presentation using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/encryptanddecrypt#/tailwind).
\ No newline at end of file
+* Learn how to set write protection for a PowerPoint presentation with a password using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/writeprotection#/tailwind).
+* See how to encrypt and decrypt a PowerPoint presentation using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/encryptanddecrypt#/tailwind).
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/SmartArt.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/SmartArt.md
index 685514ced5..9f598d144b 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/SmartArt.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/SmartArt.md
@@ -1,11 +1,11 @@
---
title: Working with SmartArt in PowerPoint Presentation | Syncfusion
-description: Learn how to create, edit, and format PowerPoint smartArt in C# using .NET PowerPoint library without Microsoft PowerPoint or interop dependencies.
+description: Learn how to create, edit, and format SmartArt diagrams in PowerPoint presentations using the Syncfusion .NET PowerPoint library without Microsoft PowerPoint.
platform: document-processing
control: Presentation
documentation: UG
---
-# Working with PowerPoint SmartArt
+# Working with SmartArt in PowerPoint Presentation
A [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) diagram is a visual representation of your information, to effectively communicate your ideas in presentations. You can add and modify the [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) diagrams in PowerPoint presentations using Essential® Presentation library.
@@ -14,7 +14,7 @@ To quickly start creating a SmartArt in a PowerPoint Presentation using .NET Pow
## Adding SmartArt to a Slide
-You can add any of the predefined [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) diagrams to PowerPoint Presentation. The following code example demonstrates adding a [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) to a Slide.
+You can add any of the predefined [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) diagrams to PowerPoint Presentation. The following code example demonstrates adding a [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) to a slide.
{% tabs %}
@@ -23,11 +23,10 @@ You can add any of the predefined [SmartArt](https://help.syncfusion.com/cr/docu
IPresentation pptxDoc = Presentation.Create();
//Add a blank slide to the Presentation
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Add a BasicBlockList SmartArt to the slide at the specified size and position.
-ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.BasicBlockList, 0, 0, 640, 426);
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("SmartArt.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Add a BasicBlockList SmartArt to the slide at the specified size and position (x, y, width, height in points).
+ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.BasicBlockList, 0, 0, 640, 426);
+//Save the PowerPoint Presentation
+pptxDoc.Save("SmartArt.pptx");
//Close the Presentation
pptxDoc.Close();
{% endhighlight %}
@@ -38,7 +37,7 @@ IPresentation pptxDoc = Presentation.Create();
//Add a blank slide to the Presentation
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Add a BasicBlockList SmartArt to the slide at the specified size and position.
-ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.BasicBlockList, 0, 0, 640, 426);
+ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.BasicBlockList, 0, 0, 640, 426);
//Save the Presentation
pptxDoc.Save("SmartArt.pptx");
//Close the Presentation
@@ -66,6 +65,8 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
You can add a new node to the [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) diagram. The following code example demonstrates the same.
+For information about identifying whether a node is an assistant node, see [Assistant nodes in SmartArt](#assistant-nodes-in-smartart).
+
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/SmartArts/Add-SmartArt-node/.NET/Add-SmartArt-node/Program.cs" %}
@@ -75,13 +76,12 @@ IPresentation pptxDoc = Presentation.Create();
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Add a SmartArt to the slide at the specified size and position
ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.AlternatingHexagons, 0, 0, 640, 426);
-// Add a new node to the SmartArt.
+//Add a new node to the SmartArt.
ISmartArtNode newNode = smartArt.Nodes.Add();
-// Set the text to the newly added node.
+//Set the text of the newly added node.
newNode.TextBody.AddParagraph("New main node added.");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("SmartArt.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("SmartArt.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
@@ -93,9 +93,9 @@ IPresentation pptxDoc = Presentation.Create();
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Add a SmartArt to the slide at the specified size and position
ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.AlternatingHexagons, 0, 0, 640, 426);
-// Add a new node to the SmartArt.
+//Add a new node to the SmartArt.
ISmartArtNode newNode = smartArt.Nodes.Add();
-// Set the text to the newly added node.
+//Set the text of the newly added node.
newNode.TextBody.AddParagraph("New main node added.");
//Save the Presentation.
pptxDoc.Save("SmartArt.pptx");
@@ -112,7 +112,7 @@ Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
Dim smartArt As ISmartArt = slide.Shapes.AddSmartArt(SmartArtType.AlternatingHexagons, 0, 0, 640, 426)
'Add a new node to the SmartArt.
Dim newNode As ISmartArtNode = smartArt.Nodes.Add()
-'Set the text to the newly added node.
+'Set the text of the newly added node.
newNode.TextBody.AddParagraph("New main node added.")
'Save the Presentation.
pptxDoc.Save("SmartArt.pptx")
@@ -125,7 +125,7 @@ pptxDoc.Close()
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/SmartArts/Add-SmartArt-node).
-In [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) diagrams, you can also add nodes to several nested levels. The maximum limit of nested levels may vary based on SmartArt types. The following code example demonstrates adding nested level nodes in a [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html).
+In [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) diagrams, you can also add nodes to several nested levels. The maximum number of nested levels varies by SmartArt type. The following code example demonstrates adding nested level nodes in a [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html).
{% tabs %}
@@ -136,15 +136,14 @@ IPresentation pptxDoc = Presentation.Create();
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Add a SmartArt to the slide at the specified size and position.
ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.AlternatingHexagons, 0, 0, 640, 426);
-// Add a new node to the SmartArt.
+//Add a new node to the SmartArt.
ISmartArtNode newNode = smartArt.Nodes.Add();
-// Add a child node to the SmartArt node
+//Add a child node to the SmartArt node
ISmartArtNode childNode = newNode.ChildNodes.Add();
-// Set a text to newly added child node.
+//Set the text of the newly added child node.
childNode.TextBody.AddParagraph("Child node of the existing node.");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("SmartArt.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("SmartArt.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
@@ -156,11 +155,11 @@ IPresentation pptxDoc = Presentation.Create();
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Add a SmartArt to the slide at the specified size and position.
ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.AlternatingHexagons, 0, 0, 640, 426);
-// Add a new node to the SmartArt.
+//Add a new node to the SmartArt.
ISmartArtNode newNode = smartArt.Nodes.Add();
-// Add a child node to the SmartArt node
+//Add a child node to the SmartArt node
ISmartArtNode childNode = newNode.ChildNodes.Add();
-// Set a text to newly added child node.
+//Set the text of the newly added child node.
childNode.TextBody.AddParagraph("Child node of the existing node.");
//Save the Presentation.
pptxDoc.Save("SmartArt.pptx");
@@ -179,7 +178,7 @@ Dim smartArt As ISmartArt = slide.Shapes.AddSmartArt(SmartArtType.AlternatingHex
Dim newNode As ISmartArtNode = smartArt.Nodes.Add()
'Add a child node to the SmartArt node
Dim childNode As ISmartArtNode = newNode.ChildNodes.Add()
-'Set a text to newly added child node.
+'Set the text of the newly added child node.
childNode.TextBody.AddParagraph("Child node of the existing node.")
'Save the Presentation.
pptxDoc.Save("SmartArt.pptx")
@@ -193,49 +192,47 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Modifying SmartArt appearance
-You can modify the [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) appearance by modifying the fill type, color, transparency etc. The below code example demonstrates modifying the appearance of [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) nodes.
+You can modify the [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) appearance by modifying the fill type, color, transparency, and so on. The following code example demonstrates modifying the appearance of [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) nodes.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/SmartArts/Modify-SmartArt-appearance/.NET/Modify-SmartArt-appearance/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+//Open a PowerPoint Presentation
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
//Get the Slide from Presentation
ISlide slide = pptxDoc.Slides[0];
//Get the SmartArt from Slide.
ISmartArt smartArt = slide.Shapes[0] as ISmartArt;
//Get the first node
ISmartArtNode firstNode = smartArt.Nodes[0];
-// Set the text content of node.
+//Set the text content of the node.
firstNode.TextBody.AddParagraph("First Node");
-//Set the fill type of node.
+//Set the fill type of the node.
firstNode.Shapes[0].Fill.FillType = FillType.Solid;
-// Set the fill color of node.
+//Set the fill color of the node.
firstNode.Shapes[0].Fill.SolidFill.Color = ColorObject.GreenYellow;
//Set transparency value of fill
firstNode.Shapes[0].Fill.SolidFill.Transparency = 30;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("SmartArt.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("SmartArt.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
//Open a PowerPoint Presentation
-IPresentation pptxDoc = Presentation.Open("SampleDocument.pptx");
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
//Get the Slide from Presentation
ISlide slide = pptxDoc.Slides[0];
//Get the SmartArt from Slide.
ISmartArt smartArt = slide.Shapes[0] as ISmartArt;
//Get the first node
ISmartArtNode firstNode = smartArt.Nodes[0];
-// Set the text content of node.
+//Set the text content of the node.
firstNode.TextBody.AddParagraph("First Node");
-//Set the fill type of node.
+//Set the fill type of the node.
firstNode.Shapes[0].Fill.FillType = FillType.Solid;
-// Set the fill color of node.
+//Set the fill color of the node.
firstNode.Shapes[0].Fill.SolidFill.Color = ColorObject.GreenYellow;
//Set transparency value of fill
firstNode.Shapes[0].Fill.SolidFill.Transparency = 30;
@@ -247,18 +244,18 @@ pptxDoc.Close();
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
'Open a PowerPoint Presentation
-Dim pptxDoc As IPresentation = Presentation.Open("SampleDocument.pptx")
+Dim pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
'Get the Slide from Presentation
Dim slide As ISlide = pptxDoc.Slides(0)
'Get the SmartArt from Slide.
Dim smartArt As ISmartArt = TryCast(slide.Shapes(0), ISmartArt)
'Get the first node
Dim firstNode As ISmartArtNode = smartArt.Nodes(0)
-' Set the text content of node.
+'Set the text content of the node.
firstNode.TextBody.AddParagraph("First Node")
-'Set the fill type of node.
+'Set the fill type of the node.
firstNode.Shapes(0).Fill.FillType = FillType.Solid
-' Set the fill color of node.
+'Set the fill color of the node.
firstNode.Shapes(0).Fill.SolidFill.Color = ColorObject.GreenYellow
'Set transparency value of fill
firstNode.Shapes(0).Fill.SolidFill.Transparency = 30
@@ -274,15 +271,15 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Iterating through child nodes of an existing SmartArt
-You can iterate through the child nodes and access the properties of each node in a [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html). The following code example demonstrates accessing and modifying the text content of node.
+You can iterate through the child nodes and access the properties of each node in a [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html). The following code example demonstrates accessing and modifying the text content of a node.
+
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/SmartArts/Iterate-child-nodes-of-existing-SmartArt/.NET/Iterate-child-nodes-of-existing-SmartArt/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Traverse through shape in the first slide.
+//Open a PowerPoint Presentation
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
+//Traverse through shapes in the first slide.
foreach (IShape shape in pptxDoc.Slides[0].Shapes)
{
if (shape is ISmartArt)
@@ -291,22 +288,23 @@ foreach (IShape shape in pptxDoc.Slides[0].Shapes)
foreach (ISmartArtNode mainNode in (shape as ISmartArt).Nodes)
{
if (mainNode.TextBody.Text == "Old Content")
- //Change the node content
- mainNode.TextBody.Paragraphs[0].TextParts[0].Text = "New Content";
+ {
+ //Change the node content
+ mainNode.TextBody.Paragraphs[0].TextParts[0].Text = "New Content";
+ }
}
}
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("SmartArt.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("SmartArt.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
//Open a PowerPoint Presentation
-IPresentation pptxDoc = Presentation.Open("SampleDocument.pptx");
-//Traverse through shape in the first slide.
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
+//Traverse through shapes in the first slide.
foreach (IShape shape in pptxDoc.Slides[0].Shapes)
{
if (shape is ISmartArt)
@@ -315,8 +313,10 @@ foreach (IShape shape in pptxDoc.Slides[0].Shapes)
foreach (ISmartArtNode mainNode in (shape as ISmartArt).Nodes)
{
if (mainNode.TextBody.Text == "Old Content")
- //Change the node content
- mainNode.TextBody.Paragraphs[0].TextParts[0].Text = "New Content";
+ {
+ //Change the node content
+ mainNode.TextBody.Paragraphs[0].TextParts[0].Text = "New Content";
+ }
}
}
}
@@ -328,8 +328,8 @@ pptxDoc.Close();
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
'Open a PowerPoint Presentation
-Dim pptxDoc As IPresentation = Presentation.Open("SampleDocument.pptx")
-'Traverse through shape in the first slide.
+Dim pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
+'Traverse through shapes in the first slide.
For Each shape As IShape In pptxDoc.Slides(0).Shapes
If TypeOf shape Is ISmartArt Then
'Traverse through all nodes inside SmartArt
@@ -358,30 +358,28 @@ You can remove a node from the [SmartArt](https://help.syncfusion.com/cr/documen
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/SmartArts/Remove-child-node-from-existing-SmartArt/.NET/Remove-child-node-from-existing-SmartArt/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+//Open a PowerPoint Presentation
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
//Get the first slide from the Presentation.
ISlide slide = pptxDoc.Slides[0];
//Get the SmartArt from slide.
ISmartArt smartArt = slide.Shapes[0] as ISmartArt;
//Remove a node at the specified index.
smartArt.Nodes.RemoveAt(4);
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("SmartArt.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("SmartArt.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
//Open a PowerPoint Presentation
-IPresentation pptxDoc = Presentation.Open("SampleDocument.pptx");
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
//Get the first slide from the Presentation.
ISlide slide = pptxDoc.Slides[0];
//Get the SmartArt from slide.
ISmartArt smartArt = slide.Shapes[0] as ISmartArt;
-//Remove a node at the specified index.
+//Remove a node at the specified (zero-based) index.
smartArt.Nodes.RemoveAt(4);
//Save the Presentation.
pptxDoc.Save("SmartArt.pptx");
@@ -391,7 +389,7 @@ pptxDoc.Close();
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
'Open a PowerPoint Presentation
-Dim pptxDoc As IPresentation = Presentation.Open("SampleDocument.pptx")
+Dim pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
'Get the first slide from the Presentation.
Dim slide As ISlide = pptxDoc.Slides(0)
'Get the SmartArt from slide.
@@ -410,7 +408,7 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Assistant nodes in SmartArt
-You can check whether a node is an assistant or not. Also you can change a node as assistant node or revert an assistant node to normal node. The following code example demonstrates making an assistant node as normal node.
+You can check whether a node is an assistant or not, change a node to an assistant node, or revert an assistant node to a normal node. The following code example demonstrates changing an assistant node to a normal node.
{% tabs %}
@@ -424,14 +422,15 @@ ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.OrganizationChart, 0,
//Traverse through all nodes of the SmartArt.
foreach (ISmartArtNode node in smartArt.Nodes)
{
- //Check if the node is assistant or not.
+ //Check if the node is an assistant or not.
if (node.IsAssistant)
- //Set the assistant node to false.
+ {
+ //Set the IsAssistant property to false.
node.IsAssistant = false;
+ }
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("SmartArt.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("SmartArt.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
@@ -439,7 +438,6 @@ pptxDoc.Close();
{% highlight c# tabtitle="C# [Windows-specific]" %}
// Create an instance of PowerPoint Presentation
IPresentation pptxDoc = Presentation.Create();
-
//Add a blank slide to the Presentation
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Add a SmartArt to the slide at the specified size and position
@@ -447,13 +445,15 @@ ISmartArt smartArt = slide.Shapes.AddSmartArt(SmartArtType.OrganizationChart, 0,
//Traverse through all nodes of the SmartArt.
foreach (ISmartArtNode node in smartArt.Nodes)
{
- //Check if the node is assistant or not.
+ //Check if the node is an assistant or not.
if (node.IsAssistant)
- //Set the assistant node to false.
- node.IsAssistant = false;
+ {
+ //Set the IsAssistant property to false.
+ node.IsAssistant = false;
+ }
}
//Save the Presentation.
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("SmartArt.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
@@ -467,14 +467,14 @@ Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
Dim smartArt As ISmartArt = slide.Shapes.AddSmartArt(SmartArtType.OrganizationChart, 0, 0, 640, 426.96)
'Traverse through all nodes of the SmartArt.
For Each node As ISmartArtNode In smartArt.Nodes
- 'Check if the node is assistant or not.
+ 'Check if the node is an assistant or not.
If node.IsAssistant Then
- 'Set the assistant node to false.
+ 'Set the IsAssistant property to False.
node.IsAssistant = False
End If
Next
'Save the Presentation.
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("SmartArt.pptx")
'Close the Presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -483,10 +483,12 @@ pptxDoc.Close()
## Limitations
-The modifications in a [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) (like add/remove nodes, modify position and size of nodes etc., which involve [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) layout changes) done by Essential® Presentation will not reflected in Image and PDF conversion. Whereas layout changes will be reflected properly in the generated PPTX file when opened using Microsoft PowerPoint.
+> Modifications in a [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) (such as adding/removing nodes, modifying the position and size of nodes, and other changes that involve [SmartArt](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISmartArt.html) layout changes) made by Essential® Presentation will not be reflected in image and PDF conversion. The layout changes will be reflected properly in the generated PPTX file when opened using Microsoft PowerPoint.
## Supported SmartArt layout types
+For the complete list of supported layout types, see the [SmartArtType](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.SmartArtType.html) API reference. The following are some commonly used types:
+
1. Basic Block List
2. Alternating Hexagons
3. Picture Caption List
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Supported-and-Unsupported-Features.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Supported-and-Unsupported-Features.md
index bfdf8c2204..36d91ed8dd 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Supported-and-Unsupported-Features.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Supported-and-Unsupported-Features.md
@@ -1,6 +1,6 @@
---
title: Supported and Unsupported Features | Syncfusion
-description: Know more about the File Format’s supported and unsupported features of Presentation Library and its various platforms.
+description: Know more about the supported and unsupported features of the Syncfusion Presentation (PowerPoint) library and its various platforms.
platform: document-processing
control: Presentation
documentation: UG
@@ -688,3 +688,28 @@ Yes
+
+## Platform-Specific Setup
+
+Install and configure the Presentation library on the platform you target. Each guide covers prerequisites, NuGet packages, and a working code sample.
+
+- [Windows Forms](create-read-edit-powerpoint-files-in-windows-forms)
+- [WPF](create-read-edit-powerpoint-files-in-wpf)
+- [ASP.NET Web Forms](create-read-edit-powerpoint-files-in-asp-net-web-forms)
+- [ASP.NET MVC](create-read-edit-powerpoint-files-in-asp-net-mvc)
+- [ASP.NET Core](create-read-edit-powerpoint-files-in-asp-net-core-c-sharp)
+- [.NET MAUI](create-read-edit-powerpoint-files-in-maui)
+- [WinUI](create-read-edit-powerpoint-files-in-winui)
+- [Xamarin](create-read-edit-powerpoint-files-in-xamarin)
+- [UWP](create-read-edit-powerpoint-files-in-uwp)
+- [Blazor](create-read-edit-powerpoint-files-in-blazor)
+
+## See Also
+
+- [Getting Started with the Presentation Library](Getting-Started)
+- [NuGet Packages Required](NuGet-Packages-Required)
+- [Assemblies Required](Assemblies-Required)
+- [Document Object Model](Document-Object-Model)
+- [Feature Matrix](Feature-Matrix)
+- [Loading and Saving the Presentation](Loading-and-Saving-the-Presentation)
+- [FAQ](FAQ)
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Animation.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Animation.md
index a6b8cfc5ce..821356dfff 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Animation.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Animation.md
@@ -827,8 +827,10 @@ Yes
-
+
Horizontal
Vertical
+
@@ -948,8 +950,10 @@ Yes
-
+
In
Out
+
@@ -1029,10 +1033,12 @@ Yes
-
+
Instant
Gradual
GradualAndCycleClockwise
GradualAndCycleCounterClockwise
+
@@ -1052,8 +1058,10 @@ Yes
-
+
Instant
Gradual
+
@@ -1073,10 +1081,12 @@ Yes
-
+
Instant
Gradual
GradualAndCycleClockwise
GradualAndCycleCounterClockwise
+
@@ -1096,8 +1106,10 @@ Yes
-
+
Instant
Gradual
+
@@ -1117,9 +1129,11 @@ Yes
-
+
FontBold
FontItalic
FontUnderline
+
@@ -1139,10 +1153,12 @@ Yes
-
+
Instant
Gradual
GradualAndCycleClockwise
GradualAndCycleCounterClockwise
+
@@ -1162,8 +1178,10 @@ Yes
-
+
Vertical
Across
+
@@ -1183,8 +1201,10 @@ Yes
-
+
In
Out
+
@@ -1344,10 +1364,12 @@ Yes
-
+
Right
Left
Top
Bottom
+
@@ -1467,8 +1489,10 @@ Yes
-
+
In
Out
+
@@ -1588,8 +1612,10 @@ Yes
-
+
None
Center
+
@@ -1709,6 +1735,7 @@ Yes
-
+
Right
Left
Top
@@ -1717,6 +1744,7 @@ Yes
TopRight
BottomLeft
BottomRight
+
@@ -3176,10 +3204,12 @@ Yes
-
+
Bottom
Left
Right
Top
+
@@ -3219,8 +3249,10 @@ Yes
-
+
In
Out
+
@@ -3240,8 +3272,10 @@ Yes
-
+
Horizontal
Vertical
+
@@ -3401,10 +3435,12 @@ Yes
-
+
HorizontalIn
HorizontalOut
VerticalIn
VerticalOut
+
@@ -3424,11 +3460,13 @@ Yes
-
+
Right
Left
Top
Bottom
Across
+
@@ -3448,10 +3486,12 @@ Yes
-
+
UpLeft
UpRight
DownLeft
DownRight
+
@@ -3511,8 +3551,10 @@ Yes
-
+
Horizontal
Vertical
+
@@ -3672,11 +3714,13 @@ Yes
-
+
Wheel1
Wheel2
Wheel3
Wheel4
Wheel8
+
@@ -3716,10 +3760,12 @@ Yes
-
+
Top
Right
Bottom
Left
+
@@ -3759,6 +3805,7 @@ Yes
-
+
In
Out
InCenter - only for Entrance type
@@ -3767,6 +3814,7 @@ Yes
InSlightly
OutCenter - only for Exit type
InBottom - only for Exit type
+
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Hyperlinks.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Hyperlinks.md
index e9be304ebd..57cb4c8f90 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Hyperlinks.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Hyperlinks.md
@@ -7,74 +7,73 @@ documentation: UG
---
# Working with Hyperlinks
-The Hyperlink is a reference to data that can link to external contents like images, files, webpage, and more. In PowerPoint slide, a hyperlink may target to any one of the following sources:
+A hyperlink is a reference that links to external content such as images, files, web pages, and more. In a PowerPoint slide, a hyperlink can target any of the following:
-* Webpage: Represents the web content.
-* File: Represents the file in some location.
-* Email: Represents an Email.
-* Slide: Represents the slide in the same document.
+* Webpage: Represents web content.
+* File: Represents a file in some location.
+* Email: Represents an email address.
+* Slide: Represents a slide in the same document.
## Add hyperlink to PowerPoint shape
-You can navigate to any slide of the same PowerPoint document. The following code example demonstrates how to add the hyperlink for internal document navigation.
+You can navigate to any slide of the same PowerPoint document by attaching a slide-target hyperlink to a shape. The following code example demonstrates how to add a hyperlink for internal document navigation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Hyperlinks/Add-hyperlink-to-PowerPoint-shape/.NET/Add-hyperlink-to-PowerPoint-shape/Program.cs" %}
-//Creates the PowerPoint Presentation instance
+//Create a new PowerPoint Presentation instance.
IPresentation pptxDoc = Presentation.Create();
-//Adds a slide of blank layout type
+//Add a slide with a blank layout to the presentation.
ISlide slide1 = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Adds one more slide.
+//Add a second slide that the hyperlink will target.
ISlide slide2 = pptxDoc.Slides.Add();
-//Adds normal shape to the first slide
+//Add a rectangle shape to the first slide.
IShape shape = slide1.Shapes.AddShape(AutoShapeType.Rectangle, 100, 20, 200, 100);
-//Sets the target slide index (index is valid from 0 to slides count – 1) as hyperlink
+//Set the target slide index (index is valid from 0 to slides count – 1) as the hyperlink target.
IHyperLink hyperLink = shape.SetHyperlink("1");
-//Gets the target slide of the hyperlink
+//Get the target slide resolved by the hyperlink.
ISlide targetSlide = hyperLink.TargetSlide;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint Presentation to a file.
+pptxDoc.Save("Sample.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Creates the PowerPoint Presentation instance
+//Create a new PowerPoint Presentation instance.
IPresentation pptxDoc = Presentation.Create();
-//Adds a slide of blank layout type
+//Add a slide with a blank layout to the presentation.
ISlide slide1 = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Adds one more slide.
+//Add a second slide that the hyperlink will target.
ISlide slide2 = pptxDoc.Slides.Add();
-//Adds normal shape to the first slide
+//Add a rectangle shape to the first slide.
IShape shape = slide1.Shapes.AddShape(AutoShapeType.Rectangle, 100, 20, 200, 100);
-//Sets the target slide index (index is valid from 0 to slides count – 1) as hyperlink
+//Set the target slide index (index is valid from 0 to slides count – 1) as the hyperlink target.
IHyperLink hyperLink = shape.SetHyperlink("1");
-//Gets the target slide of the hyperlink
+//Get the target slide resolved by the hyperlink.
ISlide targetSlide = hyperLink.TargetSlide;
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("Sample.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Creates the PowerPoint Presentation instance
-Dim pptxDoc As IPresentation = Presentation.Create()
-'Adds a slide of blank layout type
-Dim slide1 As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
-'Adds one more slide.
-Dim slide2 As ISlide = pptxDoc.Slides.Add()
-'Adds normal shape to the first slide
-Dim shape As IShape = slide1.Shapes.AddShape(AutoShapeType.Rectangle, 100, 20, 200, 100)
-'Sets the target slide index (index is valid from 0 to slides count – 1) as hyperlink
+'Create a new PowerPoint Presentation instance.
+Dim pptxDoc As IPresentation = Presentation.Create()
+'Add a slide with a blank layout to the presentation.
+Dim slide1 As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
+'Add a second slide that the hyperlink will target.
+Dim slide2 As ISlide = pptxDoc.Slides.Add()
+'Add a rectangle shape to the first slide.
+Dim shape As IShape = slide1.Shapes.AddShape(AutoShapeType.Rectangle, 100, 20, 200, 100)
+'Set the target slide index (index is valid from 0 to slides count – 1) as the hyperlink target.
Dim hyperLink As IHyperLink = shape.SetHyperlink("1")
-'Gets the target slide of the hyperlink
+'Get the target slide resolved by the hyperlink.
Dim targetSlide As ISlide = hyperLink.TargetSlide
-'Save the presentation
+'Save the presentation.
pptxDoc.Save("Sample.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -84,67 +83,65 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Add hyperlink to text
-You can navigate to the specified URL from a PowerPoint slide. The following code example demonstrates how to add the web URL as a hyperlink.
+You can link a shape's text to a specified URL within a PowerPoint slide. The following code example demonstrates how to add a web URL as a hyperlink.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Hyperlinks/Add-hyperlink-to-PowerPoint-text/.NET/Add-hyperlink-to-PowerPoint-text/Program.cs" %}
-//Creates the PowerPoint Presentation instance
+//Create a new PowerPoint Presentation instance.
IPresentation pptxDoc = Presentation.Create();
-//Adds a slide of blank layout type
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Adds normal shape to the first slide
+//Add a rectangle shape to the slide.
IShape shape = slide.Shapes.AddShape(AutoShapeType.Rectangle, 100, 20, 200, 100);
-//Adds paragraph into the shape
+//Add a paragraph into the shape.
IParagraph paragraph = shape.TextBody.AddParagraph();
-//Adds text to the TextPart
+//Add text to the TextPart.
paragraph.Text = "Syncfusion";
-//Sets the web hyperlink to the TextPart
+//Set the web hyperlink to the TextPart.
IHyperLink hyperLink = paragraph.TextParts[0].SetHyperlink("http://www.syncfusion.com");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint Presentation to a file.
+pptxDoc.Save("Sample.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Creates the PowerPoint Presentation instance
+//Create a new PowerPoint Presentation instance.
IPresentation pptxDoc = Presentation.Create();
-//Adds a slide of blank layout type
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Adds normal shape to the first slide
+//Add a rectangle shape to the slide.
IShape shape = slide.Shapes.AddShape(AutoShapeType.Rectangle, 100, 20, 200, 100);
-//Adds paragraph into the shape
+//Add a paragraph into the shape.
IParagraph paragraph = shape.TextBody.AddParagraph();
-//Adds text to the TextPart
+//Add text to the TextPart.
paragraph.Text = "Syncfusion";
-//Sets the web hyperlink to the TextPart
+//Set the web hyperlink to the TextPart.
IHyperLink hyperLink = paragraph.TextParts[0].SetHyperlink("http://www.syncfusion.com");
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("Sample.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Creates the PowerPoint Presentation instance
-Dim pptxDoc As IPresentation = Presentation.Create()
-'Adds a slide of blank layout type
-Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
-'Adds normal shape to the first slide
-Dim shape As IShape = slide.Shapes.AddShape(AutoShapeType.Rectangle,100,20,200,100)
-'Adds paragraph into the shape
-Dim paragraph As IParagraph = shape.TextBody.AddParagraph()
-'Adds text to the TextPart
+'Create a new PowerPoint Presentation instance.
+Dim pptxDoc As IPresentation = Presentation.Create()
+'Add a slide with a blank layout to the presentation.
+Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
+'Add a rectangle shape to the slide.
+Dim shape As IShape = slide.Shapes.AddShape(AutoShapeType.Rectangle, 100, 20, 200, 100)
+'Add a paragraph into the shape.
+Dim paragraph As IParagraph = shape.TextBody.AddParagraph()
+'Add text to the TextPart.
paragraph.Text = "Syncfusion"
-'Sets the web hyperlink to the TextPart
-Dim hyperLink As IHyperLink = paragraph.TextParts(0).SetHyperlink("http://www.syncfusion.com")
-'Save the presentation
+'Set the web hyperlink to the TextPart.
+Dim hyperLink As IHyperLink = paragraph.TextParts(0).SetHyperlink("http://www.syncfusion.com")
+'Save the presentation.
pptxDoc.Save("Sample.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
-
{% endhighlight %}
{% endtabs %}
@@ -153,59 +150,58 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Add hyperlink to picture
-You can add the email link to the shape or text on a PowerPoint slide. The following code example demonstrates how to add an email hyperlink to the picture.
+The following code example demonstrates how to add an email hyperlink to a picture.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Hyperlinks/Add-hyperlink-to-PowerPoint-picture/.NET/Add-hyperlink-to-PowerPoint-picture/Program.cs" %}
-//Creates the PowerPoint Presentation instance
+//Create a new PowerPoint Presentation instance.
IPresentation pptxDoc = Presentation.Create();
-//Adds a slide of blank layout type
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Gets a picture as stream
+//Open the picture file as a stream.
FileStream pictureStream = new FileStream("Image.png", FileMode.Open);
-//Adds the picture to a slide by specifying its size and position.
+//Add the picture to the slide by specifying its size and position.
IPicture picture = slide.Pictures.AddPicture(pictureStream, 0, 0, 250, 250);
-//Sets the Email hyperlink to the picture
+//Set the email hyperlink to the picture.
IHyperLink hyperLink = (picture as IShape).SetHyperlink("mailto:sales@syncfusion.com");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint Presentation to a file.
+pptxDoc.Save("Sample.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Creates the PowerPoint Presentation instance
+//Create a new PowerPoint Presentation instance.
IPresentation pptxDoc = Presentation.Create();
-//Adds a slide of blank layout type
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Gets a picture as stream
+//Open the picture file as a stream.
Stream pictureStream = File.Open("Image.png", FileMode.Open);
-//Adds the picture to a slide by specifying its size and position.
+//Add the picture to the slide by specifying its size and position.
IPicture picture = slide.Pictures.AddPicture(pictureStream, 0, 0, 250, 250);
-//Sets the Email hyperlink to the picture
+//Set the email hyperlink to the picture.
IHyperLink hyperLink = (picture as IShape).SetHyperlink("mailto:sales@syncfusion.com");
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("Sample.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Creates the PowerPoint Presentation instance
-Dim pptxDoc As IPresentation = Presentation.Create()
-'Adds a slide of blank layout type
-Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
-'Gets a picture as stream
-Dim pictureStream As Stream = File.Open("Image.png",FileMode.Open)
-'Adds the picture to a slide by specifying its size and position
-Dim picture As IPicture = slide.Pictures.AddPicture(pictureStream, 0, 0, 250, 250)
-'Sets the Email hyperlink to the picture
-Dim hyperLink As IHyperLink = TryCast(picture, IShape).SetHyperlink("mailto:sales@syncfusion.com")
-'Save the presentation
+'Create a new PowerPoint Presentation instance.
+Dim pptxDoc As IPresentation = Presentation.Create()
+'Add a slide with a blank layout to the presentation.
+Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
+'Open the picture file as a stream.
+Dim pictureStream As Stream = File.Open("Image.png", FileMode.Open)
+'Add the picture to the slide by specifying its size and position.
+Dim picture As IPicture = slide.Pictures.AddPicture(pictureStream, 0, 0, 250, 250)
+'Set the email hyperlink to the picture.
+Dim hyperLink As IHyperLink = TryCast(picture, IShape).SetHyperlink("mailto:sales@syncfusion.com")
+'Save the presentation.
pptxDoc.Save("Sample.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -213,61 +209,61 @@ pptxDoc.Close()
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Hyperlinks/Add-hyperlink-to-PowerPoint-picture).
+### Add file hyperlink to picture
+
You can open external documents like images, text files, PDF, etc. from the PowerPoint slide. The following code example demonstrates how to add a file hyperlink to the picture.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Hyperlinks/Add-file-hyperlink-to-picture/.NET/Add-file-hyperlink-to-picture/Program.cs" %}
-//Creates the PowerPoint Presentation instance
+//Create a new PowerPoint Presentation instance.
IPresentation pptxDoc = Presentation.Create();
-//Adds a slide of blank layout type
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Gets a picture as stream
+//Open the picture file as a stream.
FileStream pictureStream = new FileStream("Image.png", FileMode.Open);
-//Adds the picture to a slide by specifying its size and position
+//Add the picture to the slide by specifying its size and position.
IPicture picture = slide.Pictures.AddPicture(pictureStream, 0, 0, 250, 250);
-//Sets the File path as hyperlink
+//Set the file path as the hyperlink target.
IHyperLink hyperLink = (picture as IShape).SetHyperlink("WordDocument.docx");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint Presentation to a file.
+pptxDoc.Save("Sample.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Creates the PowerPoint Presentation instance
+//Create a new PowerPoint Presentation instance.
IPresentation pptxDoc = Presentation.Create();
-//Adds a slide of blank layout type
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Gets a picture as stream
+//Open the picture file as a stream.
Stream pictureStream = File.Open("Image.png", FileMode.Open);
-//Adds the picture to a slide by specifying its size and position
+//Add the picture to the slide by specifying its size and position.
IPicture picture = slide.Pictures.AddPicture(pictureStream, 0, 0, 250, 250);
-//Sets the File path as hyperlink
+//Set the file path as the hyperlink target.
IHyperLink hyperLink = (picture as IShape).SetHyperlink("WordDocument.docx");
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("Sample.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Creates the PowerPoint Presentation instance
-Dim pptxDoc As IPresentation = Presentation.Create()
-'Adds a slide of blank layout type
-Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
-'Gets a picture as stream
-Dim pictureStream As Stream = File.Open("Image.png",FileMode.Open)
-'Adds the picture to a slide by specifying its size and position
-Dim picture As IPicture = slide.Pictures.AddPicture(pictureStream, 0, 0, 250, 250)
-'Sets the Email hyperlink to the picture
+'Create a new PowerPoint Presentation instance.
+Dim pptxDoc As IPresentation = Presentation.Create()
+'Add a slide with a blank layout to the presentation.
+Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
+'Open the picture file as a stream.
+Dim pictureStream As Stream = File.Open("Image.png", FileMode.Open)
+'Add the picture to the slide by specifying its size and position.
+Dim picture As IPicture = slide.Pictures.AddPicture(pictureStream, 0, 0, 250, 250)
+'Set the file path as the hyperlink target.
Dim hyperLink As IHyperLink = TryCast(picture, IShape).SetHyperlink("WordDocument.docx")
-'Save the presentation
+'Save the presentation.
pptxDoc.Save("Sample.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
-
{% endhighlight %}
{% endtabs %}
@@ -276,80 +272,82 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
N> The above link makes use of the absolute path of the file for navigation. So, moving the files to another machine or location may lead to file not found error in PowerPoint reader applications.
-## Gets a hyperlink details from text and shape
+## Get hyperlink details from text and shape
-You can get the hyperlink details from the shape or text in a PowerPoint slide.
+You can read the hyperlink details from a shape or from the text of a shape in a PowerPoint slide.
-The following code example demonstrates how to get the details about the hyperlink from shape.
+### Get hyperlink from a shape
+
+The following code example demonstrates how to get the details about the hyperlink from a shape.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Hyperlinks/Get-hyperlink-from-shape/.NET/Get-hyperlink-from-shape/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Retrieves the first slide from the Presentation
+//Open an existing PowerPoint presentation.
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
+//Retrieve the first slide from the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Retrieves the first shape from the slide
+//Retrieve the first shape from the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Gets the hyperlink from the shape
+//Get the hyperlink from the shape.
IHyperLink hyperlink = shape.Hyperlink;
-//Gets the type of action, the hyperlink will be performed when the shape is clicked
+//Get the type of action performed when the hyperlink is clicked.
HyperLinkType hyperlinkType = hyperlink.Action;
-//Gets the target slide of the hyperlink
+//Get the target slide of the hyperlink.
ISlide targetSlide = hyperlink.TargetSlide;
-//Gets the url address of the hyperlink
+//Get the URL address of the hyperlink.
string url = hyperlink.Url;
-//Gets the screen tip text of a hyperlink
+//Get the screen tip text of the hyperlink.
string screenTip = hyperlink.ScreenTip;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Result.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint Presentation to a file.
+pptxDoc.Save("Result.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Open an existing PowerPoint presentation
+//Open an existing PowerPoint presentation.
IPresentation pptxDoc = Presentation.Open("Sample.pptx");
-//Retrieves the first slide from the Presentation
+//Retrieve the first slide from the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Retrieves the first shape from the slide
+//Retrieve the first shape from the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Gets the hyperlink from the shape
+//Get the hyperlink from the shape.
IHyperLink hyperlink = shape.Hyperlink;
-//Gets the type of action, the hyperlink will be performed when the shape is clicked
+//Get the type of action performed when the hyperlink is clicked.
HyperLinkType hyperlinkType = hyperlink.Action;
-//Gets the target slide of the hyperlink
+//Get the target slide of the hyperlink.
ISlide targetSlide = hyperlink.TargetSlide;
-//Gets the url address of the hyperlink
+//Get the URL address of the hyperlink.
string url = hyperlink.Url;
-//Gets the screen tip text of a hyperlink
+//Get the screen tip text of the hyperlink.
string screenTip = hyperlink.ScreenTip;
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("Result.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Open an existing PowerPoint presentation
-Dim pptxDoc As IPresentation = Presentation.Open("Table.pptx")
-'Retrieves the first shape from the slide
-Dim shape As IShape = TryCast(slide.Shapes(0), IShape)
-'Gets the hyperlink from the shape
-Dim hyperlink As IHyperLink = shape.Hyperlink
-'Gets the type of action, the hyperlink will be performed when the shape is clicked
-Dim hyperlinkType As HyperLinkType = hyperlink.Action
-'Gets the target slide of the hyperlink
-Dim targetSlide As ISlide = hyperlink.TargetSlide
-'Gets the url address of the hyperlink
-Dim url As String = hyperlink.Url
-'Gets the screen tip text of a hyperlink
-Dim screenTip As String = hyperlink.ScreenTip
-'Save the presentation
-pptxDoc.Save("Sample.pptx")
-'Close the presentation
+'Open an existing PowerPoint presentation.
+Dim pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
+'Retrieve the first slide from the presentation.
+Dim slide As ISlide = pptxDoc.Slides(0)
+'Retrieve the first shape from the slide.
+Dim shape As IShape = TryCast(slide.Shapes(0), IShape)
+'Get the hyperlink from the shape.
+Dim hyperlink As IHyperLink = shape.Hyperlink
+'Get the type of action performed when the hyperlink is clicked.
+Dim hyperlinkType As HyperLinkType = hyperlink.Action
+'Get the target slide of the hyperlink.
+Dim targetSlide As ISlide = hyperlink.TargetSlide
+'Get the URL address of the hyperlink.
+Dim url As String = hyperlink.Url
+'Get the screen tip text of the hyperlink.
+Dim screenTip As String = hyperlink.ScreenTip
+'Save the presentation.
+pptxDoc.Save("Result.pptx")
+'Close the presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -357,88 +355,90 @@ pptxDoc.Close()
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Hyperlinks/Get-hyperlink-from-shape).
+### Get hyperlink from text
+
The following code example demonstrates how to get the details about the hyperlink from text.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Hyperlinks/Get-hyperlink-from-text/.NET/Get-hyperlink-from-text/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Retrieves the first slide from the Presentation.
+//Open an existing PowerPoint presentation.
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
+//Retrieve the first slide from the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Retrieves the first shape from the slide
+//Retrieve the first shape from the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Retrieves the first paragraph of the shape
+//Retrieve the first paragraph of the shape.
IParagraph paragraph = shape.TextBody.Paragraphs[0];
-//Retrieves the first TextPart of the shape
+//Retrieve the first TextPart of the shape.
ITextPart textPart = paragraph.TextParts[0];
-//Gets the hyperlink from the text
+//Get the hyperlink from the text.
IHyperLink hyperlink = textPart.Hyperlink;
-//Gets the type of action, the hyperlink will be performed when the shape is clicked
+//Get the type of action performed when the hyperlink is clicked.
HyperLinkType hyperlinkType = hyperlink.Action;
-//Gets the target slide of the hyperlink
+//Get the target slide of the hyperlink.
ISlide targetSlide = hyperlink.TargetSlide;
-//Gets the url address of the hyperlink
+//Get the URL address of the hyperlink.
string url = hyperlink.Url;
-//Gets the screen tip text of a hyperlink
+//Get the screen tip text of the hyperlink.
string screenTip = hyperlink.ScreenTip;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Result.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint Presentation to a file.
+pptxDoc.Save("Result.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Open an existing PowerPoint presentation
+//Open an existing PowerPoint presentation.
IPresentation pptxDoc = Presentation.Open("Sample.pptx");
-//Retrieves the first slide from the Presentation
+//Retrieve the first slide from the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Retrieves the first shape from the slide
+//Retrieve the first shape from the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Retrieves the first paragraph of the shape
+//Retrieve the first paragraph of the shape.
IParagraph paragraph = shape.TextBody.Paragraphs[0];
-//Retrieves the first TextPart of the shape
+//Retrieve the first TextPart of the shape.
ITextPart textPart = paragraph.TextParts[0];
-//Gets the hyperlink from the text
+//Get the hyperlink from the text.
IHyperLink hyperlink = textPart.Hyperlink;
-//Gets the type of action, the hyperlink will be performed when the shape is clicked
+//Get the type of action performed when the hyperlink is clicked.
HyperLinkType hyperlinkType = hyperlink.Action;
-//Gets the target slide of the hyperlink
+//Get the target slide of the hyperlink.
ISlide targetSlide = hyperlink.TargetSlide;
-//Gets the url address of the hyperlink
+//Get the URL address of the hyperlink.
string url = hyperlink.Url;
-//Gets the screen tip text of a hyperlink
+//Get the screen tip text of the hyperlink.
string screenTip = hyperlink.ScreenTip;
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("Result.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Open an existing PowerPoint presentation
+'Open an existing PowerPoint presentation.
Dim pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
-'Retrieves the first shape from the slide
+'Retrieve the first slide from the presentation.
+Dim slide As ISlide = pptxDoc.Slides(0)
+'Retrieve the first shape from the slide.
Dim shape As IShape = TryCast(slide.Shapes(0), IShape)
-'Retrieves the first paragraph of the shape
+'Retrieve the first paragraph of the shape.
Dim paragraph As IParagraph = shape.TextBody.Paragraphs(0)
-'Retrieves the first TextPart of the shape
+'Retrieve the first TextPart of the shape.
Dim textPart As ITextPart = paragraph.TextParts(0)
-'Gets the hyperlink from the text
-Dim hyperlink As IHyperLink = textPart.Hyperlink
-'Gets the type of action, the hyperlink will be performed when the shape is clicked
-Dim hyperlinkType As HyperLinkType = hyperlink.Action
-'Gets the target slide of the hyperlink
-Dim targetSlide As ISlide = hyperlink.TargetSlide
-'Gets the url address of the hyperlink
-Dim url As String = hyperlink.Url
-'Gets the screen tip text of a hyperlink
-Dim screenTip As String = hyperlink.ScreenTip
-'Save the presentation
+'Get the hyperlink from the text.
+Dim hyperlink As IHyperLink = textPart.Hyperlink
+'Get the type of action performed when the hyperlink is clicked.
+Dim hyperlinkType As HyperLinkType = hyperlink.Action
+'Get the target slide of the hyperlink.
+Dim targetSlide As ISlide = hyperlink.TargetSlide
+'Get the URL address of the hyperlink.
+Dim url As String = hyperlink.Url
+'Get the screen tip text of the hyperlink.
+Dim screenTip As String = hyperlink.ScreenTip
+'Save the presentation.
pptxDoc.Save("Result.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -450,52 +450,54 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
You can remove the hyperlink from the shape or text in a PowerPoint slide.
-The following code example demonstrates how to remove a hyperlink from the shape in a PowerPoint slide.
+### Remove hyperlink from a shape
+
+The following code example demonstrates how to remove a hyperlink from a shape in a PowerPoint slide.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Hyperlinks/Remove-hyperlink-from-shape/.NET/Remove-hyperlink-from-shape/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Retrieves the first slide from the Presentation
+//Open an existing PowerPoint presentation.
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
+//Retrieve the first slide from the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Retrieves the first shape from the slide
+//Retrieve the first shape from the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Removes the hyperlink from the shape
+//Remove the hyperlink from the shape.
shape.RemoveHyperlink();
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Result.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint Presentation to a file.
+pptxDoc.Save("Result.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Open an existing PowerPoint presentation
+//Open an existing PowerPoint presentation.
IPresentation pptxDoc = Presentation.Open("Sample.pptx");
-//Retrieves the first slide from the Presentation
+//Retrieve the first slide from the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Retrieves the first shape from the slide
+//Retrieve the first shape from the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Removes the hyperlink from the shape
+//Remove the hyperlink from the shape.
shape.RemoveHyperlink();
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("Result.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Open an existing PowerPoint presentation
+'Open an existing PowerPoint presentation.
Dim pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
-'Retrieves the first shape from the slide
+'Retrieve the first slide from the presentation.
+Dim slide As ISlide = pptxDoc.Slides(0)
+'Retrieve the first shape from the slide.
Dim shape As IShape = TryCast(slide.Shapes(0), IShape)
-'Removes the hyperlink from the shape
+'Remove the hyperlink from the shape.
shape.RemoveHyperlink()
-'Save the presentation
+'Save the presentation.
pptxDoc.Save("Result.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -503,67 +505,78 @@ pptxDoc.Close()
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Hyperlinks/Remove-hyperlink-from-shape).
+### Remove hyperlink from text
+
The following code example demonstrates how to remove a hyperlink from the text in a PowerPoint slide.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Hyperlinks/Remove-hyperlink-from-text/.NET/Remove-hyperlink-from-text/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Retrieves the first slide from the Presentation
+//Open an existing PowerPoint presentation.
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
+//Retrieve the first slide from the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Retrieves the first shape from the slide
+//Retrieve the first shape from the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Retrieves the first paragraph of the shape
+//Retrieve the first paragraph of the shape.
IParagraph paragraph = shape.TextBody.Paragraphs[0];
-//Retrieves the first TextPart of the shape
+//Retrieve the first TextPart of the shape.
ITextPart textPart = paragraph.TextParts[0];
-//Removes the hyperlink from the TextPart
+//Remove the hyperlink from the TextPart.
textPart.RemoveHyperLink();
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Result.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint Presentation to a file.
+pptxDoc.Save("Result.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Open an existing PowerPoint presentation
+//Open an existing PowerPoint presentation.
IPresentation pptxDoc = Presentation.Open("Sample.pptx");
-//Retrieves the first slide from the Presentation
+//Retrieve the first slide from the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Retrieves the first shape from the slide
+//Retrieve the first shape from the slide.
IShape shape = slide.Shapes[0] as IShape;
-//Retrieves the first paragraph of the shape
+//Retrieve the first paragraph of the shape.
IParagraph paragraph = shape.TextBody.Paragraphs[0];
-//Retrieves the first TextPart of the shape
+//Retrieve the first TextPart of the shape.
ITextPart textPart = paragraph.TextParts[0];
-//Removes the hyperlink from the TextPart
+//Remove the hyperlink from the TextPart.
textPart.RemoveHyperLink();
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("Result.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Open an existing PowerPoint presentation
+'Open an existing PowerPoint presentation.
Dim pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
-'Retrieves the first shape from the slide
+'Retrieve the first slide from the presentation.
+Dim slide As ISlide = pptxDoc.Slides(0)
+'Retrieve the first shape from the slide.
Dim shape As IShape = TryCast(slide.Shapes(0), IShape)
-'Retrieves the first paragraph of the shape
+'Retrieve the first paragraph of the shape.
Dim paragraph As IParagraph = shape.TextBody.Paragraphs(0)
-'Retrieves the first TextPart of the shape
+'Retrieve the first TextPart of the shape.
Dim textPart As ITextPart = paragraph.TextParts(0)
-'Removes the hyperlink from the TextPart
+'Remove the hyperlink from the TextPart.
textPart.RemoveHyperLink()
-'Save the presentation
+'Save the presentation.
pptxDoc.Save("Result.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
{% endhighlight %}
{% endtabs %}
-You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Hyperlinks/Remove-hyperlink-from-text).
\ No newline at end of file
+You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Hyperlinks/Remove-hyperlink-from-text).
+
+## See also
+
+* [Working with Shapes](./Working-with-Shapes)
+* [Working with Pictures](./Working-with-Pictures)
+* [Working with Text](./Working-with-Text)
+* [Loading and Saving the Presentation](Loading-and-Saving-the-Presentation)
+* [Assemblies-Required](Assemblies-Required)
+* [NuGet-Packages-Required](NuGet-Packages-Required)
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Macros.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Macros.md
index 91f9f85bec..34a647510f 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Macros.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Macros.md
@@ -1,60 +1,59 @@
---
-title: Create and edit macros in PowerPoint files | Syncfusion |
-description: Learn here all about working with macros in .NET PowerPoint Presentation Library and more.
+title: Working with macros in PowerPoint files | Syncfusion
+description: Learn here all about loading, saving, and removing macros in a .NET PowerPoint presentation using the Syncfusion Presentation library.
platform: document-processing
control: Presentation
documentation: UG
+keywords: macros in powerpoint, pptm, potm, vba, hasmacros, removemacros
---
-# Working with Macros in PowerPoint Presentation Library
+# Working with Macros in PowerPoint Presentation
-A macro is a series of commands that can be grouped together as a single command to automate a frequently used tasks. Macros can be created for Microsoft PowerPoint using Visual Basic for Applications (VBA). Please refer [Create Macros in PowerPoint](https://support.office.com/en-us/article/Create-a-macro-in-PowerPoint-5b07aff6-4dc9-462f-8fc9-66b4c5344e7e?ui=en-US&rs=en-US&ad=US) for more details
+A macro is a series of commands that can be grouped together as a single command to automate frequently used tasks. Macros can be created for Microsoft PowerPoint using Visual Basic for Applications (VBA). Refer to the [Create a macro in PowerPoint](https://support.office.com/en-us/article/Create-a-macro-in-PowerPoint-5b07aff6-4dc9-462f-8fc9-66b4c5344e7e) documentation for more details.
-Macros enabled PowerPoint presentations of file types - .PPTM and .POTM can only be preserved using Essential® Presentation.
+Macro-enabled PowerPoint presentations of file types `.PPTM` and `.POTM` can be loaded, modified, and saved while preserving the embedded VBA project using the Syncfusion Presentation library.
-## Loading and Saving Macro enabled Presentation
+## Loading and saving a macro-enabled presentation
-The following code illustrates how to load and save a macro enabled presentation.
+The following code example illustrates how to load a macro-enabled PowerPoint presentation and save it back to disk while preserving the macros.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Macros/Load-and-save-macro-PowerPoint/.NET/Load-and-save-macro-PowerPoint/Program.cs" %}
-//Opens an existing macro enabled PowerPoint presentation
-FileStream inputStream = new FileStream("Sample.PPTM",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Adds a blank slide to the presentation
+//Open an existing macro-enabled PowerPoint presentation
+IPresentation pptxDoc = Presentation.Open("Sample.PPTM");
+//Add a blank slide to the presentation
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Adds a text box to the slide
+//Add a text box to the slide
IParagraph paragraph = slide.Shapes.AddTextBox(100, 100, 300, 80).TextBody.AddParagraph("Preserve Macros");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Output.PPTM", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Closes the presentation
+//Save the PowerPoint presentation
+pptxDoc.Save("Output.PPTM");
+//Close the presentation
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Opens an existing macro enabled PowerPoint presentation
+//Open an existing macro-enabled PowerPoint presentation
IPresentation pptxDoc = Presentation.Open("Sample.PPTM");
-//Adds a blank slide to the presentation
+//Add a blank slide to the presentation
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Adds a text box to the slide
+//Add a text box to the slide
IParagraph paragraph = slide.Shapes.AddTextBox(100, 100, 300, 80).TextBody.AddParagraph("Preserve Macros");
-//Saves the presentation
+//Save the presentation
pptxDoc.Save("Output.PPTM");
-//Closes the presentation
+//Close the presentation
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Opens an existing macro enabled PowerPoint presentation
+'Open an existing macro-enabled PowerPoint presentation
Dim pptxDoc As IPresentation = Presentation.Open("Sample.PPTM")
-'Adds a blank slide to the presentation
+'Add a blank slide to the presentation
Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
-'Adds a text box to the slide
+'Add a text box to the slide
Dim paragraph As IParagraph = slide.Shapes.AddTextBox(100, 100, 300, 80).TextBody.AddParagraph("Preserve Macros")
-'Saves the presentation
+'Save the presentation
pptxDoc.Save("Output.PPTM")
-'Closes the presentation
+'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -62,51 +61,55 @@ pptxDoc.Close()
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Macros/Load-and-save-macro-PowerPoint).
-## Removing Macros from Macro enabled Presentation
+## Removing macros from a macro-enabled presentation
The following code example illustrates how to remove the macros present in the presentation,
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Macros/Remove-macros/.NET/Remove-macros/Program.cs" %}
-//Opens an existing macro enabled PowerPoint presentation
-FileStream inputStream = new FileStream("Sample.PPTM",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Checks whether the presentation has macros and then removes them
+//Open an existing macro-enabled PowerPoint presentation
+IPresentation pptxDoc = Presentation.Open("Sample.PPTM");
+//Check whether the presentation has macros and then remove them
if (pptxDoc.HasMacros)
pptxDoc.RemoveMacros();
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Output.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Closes the presentation
+//Save the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
+//Close the presentation
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Opens an existing macro enabled PowerPoint presentation
+//Open an existing macro-enabled PowerPoint presentation
IPresentation pptxDoc = Presentation.Open("Sample.PPTM");
-//Checks whether the presentation has macros and then removes them
+//Check whether the presentation has macros and then remove them
if (pptxDoc.HasMacros)
pptxDoc.RemoveMacros();
-//Saves the presentation
+//Save the presentation
pptxDoc.Save("Output.pptx");
-//Closes the presentation
+//Close the presentation
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Opens an existing macro enabled PowerPoint presentation
+'Open an existing macro-enabled PowerPoint presentation
Dim pptxDoc As IPresentation = Presentation.Open("Sample.PPTM")
-'Checks whether the presentation has macros and then removes them
+'Check whether the presentation has macros and then remove them
If pptxDoc.HasMacros Then
pptxDoc.RemoveMacros()
End If
-'Saves the presentation
+'Save the presentation
pptxDoc.Save("Output.pptx")
-'Closes the presentation
+'Close the presentation
pptxDoc.Close()
{% endhighlight %}
{% endtabs %}
-You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Macros/Remove-macros).
\ No newline at end of file
+You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Macros/Remove-macros).
+
+## See also
+
+* [Loading and saving the presentation](./Loading-and-Saving-the-Presentation)
+* [NuGet packages required](./NuGet-Packages-Required)
+* [Assemblies required](./Assemblies-Required)
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-OLE-Objects.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-OLE-Objects.md
index 881d6b4f20..1470d9bd00 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-OLE-Objects.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-OLE-Objects.md
@@ -8,78 +8,94 @@ keywords: OLE Object in PowerPoint presentation
---
# Working with OLE Objects
-The OLE Object enables sharing of application objects written in different file formats. In PowerPoint presentation the application data can be inserted into a PowerPoint slide using the [programmatic identifier](https://msdn.microsoft.com/en-us/library/aa171170(v=office.11).aspx#) of each file format.
+The OLE Object enables sharing of application objects written in different file formats. In a PowerPoint presentation, the application data can be inserted into a PowerPoint slide using the [programmatic identifier](https://msdn.microsoft.com/en-us/library/aa171170(v=office.11).aspx#) of each file format.
-## Inserting OLE Object to a Slide
+## Prerequisites
-The following code example demonstrates how to add an Excel worksheet into a slide.
+Before using OLE objects in your project, ensure the following:
+
+- Install the required Syncfusion assemblies. Refer to the [Assemblies-Required](Assemblies-Required) and [NuGet-Packages-Required](NuGet-Packages-Required) pages for details.
+- Keep the input files (such as `OleTemplate.xlsx`, `OleTemplate.docx`, and `OlePicture.png`) in the application's working directory. You can download them from the [GitHub sample](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/OLE-objects).
+- For the extraction and link-path examples, the input presentation must already contain an embedded or linked OLE object.
+
+## Supported File Types and Programmatic Identifiers
+
+| Source file | Programmatic Identifiers |
+|-------------|--------|
+| Excel workbook (.xlsx) | `Excel.Sheet.12` |
+| Word document (.docx) | `Word.Document.12` |
+| PowerPoint presentation (.pptx) | `PowerPoint.Show.12` |
+| PDF document (.pdf) | `AcroExch.Document.DC` |
+
+## Inserting an OLE Object into a Slide
+
+The following code example demonstrates how to add an Excel worksheet into a slide. Use the **C# [Cross-platform]** tab when targeting .NET on Windows, Linux, or macOS; use the **Windows-specific** tabs when using .NET Framework on Windows.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/OLE-objects/Add-Excel-in-PowerPoint-slide/.NET/Add-Excel-in-PowerPoint-slide/Program.cs" %}
-//Create new instance of PowerPoint presentation.
+//Create a new instance of the PowerPoint presentation.
IPresentation pptxDoc = Presentation.Create();
-//Add slide with blank layout to presentation
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Get the excel file as stream
-FileStream excelStream = new FileStream("OleTemplate.xlsx", FileMode.Open);
-//Image to be displayed, This can be any image
-FileStream imageStream = new FileStream("OlePicture.png", FileMode.Open);
-//Add an OLE object to the slide
-IOleObject oleObject = slide.Shapes.AddOleObject(imageStream, "Excel.Sheet.12", excelStream);
-//Set size and position of the OLE object
+//Add an OLE object to the slide.
+//Parameters:
+// imagePath - The path to the image that represents the icon/preview of the OLE object.
+// progId - The programmatic identifier of the source file (for example, "Excel.Sheet.12").
+// filePath - The path to the source file that is embedded into the presentation.
+IOleObject oleObject = slide.Shapes.AddOleObject("OlePicture.png", "Excel.Sheet.12", "OleTemplate.xlsx");
+//Set the size and position of the OLE object.
oleObject.Left = 10;
oleObject.Top = 10;
oleObject.Width = 400;
oleObject.Height = 300;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("OleObjectSample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint presentation to a file.
+pptxDoc.Save("OleObjectSample.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Create new instance of PowerPoint presentation. [Equivalent to launching MS PowerPoint with no slides].
+//Create a new instance of the PowerPoint presentation.
IPresentation pptxDoc = Presentation.Create();
-//Add slide with blank layout to presentation
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Get the excel file as stream
+//Open the Excel file as a stream.
Stream excelStream = File.Open("OleTemplate.xlsx", FileMode.Open);
-//Image to be displayed, This can be any image
+//Image to be displayed. This can be any image.
Stream imageStream = File.Open("OlePicture.png", FileMode.Open);
-//Add an OLE object to the slide
+//Add an OLE object to the slide.
IOleObject oleObject = slide.Shapes.AddOleObject(imageStream, "Excel.Sheet.12", excelStream);
-//Set size and position of the OLE object
+//Set the size and position of the OLE object.
oleObject.Left = 10;
oleObject.Top = 10;
oleObject.Width = 400;
oleObject.Height = 300;
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("OleObjectSample.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Create new instance of PowerPoint presentation. [Equivalent to launching MS PowerPoint with no slides].
+'Create a new instance of the PowerPoint presentation.
Dim pptxDoc As IPresentation = Presentation.Create()
-'Add slide with blank layout to presentation
+'Add a slide with a blank layout to the presentation.
Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
-'Get the excel file as stream
+'Open the Excel file as a stream.
Dim excelStream As Stream = File.Open("OleTemplate.xlsx", FileMode.Open)
-'Image to be displayed, This can be any image
+'Image to be displayed. This can be any image.
Dim imageStream As Stream = File.Open("OlePicture.png", FileMode.Open)
-'Add an OLE object to the slide
+'Add an OLE object to the slide.
Dim oleObject As IOleObject = slide.Shapes.AddOleObject(imageStream, "Excel.Sheet.12", excelStream)
-'Set size and position of the OLE object
+'Set the size and position of the OLE object.
oleObject.Left = 10
oleObject.Top = 10
oleObject.Width = 400
oleObject.Height = 300
-'Save the presentation
+'Save the presentation.
pptxDoc.Save("OleObjectSample.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -87,16 +103,23 @@ pptxDoc.Close()
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/OLE-objects/Add-Excel-in-PowerPoint-slide).
-### Inserting OLE Object to a Slide with Display As Icon property
+### `AddOleObject` Overloads
-The following code example demonstrates how to add an Microsoft Word document into a slide with display as icon property.
+| Overload | Description |
+|----------|-------------|
+| [`AddOleObject(Stream, string, Stream)`](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IShapes.html#Syncfusion_Presentation_IShapes_AddOleObject_System_IO_Stream_System_String_System_IO_Stream_) |Creates an IOleObject instance with the specified image, program id, and data, then adds it to the IShapes collection. |
+| [`AddOleObject(string, string, string)`](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IShapes.html#Syncfusion_Presentation_IShapes_AddOleObject_System_IO_Stream_System_String_System_String_) | Creates an IOleObject instance with the specified image, program id, and data, then adds it to the IShapes collection.|
+
+## Inserting an OLE Object into a Slide with the DisplayAsIcon Property
+
+The following code example demonstrates how to add a Microsoft Word document into a slide with the `DisplayAsIcon` property enabled. When `DisplayAsIcon` is `true`, the OLE object is rendered as an icon, and the embedded document opens in its default application when the icon is double-clicked.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/OLE-objects/Add-Microsoft-Word-document-in-slide/.NET/Add-Microsoft-Word-document-in-slide/Program.cs" %}
-//Create new instance of PowerPoint presentation.
+//Create a new instance of the PowerPoint presentation.
IPresentation pptxDoc = Presentation.Create();
-//Add slide with blank layout to presentation
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Get the Word document file as stream
FileStream wordDocumentStream = new FileStream("OleTemplate.docx", FileMode.Open);
@@ -109,60 +132,59 @@ oleObject.Left = 10;
oleObject.Top = 10;
oleObject.Width = 400;
oleObject.Height = 300;
-//Set DisplayAsIcon as true, to open the embedded document in separate (default) application.
+//Set DisplayAsIcon to true so the embedded document opens in its default application.
oleObject.DisplayAsIcon = true;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("OleObjectSample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the presentation
+//Save the PowerPoint presentation to a file.
+pptxDoc.Save("OleObjectSample.pptx");
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Create new instance of PowerPoint presentation. [Equivalent to launching MS PowerPoint with no slides].
+//Create a new instance of the PowerPoint presentation.
IPresentation pptxDoc = Presentation.Create();
-//Add slide with blank layout to presentation
+//Add a slide with a blank layout to the presentation.
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
-//Get the Word document file as stream
+//Open the Word document as a stream.
Stream wordDocumentStream = File.Open("OleTemplate.docx", FileMode.Open);
-//Image to be displayed, This can be any image
+//Image to be displayed. This can be any image.
Stream imageStream = File.Open("OlePicture.png", FileMode.Open);
-//Add an OLE object to the slide
+//Add an OLE object to the slide.
IOleObject oleObject = slide.Shapes.AddOleObject(imageStream, "Word.Document.12", wordDocumentStream);
-//Set size and position of the OLE objectwordStream
+//Set the size and position of the OLE object.
oleObject.Left = 10;
oleObject.Top = 10;
oleObject.Width = 400;
oleObject.Height = 300;
-//Set DisplayAsIcon as true, to open the embedded document in separate (default) application.
+//Set DisplayAsIcon to true so the embedded document opens in its default application.
oleObject.DisplayAsIcon = true;
-//Save the presentation
+//Save the presentation.
pptxDoc.Save("OleObjectSample.pptx");
-//Close the presentation
+//Close the presentation.
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Create new instance of PowerPoint presentation. [Equivalent to launching MS PowerPoint with no slides].
+'Create a new instance of the PowerPoint presentation.
Dim pptxDoc As IPresentation = Presentation.Create()
-'Add slide with blank layout to presentation
+'Add a slide with a blank layout to the presentation.
Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
-'Get the Word document file as stream
+'Open the Word document as a stream.
Dim wordDocumentStream As Stream = File.Open("OleTemplate.docx", FileMode.Open)
-'Image to be displayed, This can be any image
+'Image to be displayed. This can be any image.
Dim imageStream As Stream = File.Open("OlePicture.png", FileMode.Open)
-'Add an OLE object to the slide
+'Add an OLE object to the slide.
Dim oleObject As IOleObject = slide.Shapes.AddOleObject(imageStream, "Word.Document.12", wordDocumentStream)
-'Set size and position of the OLE object
+'Set the size and position of the OLE object.
oleObject.Left = 10
oleObject.Top = 10
oleObject.Width = 400
oleObject.Height = 300
-'Set DisplayAsIcon as true, to open the embedded document in separate (default) application.
+'Set DisplayAsIcon to true so the embedded document opens in its default application.
oleObject.DisplayAsIcon = True
-'Save the presentation
+'Save the presentation.
pptxDoc.Save("OleObjectSample.pptx")
-'Close the presentation
+'Close the presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -170,26 +192,24 @@ pptxDoc.Close()
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/OLE-objects/Add-Microsoft-Word-document-in-slide).
-## Extract embedded OLE Object data
+## Extracting Embedded OLE Object Data
The following code example demonstrates how to extract the embedded OLE Object data.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/OLE-objects/Extract-embedded-OLE-Object-data/.NET/Extract-embedded-OLE-Object-data/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("EmbeddedOleObject.pptx", FileMode.Open);
-//Opens the specified presentation
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Gets the first slide of the Presentation
+//Open the specified PowerPoint presentation.
+IPresentation pptxDoc = Presentation.Open("EmbeddedOleObject.pptx");
+//Get the first slide of the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Gets the Ole Object of the slide
+//Get the OLE object from the slide. The shape index 2 is used in this sample.
IOleObject oleObject = slide.Shapes[2] as IOleObject;
-//Gets the file data of embedded Ole Object
+//Get the file data of the embedded OLE object.
byte[] array = oleObject.ObjectData;
-//Gets the file Name of OLE Object
+//Get the file name of the OLE object.
string outputFile = oleObject.FileName;
-//Save the extracted Ole data into file system
+//Save the extracted OLE data to the file system.
MemoryStream memoryStream = new MemoryStream(array);
FileStream fileStream = File.Create(outputFile);
memoryStream.CopyTo(fileStream);
@@ -200,17 +220,17 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Opens the specified presentation
+//Open the specified PowerPoint presentation.
IPresentation pptxDoc = Presentation.Open("EmbeddedOleObject.pptx");
-//Gets the first slide of the Presentation
+//Get the first slide of the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Gets the Ole Object of the slide
+//Get the OLE object from the slide. The shape index 2 is used in this sample.
IOleObject oleObject = slide.Shapes[2] as IOleObject;
-//Gets the file data of embedded Ole Object
+//Get the file data of the embedded OLE object.
byte[] array = oleObject.ObjectData;
-//Gets the file Name of OLE Object
+//Get the file name of the OLE object.
string outputFile = oleObject.FileName;
-//Save the extracted Ole data into file system
+//Save the extracted OLE data to the file system.
MemoryStream memoryStream = new MemoryStream(array);
FileStream fileStream = File.Create(outputFile);
memoryStream.CopyTo(fileStream);
@@ -222,62 +242,60 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Opens the specified presentation
+'Open the specified PowerPoint presentation.
Dim pptxDoc As IPresentation = Presentation.Open("EmbeddedOleObject.pptx")
-'Gets the first slide of the Presentation
+'Get the first slide of the presentation.
Dim slide As ISlide = pptxDoc.Slides(0)
-'Gets the Ole Object of the slide
-Dim oleObject As IOleObject = CType(slide.Shapes(2),IOleObject)
-'Gets the file data of embedded Ole Object
+'Get the OLE object from the slide. The shape index 2 is used in this sample.
+Dim oleObject As IOleObject = CType(slide.Shapes(2), IOleObject)
+'Get the file data of the embedded OLE object.
Dim array() As Byte = oleObject.ObjectData
-'Gets the file Name of OLE Object
+'Get the file name of the OLE object.
Dim outputFile As String = oleObject.FileName
-'Save the extracted Ole data into file system
+'Save the extracted OLE data to the file system.
Dim memoryStream As MemoryStream = New MemoryStream(array)
Dim fileStream As FileStream = File.Create(outputFile)
memoryStream.CopyTo(fileStream)
memoryStream.Dispose
fileStream.Dispose
'Close the presentation
-pptxDoc.Close
+pptxDoc.Close()
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/OLE-objects/Extract-embedded-OLE-Object-data).
-## Get file path of a linked OLE Object
+## Getting the File Path of a Linked OLE Object
The following code example demonstrates how to get the file path of a linked OLE Object.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/OLE-objects/Get-file-path-of-linked-OLE-Object/.NET/Get-file-path-of-linked-OLE-Object/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("EmbeddedOleObject.pptx", FileMode.Open);
-//Opens the specified presentation
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Gets the first slide of the Presentation
+//Open the specified PowerPoint presentation.
+IPresentation pptxDoc = Presentation.Open("EmbeddedOleObject.pptx");
+//Get the first slide of the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Gets the Ole Object of the slide
+//Get the OLE object from the slide. The shape index 1 is used in this sample.
IOleObject oleObject = slide.Shapes[1] as IOleObject;
-//Gets the path of linked Ole Object
+//Get the path of the linked OLE object.
string linkOlePath = oleObject.LinkPath;
//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("OleObjectSample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+pptxDoc.Save("OleObjectSample.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Opens the specified presentation
+//Open the specified PowerPoint presentation.
IPresentation pptxDoc = Presentation.Open("EmbeddedOleObject.pptx");
-//Gets the first slide of the Presentation
+//Get the first slide of the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Gets the Ole Object of the slide
+//Get the OLE object from the slide. The shape index 1 is used in this sample.
IOleObject oleObject = slide.Shapes[1] as IOleObject;
-//Gets the path of linked Ole Object
+
+//Get the path of the linked OLE object.
string linkOlePath = oleObject.LinkPath;
//Save the presentation
pptxDoc.Save("OleObjectSample.pptx");
@@ -286,13 +304,13 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Opens the specified presentation
+'Open the specified PowerPoint presentation.
Dim pptxDoc As IPresentation = Presentation.Open("EmbeddedOleObject.pptx")
-'Gets the first slide of the Presentation
+'Get the first slide of the presentation.
Dim slide As ISlide = pptxDoc.Slides(0)
-'Gets the Ole Object of the slide
+'Get the OLE object from the slide. The shape index 1 is used in this sample.
Dim oleObject As IOleObject = CType(slide.Shapes(1), IOleObject)
-'Gets the path of linked Ole Object
+'Get the path of the linked OLE object.
Dim linkOlePath As String = oleObject.LinkPath
'Save the presentation
pptxDoc.Save("OleObjectSample.pptx")
@@ -304,24 +322,22 @@ pptxDoc.Close()
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/OLE-objects/Get-file-path-of-linked-OLE-Object).
-## Get OLE Image data
+## Getting the OLE Image Data
The following code example demonstrates how to get the OLE image data.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/OLE-objects/Get-OLE-image-data/.NET/Get-OLE-image-data/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("EmbeddedOleObject.pptx", FileMode.Open);
-//Opens the specified presentation
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Gets the first slide of the Presentation
+//Open the specified PowerPoint presentation.
+IPresentation pptxDoc = Presentation.Open("EmbeddedOleObject.pptx");
+//Get the first slide of the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Gets the Ole Object of the slide
+//Get the OLE object from the slide. The shape index 1 is used in this sample.
IOleObject oleObject = slide.Shapes[1] as IOleObject;
-//Gets the data of Ole Image
+//Get the data of the OLE image.
byte[] array = oleObject.ImageData;
-//Save the extracted Ole data into file system
+//Save the extracted OLE data to the file system as an EMF image.
MemoryStream memoryStream = new MemoryStream(array);
FileStream fileStream = File.Create("OleImage.emf");
memoryStream.CopyTo(fileStream);
@@ -332,15 +348,15 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Opens the specified presentation
-IPresentation pptxDoc = Presentation.Open("ImageEmbeddedOleObject.pptx");
-//Gets the first slide of the Presentation
+//Open the specified PowerPoint presentation.
+IPresentation pptxDoc = Presentation.Open("EmbeddedOleObject.pptx");
+//Get the first slide of the presentation.
ISlide slide = pptxDoc.Slides[0];
-//Gets the Ole Object of the slide
+//Get the OLE object from the slide. The shape index 1 is used in this sample.
IOleObject oleObject = slide.Shapes[1] as IOleObject;
-//Gets the data of Ole Image
+//Get the data of the OLE image.
byte[] array = oleObject.ImageData;
-//Save the extracted Ole data into file system
+//Save the extracted OLE data to the file system as an EMF image.
MemoryStream memoryStream = new MemoryStream(array);
//Extracted ole data saved as image
FileStream fileStream = File.Create("OleImage.emf");
@@ -352,11 +368,11 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Opens the specified presentation
+'Open the specified PowerPoint presentation.
Dim pptxDoc As IPresentation = Presentation.Open("EmbeddedOleObject.pptx")
-'Gets the first slide of the Presentation
+'Get the first slide of the presentation.
Dim slide As ISlide = pptxDoc.Slides(0)
-'Gets the Ole Object of the slide
+'Get the OLE object from the slide. The shape index 1 is used in this sample.
Dim oleObject As IOleObject = CType(slide.Shapes(1), IOleObject)
'Gets the data of Ole Image
Dim array() As Byte = oleObject.ImageData
@@ -377,7 +393,7 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Online Demo
-* Explore how to insert and extract an OLE Object in a PowerPoint presentation using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/oleobject#/tailwind).
+* Explore how to insert and extract an OLE object in a PowerPoint presentation using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/oleobject#/tailwind).
## See Also
* [How to replace all OLE objects with text in PowerPoint using C#?](https://support.syncfusion.com/kb/article/15653/how-to-replace-all-ole-objects-with-text-in-powerpoint-using-c)
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Tables.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Tables.md
index b432b16be6..3a2a16a6a8 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Tables.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-Tables.md
@@ -38,9 +38,8 @@ foreach (IRow rows in table.Rows)
}
rowIndex++;
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -66,7 +65,7 @@ foreach (IRow rows in table.Rows)
rowIndex++;
}
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -90,7 +89,7 @@ For Each rows As IRow In table.Rows
rowIndex += 1
Next
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("TableModified.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -125,9 +124,8 @@ foreach (IColumn columns in table.Columns)
}
row++;
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -153,7 +151,7 @@ foreach (IColumn columns in table.Columns)
row++;
}
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -177,7 +175,7 @@ For Each columns As IColumn In table.Columns
row += 1
Next
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("TableModified.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -194,8 +192,7 @@ You can append new rows at the end of an existing PowerPoint table. Refer to the
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Add-new-row-to-the-table-end/.NET/Add-new-row-to-the-table-end/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Table.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Get a table in the slide
ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Add or append a new row at the end of table
@@ -205,9 +202,8 @@ foreach (ICell cell in row.Cells)
{
cell.TextBody.AddParagraph(table.Rows.IndexOf(row).ToString());
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("Output.pptx");
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -223,7 +219,7 @@ foreach (ICell cell in row.Cells)
cell.TextBody.AddParagraph(table.Rows.IndexOf(row).ToString());
}
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -240,7 +236,7 @@ For Each cell As ICell In row.Cells
cell.TextBody.AddParagraph(table.Rows.IndexOf(row).ToString())
Next
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("Output.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -257,15 +253,13 @@ You can copy an existing row to the end of a table. Refer to the following code
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Copy-existing-row-to-the-table-end/.NET/Copy-existing-row-to-the-table-end/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Table.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Get a table in the slide
ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Copy the first row to the end of table
table.Rows.Add(table.Rows[0].Clone());
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("Output.pptx);
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -276,7 +270,7 @@ ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Copy the first row to the end of table
table.Rows.Add(table.Rows[0].Clone());
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -289,7 +283,7 @@ Dim table As ITable = TryCast(pptxDoc.Slides(0).Shapes(0), ITable)
'Copy the first row to the end of table
table.Rows.Add(table.Rows(0).Clone())
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("Output.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -306,15 +300,13 @@ You can insert a row at the specified index position of a table. Refer to the fo
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Insert-row-in-table/.NET/Insert-row-in-table/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Table.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Get a table in the slide
ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Insert a row at the specified index. Here, the existing first row at index 0 is copied and inserted at row index 1
table.Rows.Insert(1, table.Rows[0].Clone());
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("Output.pptx);
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -327,7 +319,7 @@ ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Insert a row at the specified index. Here, the existing first row at index 0 is copied and inserted at row index 1
table.Rows.Insert(1, table.Rows[0].Clone());
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -340,7 +332,7 @@ Dim table As ITable = TryCast(pptxDoc.Slides(0).Shapes(0), ITable)
'Insert a row at the specified index. Here, the existing first row at index 0 is copied and inserted at row index 1.
table.Rows.Insert(1, table.Rows(0).Clone())
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("Output.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -357,8 +349,7 @@ You can append a new column to a table. Refer to the following code example.
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Add-new-column-to-the-table-end/.NET/Add-new-column-to-the-table-end/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Table.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Get a table in the slide
ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Add or append a new column at the end of table
@@ -368,9 +359,8 @@ foreach (ICell cell in column.Cells)
{
cell.TextBody.AddParagraph(table.Columns.IndexOf(column).ToString());
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -388,7 +378,7 @@ foreach (ICell cell in column.Cells)
cell.TextBody.AddParagraph(table.Columns.IndexOf(column).ToString());
}
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -405,7 +395,7 @@ For Each cell As ICell In column.Cells
cell.TextBody.AddParagraph(table.Columns.IndexOf(column).ToString())
Next
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("Output.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -422,15 +412,13 @@ You can copy an existing column and append it to the end of a table. Refer to th
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Copy-existing-column-to-the-table-end/.NET/Copy-existing-column-to-the-table-end/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Table.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Get a table in the slide
ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Copy the column and append it to the end of table
table.Columns.Add(table.Columns[0].Clone());
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -443,7 +431,7 @@ ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Copy the column and append it to the end of table
table.Columns.Add(table.Columns[0].Clone());
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -456,7 +444,7 @@ Dim table As ITable = TryCast(pptxDoc.Slides(0).Shapes(0), ITable)
'Copy the column and append it to the end of table
table.Columns.Add(table.Columns(0).Clone())
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("Output.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -473,15 +461,13 @@ You can insert a column at the specified index position of a table. Refer to the
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Insert-column-in-table/.NET/Insert-column-in-table/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Table.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Get a table in the slide
ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Insert a column at the specified index. Here, the existing first column at index 0 is copied and inserted at column index 1
table.Columns.Insert(1, table.Columns[0].Clone());
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -494,7 +480,7 @@ ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Insert a column at the specified index. Here, the existing first column at index 0 is copied and inserted at column index 1
table.Columns.Insert(1, table.Columns[0].Clone());
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("Output.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -507,7 +493,7 @@ Dim table As ITable = TryCast(pptxDoc.Slides(0).Shapes(0), ITable)
'Insert a column at the specified index. Here, the existing first column at index 0 is copied and inserted at column index 1.
table.Columns.Insert(1, table.Columns(0).Clone())
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("Output.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -526,8 +512,7 @@ The following code example demonstrates how to get the actual height of a PowerP
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Get-actual-table-height/.NET/Get-actual-table-height/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Initialize Presentation renderer
pptxDoc.PresentationRenderer = new PresentationRenderer();
//Get a table in the slide
@@ -536,16 +521,15 @@ ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
table.Rows[0].Cells[0].TextBody.AddParagraph("Hello World");
//Get the dynamic height of the table
float height=table.GetActualHeight();
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Table.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
//Opens existing PowerPoint file
-IPresentation pptxDoc = Presentation.Open("Sample.pptx");
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Opens slide in the presentation
ISlide slide = pptxDoc.Slides[0];
//Open Table in the slide to make changes
@@ -555,14 +539,14 @@ table.Rows[0].Cells[0].TextBody.AddParagraph("Hello World");
//Get the dynamic height of the table
float height=table.GetActualHeight();
//Save the presentation
-pptxDoc.Save("Table.pptx");
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
'Open an existing PowerPoint file
-Dim pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
+Dim pptxDoc As IPresentation = Presentation.Open("Table.pptx")
'Get the table from the slide
Dim table As ITable = TryCast(pptxDoc.Slides(0).Shapes(0), ITable)
'Changing the paragraph content in the table
@@ -570,7 +554,7 @@ table.Rows(0).Cells(0).TextBody.AddParagraph("Hello World")
'Get the dynamic height of the table
Dim height As Single = table.GetActualHeight()
'Save the presentation
-pptxDoc.Save("Table.pptx")
+pptxDoc.Save("TableModified.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
@@ -640,9 +624,8 @@ cell.TextBody.MarginTop = 65;
cell.Fill.SolidFill.Color = ColorObject.Silver;
cell.TextBody.AddParagraph("Second Row and Second Column");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Table.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Closes the Presentation
pptxDoc.Close();
{% endhighlight %}
@@ -700,7 +683,7 @@ cell.Fill.SolidFill.Color.SystemColor = Color.Silver;
cell.TextBody.AddParagraph("Second Row and Second Column");
//Saves the Presentation
-pptxDoc.Save("Table.pptx");
+pptxDoc.Save("TableModified.pptx");
//Closes the Presentation
pptxDoc.Close();
{% endhighlight %}
@@ -758,7 +741,7 @@ cell.Fill.SolidFill.Color.SystemColor = Color.Silver
cell.TextBody.AddParagraph("Second Row and Second Column")
'Saves the Presentation
-pptxDoc.Save("Table.pptx")
+pptxDoc.Save("TableModified.pptx")
'Closes the Presentation
pptxDoc.Close()
{% endhighlight %}
@@ -811,9 +794,8 @@ cell.TextBody.AddParagraph("Third Row and Third Column");
//Adds description to table shape
table.Description = "Table arrangement";
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Table.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Closes the Presentation
pptxDoc.Close();
{% endhighlight %}
@@ -857,7 +839,7 @@ cell.TextBody.AddParagraph("Third Row and Third Column");
//Adds description to table shape
table.Description = "Table arrangement";
//Saves the Presentation
-pptxDoc.Save("Table.pptx");
+pptxDoc.Save("TableModified.pptx");
//Closes the Presentation
pptxDoc.Close();
{% endhighlight %}
@@ -901,7 +883,7 @@ cell.TextBody.AddParagraph("Third Row and Third Column")
'Adds description to table shape
table.Description = "Table arrangement"
'Saves the Presentation
-pptxDoc.Save("Table.pptx")
+pptxDoc.Save("TableModified.pptx")
'Closes the Presentation
pptxDoc.Close()
{% endhighlight %}
@@ -918,8 +900,7 @@ The following code example demonstrates how to modify the table in existing Powe
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Modify-existing-table/.NET/Modify-existing-table/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Gets slide from the Presentation
ISlide slide = pptxDoc.Slides[0];
//Gets table from slide
@@ -930,9 +911,8 @@ table.Width = 450;
table.BuiltInStyle = BuiltInTableStyle.DarkStyle1Accent2;
//Sets text content to the cell
table.Rows[0].Cells[0].TextBody.AddParagraph("Row1 Cell1");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("TableModified.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -1011,8 +991,8 @@ cell.ColumnSpan = 2;
//Give simple description to table shape.
table.Description = "Table arrangement";
-//Save the PowerPoint Presentation as stream.
-pptxDoc.Save("Table.pptx");
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
@@ -1044,7 +1024,7 @@ cell.ColumnSpan = 2;
//Give simple description to table shape.
table.Description = "Table arrangement";
//Save the Presentation.
-pptxDoc.Save("Table.pptx");
+pptxDoc.Save("TableModified.pptx");
//Close the Presentation.
pptxDoc.Close();
{% endhighlight %}
@@ -1076,7 +1056,7 @@ cell.ColumnSpan = 2
'Give simple description to table shape.
table.Description = "Table arrangement"
'Save the Presentation.
-pptxDoc.Save("Table.pptx")
+pptxDoc.Save("TableModified.pptx")
'Close the Presentation.
pptxDoc.Close()
{% endhighlight %}
@@ -1093,17 +1073,15 @@ You can remove a table from a slide by passing its instance to the `Shapes.Remov
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Remove-table/.NET/Remove-table/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Gets slide from the Presentation
ISlide slide = pptxDoc.Slides[0];
//Gets the table from slide
ITable table = slide.Shapes[0] as ITable;
//Removes table from shape collection
slide.Shapes.Remove(table);
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("TableModified.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -1150,8 +1128,7 @@ The following code example demonstrates how to edit the content in a table.
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Tables/Edit-table-contents/.NET/Edit-table-contents/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Table.pptx", FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("Table.pptx");
//Get a table in the slide
ITable table = pptxDoc.Slides[0].Shapes[0] as ITable;
//Iterates through the rows of the table
@@ -1173,9 +1150,8 @@ foreach (IRow row in table.Rows)
}
}
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the PowerPoint Presentation
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -1205,7 +1181,7 @@ foreach (IRow row in table.Rows)
}
}
//Save the presentation
-pptxDoc.Save("Sample.pptx");
+pptxDoc.Save("TableModified.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -1232,7 +1208,7 @@ For Each row As IRow In table.Rows
Next
Next
'Save the presentation
-pptxDoc.Save("Sample.pptx")
+pptxDoc.Save("TableModified.pptx")
'Close the presentation
pptxDoc.Close()
{% endhighlight %}
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-headers-and-footers.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-headers-and-footers.md
index dede50f413..2a81f7a3c4 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-headers-and-footers.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-headers-and-footers.md
@@ -11,7 +11,7 @@ documentation: UG
### Add Footer to a Slide in PowerPoint
-Essential® Presentation library facilitates adding [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) in a slide of the PowerPoint Presentation. Footers are useful in providing quick information about your document or data.
+Essential® Presentation library facilitates adding [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) in a slide of the PowerPoint presentation. Footers are useful for providing quick information about your document or data.
The following code example demonstrates how to add a footer to the presentation.
@@ -34,9 +34,8 @@ IParagraph paragraph = textboxShape.TextBody.AddParagraph();
ITextPart textPart = paragraph.AddTextPart();
//Adds text to the TextPart
textPart.Text = "AdventureWorks Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company. The company manufactures and sells metal and composite bicycles to North American, European and Asian commercial markets. While its base operation is located in Washington with 290 employees, several regional sales teams are located throughout their market base.";
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -93,13 +92,13 @@ pptxDoc.Close()
By executing the program, you will get the PowerPoint slide as follows.
-
+
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Headers-and-Footers/Add-footer-in-PowerPoint).
### Add Date and Time in PowerPoint Slide
-Essential® Presentation library facilitates adding Date and Time to a slide of the PowerPoint Presentation. Date and Time comes with formatting options for date stamp as either it can be updated automatically using computer's clock or stay fixed until you change it.
+Essential® Presentation library facilitates adding Date and Time to a slide of the PowerPoint presentation. Date and Time come with formatting options for the date stamp, as either it can be updated automatically using the computer's clock or stay fixed until you change it.
The following code example demonstrates how to add Date and Time to a slide of the presentation.
@@ -112,7 +111,7 @@ IPresentation pptxDoc = Presentation.Create();
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Sets the visibility of Date and Time in the slide
slide.HeadersFooters.DateAndTime.Visible = true;
-//Sets the format of the Date and Time to the Footer
+//Sets the format of the Date and Time
slide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimehmmssAMPM;
//Adds textbox to the slide
IShape textboxShape = slide.AddTextBox(0, 0, 500, 500);
@@ -122,9 +121,8 @@ IParagraph paragraph = textboxShape.TextBody.AddParagraph();
ITextPart textPart = paragraph.AddTextPart();
//Adds text to the TextPart
textPart.Text = "AdventureWorks Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company. The company manufactures and sells metal and composite bicycles to North American, European and Asian commercial markets. While its base operation is located in Washington with 290 employees, several regional sales teams are located throughout their market base.";
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -138,7 +136,7 @@ IPresentation pptxDoc = Presentation.Create();
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Sets the visibility of Date and Time in the slide
slide.HeadersFooters.DateAndTime.Visible = true;
-//Sets the format of the Date and Time to the Footer
+//Sets the format of the Date and Time
slide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimehmmssAMPM;
//Adds textbox to the slide
IShape textboxShape = slide.AddTextBox(0, 0, 500, 500);
@@ -161,7 +159,7 @@ Dim pptxDoc As IPresentation = Presentation.Create()
Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
'Sets the visibility of Date and Time in the slide
slide.HeadersFooters.DateAndTime.Visible = True
-'Sets the format of the Date and Time to the Footer
+'Sets the format of the Date and Time
slide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimehmmssAMPM
'Adds textbox to the slide
Dim textboxShape As IShape = slide.AddTextBox(0, 0, 500, 500)
@@ -181,15 +179,15 @@ pptxDoc.Close()
By executing the program, you will get the PowerPoint slide as follows.
-
+
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Headers-and-Footers/Add-date-and-time-in-PowerPoint-slide).
### Add Slide Number to PowerPoint Slides
-Essential® Presentation library facilitates adding Slide number to a slide of the PowerPoint Presentation.
+Essential® Presentation library facilitates adding a Slide number to a slide of the PowerPoint presentation.
-The following code example demonstrates how to add Slide number to a slide of the presentation.
+The following code example demonstrates how to add a Slide number to a slide of the presentation.
{% tabs %}
@@ -208,9 +206,8 @@ IParagraph paragraph = textboxShape.TextBody.AddParagraph();
ITextPart textPart = paragraph.AddTextPart();
//Adds text to the TextPart
textPart.Text = "AdventureWorks Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company. The company manufactures and sells metal and composite bicycles to North American, European and Asian commercial markets. While its base operation is located in Washington with 290 employees, several regional sales teams are located throughout their market base.";
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -269,16 +266,15 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
### Add Footer to Master and Layout slides
-Essential® Presentation library facilitates adding Footers to both master and layout slides of the PowerPoint Presentation. If you want to use a different format for the Footers, then a great way to apply the format to all the slides (existing and new slides) is using the Slide Master and Slide layout. Under Slide Master and Slide layout, you can control the styles for footer options and this way you can apply different styles to the slides, or re-locate the Footer shape to any other position based on your requirement
+Essential® Presentation library facilitates adding Footers to both master and layout slides of the PowerPoint presentation. If you want to use a different format for the Footers, a great way to apply the format to all the slides (existing and new slides) is by using the Slide Master and Slide Layout. Under Slide Master and Slide Layout, you can control the styles for the footer and apply different styles to the slides, or relocate the Footer shape to any other position based on your requirement.
-The following code example demonstrates how to add a Footers to the master and layout slides of the presentation.
+The following code example demonstrates how to add a Footer to the master and layout slides of the presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Headers-and-Footers/Add-footer-in-master-and-layout-slides/.NET/Add-footer-in-master-and-layout-slides/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream(inputFileName,FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+//Load or open a PowerPoint Presentation
+IPresentation pptxDoc = Presentation.Open(inputFileName);
//Access the first master slide in PowerPoint file
IMasterSlide masterSlide = pptxDoc.Masters[0];
//Sets the visibility of Footer content in the Master slide
@@ -301,9 +297,8 @@ foreach(ILayoutSlide layoutSlide in masterSlide.LayoutSlides)
//Sets the format of the DateTime Footer in Layout slide
layoutSlide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimeMMddyyhmmAMPM;
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -311,7 +306,7 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Load or open an PowerPoint Presentation
+//Load or open a PowerPoint Presentation
IPresentation pptxDoc = Presentation.Open("Footer.pptx");
//Access the first master slide in PowerPoint file
IMasterSlide masterSlide = pptxDoc.Masters[0];
@@ -342,7 +337,7 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Load or open an PowerPoint Presentation
+'Load or open a PowerPoint Presentation
Dim pptxDoc As IPresentation = Presentation.Open("Footer.pptx")
'Access the first master slide in PowerPoint file
Dim masterSlide As IMasterSlide = pptxDoc.Masters(0)
@@ -366,7 +361,7 @@ For Each layoutSlide As ILayoutSlide In masterSlide.LayoutSlides
layoutSlide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimeMMddyyhmmAMPM
Next
'Saves the Presentation to the file system
-pptxDoc.Save("Sample.pptx
+pptxDoc.Save("Sample.pptx")
'Closes the Presentation
pptxDoc.Close()
{% endhighlight %}
@@ -385,12 +380,12 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
### Add Headers and Footers into Notes slide
-Essential® Presentation library facilitates adding Headers and Footers to the Notes slide of the PowerPoint Presentation.
+Essential® Presentation library facilitates adding Headers and Footers to the Notes slide of the PowerPoint presentation.
-N> 1. As per Microsoft PowerPoint behavior, you can add Header only in Notes slide of the PowerPoint using our Essential® Presentation Library.
-N> 2. Header added in Notes slide will be visible only in the Notes page of the PowerPoint viewer.
+N> 1. As per Microsoft PowerPoint behavior, you can add a Header only in the Notes slide of the PowerPoint using our Essential® Presentation Library.
+N> 2. The Header added in a Notes slide will be visible only in the Notes page of the PowerPoint viewer.
-The following code example demonstrates how to add a Headers and Footers to the Notes slide of the presentation.
+The following code example demonstrates how to add Headers and Footers to the Notes slide of the presentation.
{% tabs %}
@@ -413,9 +408,8 @@ notesSlide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimeMMMyy;
notesSlide.HeadersFooters.Footer.Visible = true;
//Sets the text to be added to the Footer of the Notes slide
notesSlide.HeadersFooters.Footer.Text = "Notes slide Footer";
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -467,7 +461,7 @@ notesSlide.HeadersFooters.Footer.Visible = True
'Sets the text to be added to the Footer of the Notes slide
notesSlide.HeadersFooters.Footer.Text = "Notes slide Footer"
'Saves the Presentation to the file system
-pptxDoc.Save("Sample.pptx
+pptxDoc.Save("Sample.pptx")
'Closes the Presentation
pptxDoc.Close()
{% endhighlight %}
@@ -484,23 +478,21 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
### Edit Footer text of an existing Slide
-Essential® Presentation library facilitates editing the [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) text of an existing slide in the PowerPoint Presentation.
+Essential® Presentation library facilitates editing the [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) text of an existing slide in the PowerPoint presentation.
-The following code example demonstrates how to edit [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) text of an existing slide in the presentation.
+The following code example demonstrates how to edit the [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) text of an existing slide in the presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Headers-and-Footers/Edit-footer-text/.NET/Edit-footer-text/Program.cs" %}
-//Load or open an PowerPoint Presentation
-FileStream inputStream = new FileStream(inputFileName,FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Gets the first slide from the cloned PowerPoint presentation
+//Load or open a PowerPoint Presentation
+IPresentation pptxDoc = Presentation.Open(inputFileName);
+//Gets the first slide from the PowerPoint presentation
ISlide slide = pptxDoc.Slides[0];
//Modify the Footer text
-slide.HeadersFooters.Footer.Text = "Footer content modified";
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+slide.HeadersFooters.Footer.Text = "Footer content modified";
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -508,9 +500,9 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Load or open an PowerPoint Presentation
+//Load or open a PowerPoint Presentation
IPresentation pptxDoc = Presentation.Open("Footer.pptx");
-//Gets the first slide from the cloned PowerPoint presentation
+//Gets the first slide from the PowerPoint presentation
ISlide slide = pptxDoc.Slides[0];
//Modify the Footer text
slide.HeadersFooters.Footer.Text = "Footer content modified";
@@ -521,14 +513,14 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Load or open an PowerPoint Presentation
+'Load or open a PowerPoint Presentation
Dim pptxDoc As IPresentation = Presentation.Open("Footer.pptx")
'Gets the first slide from the PowerPoint presentation
-ISlide slide = pptxDoc.Slides[0]
+Dim slide As ISlide = pptxDoc.Slides(0)
'Modify the Footer text
slide.HeadersFooters.Footer.Text = "Footer content modified"
'Saves the Presentation to the file system
-pptxDoc.Save("Sample.pptx
+pptxDoc.Save("Sample.pptx")
'Closes the Presentation
pptxDoc.Close()
{% endhighlight %}
@@ -543,50 +535,49 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
### Edit Header text of an existing Notes slide
-Essential® Presentation library facilitates editing of Headers for the Notes slide of the PowerPoint Presentation.
+Essential® Presentation library facilitates editing of Headers for the Notes slide of the PowerPoint presentation.
-N> 1. As per Microsoft PowerPoint behavior, you can edit Header only in Notes slide of the PowerPoint using our Essential® Presentation Library.
-N> 2. Header edited in Notes slide will be visible only in the Notes page of the PowerPoint viewer.
+N> 1. As per Microsoft PowerPoint behavior, you can edit a Header only in the Notes slide of the PowerPoint using our Essential® Presentation Library.
+N> 2. The Header edited in a Notes slide will be visible only in the Notes page of the PowerPoint viewer.
The following code example demonstrates how to edit the Headers for the Notes slide of the presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Headers-and-Footers/Edit-header-text/.NET/Edit-header-text/Program.cs" %}
-//Open a PowerPoint presentation.
-IPresentation pptxDoc = Presentation.Open("Header.pptx");
-//Get the notes slide from the presenatation.
-INotesSlide notesSlide = pptxDoc.Slides[0].NotesSlide;
-//Modify the existing content of the header.
-notesSlide.HeadersFooters.Header.Text = "Header content is modified";
-//Save the PowerPoint Presentation as stream.
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
-//Close the Presentation.
+//Open a PowerPoint presentation
+IPresentation pptxDoc = Presentation.Open("Header.pptx");
+//Get the notes slide from the presentation
+INotesSlide notesSlide = pptxDoc.Slides[0].NotesSlide;
+//Modify the existing content of the header
+notesSlide.HeadersFooters.Header.Text = "Header content is modified";
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
+//Close the Presentation
pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Open a PowerPoint presentation.
-IPresentation pptxDoc = Presentation.Open("Header.pptx");
-//Get the notes slide from the presenatation.
-INotesSlide notesSlide = pptxDoc.Slides[0].NotesSlide;
-//Modify the existing content of the header.
-notesSlide.HeadersFooters.Header.Text = "Header content is modified";
-//Save the modified PowerPoint presentation.
-pptxDoc.Save("Result.pptx");
-//Close the Presentation.
-pptxDoc.Close();
+//Open a PowerPoint presentation
+IPresentation pptxDoc = Presentation.Open("Header.pptx");
+//Get the notes slide from the presentation
+INotesSlide notesSlide = pptxDoc.Slides[0].NotesSlide;
+//Modify the existing content of the header
+notesSlide.HeadersFooters.Header.Text = "Header content is modified";
+//Saves the Presentation to the file system
+pptxDoc.Save("Result.pptx");
+//Close the Presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Open a PowerPoint presentation.
+'Open a PowerPoint presentation
Dim pptxDoc As IPresentation = Presentation.Open("Header.pptx")
-'Get the notes slide from the presenatation.
+'Get the notes slide from the presentation
Dim notesSlide As INotesSlide = pptxDoc.Slides(0).NotesSlide
-'Modify the existing content of the header.
+'Modify the existing content of the header
notesSlide.HeadersFooters.Header.Text = "Header content is modified"
-'Save the modified PowerPoint presentation.
+'Saves the Presentation to the file system
pptxDoc.Save("Result.pptx")
'Close the Presentation
pptxDoc.Close()
@@ -602,23 +593,21 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
### Modify Date and Time format of an existing Slide
-Essential® Presentation library facilitates modifying the Date and Time of an existing slide in the PowerPoint Presentation.
+Essential® Presentation library facilitates modifying the Date and Time format of an existing slide in the PowerPoint presentation.
-The following code example demonstrates how to modify Date and Time of an existing slide in the presentation.
+The following code example demonstrates how to modify the Date and Time format of an existing slide in the presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Headers-and-Footers/Modify-date-and-time-format/.NET/Modify-date-and-time-format/Program.cs" %}
-//Load or open an PowerPoint Presentation
-FileStream inputStream = new FileStream(inputFileName,FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Gets the first slide from the cloned PowerPoint presentation
+//Load or open a PowerPoint Presentation
+IPresentation pptxDoc = Presentation.Open(inputFileName);
+//Gets the first slide from the PowerPoint presentation
ISlide slide = pptxDoc.Slides[0];
-//Modify Date and Time format of the Footer
-slide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimeddddMMMMddyyyy;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Modify the Date and Time format
+slide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimeddddMMMMddyyyy;
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -626,11 +615,11 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Load or open an PowerPoint Presentation
+//Load or open a PowerPoint Presentation
IPresentation pptxDoc = Presentation.Open("Footer.pptx");
-//Gets the first slide from the cloned PowerPoint presentation
+//Gets the first slide from the PowerPoint presentation
ISlide slide = pptxDoc.Slides[0];
-//Modify Date and Time format of the Footer
+//Modify the Date and Time format
slide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimeddddMMMMddyyyy;
//Saves the Presentation to the file system
pptxDoc.Save("Sample.pptx");
@@ -639,14 +628,14 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Load or open an PowerPoint Presentation
+'Load or open a PowerPoint Presentation
Dim pptxDoc As IPresentation = Presentation.Open("Footer.pptx")
'Gets the first slide from the PowerPoint presentation
-ISlide slide = pptxDoc.Slides[0]
-'Modify Date and Time format of the Footer
+Dim slide As ISlide = pptxDoc.Slides(0)
+'Modify the Date and Time format
slide.HeadersFooters.DateAndTime.Format = DateTimeFormatType.DateTimeddddMMMMddyyyy
'Saves the Presentation to the file system
-pptxDoc.Save("Sample.pptx
+pptxDoc.Save("Sample.pptx")
'Closes the Presentation
pptxDoc.Close()
{% endhighlight %}
@@ -661,17 +650,16 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
### Modify font of the Footer text
-Essential® Presentation library facilitates editing font of the [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) content in slide of the PowerPoint Presentation.
+Essential® Presentation library facilitates editing the font of the [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) content in a slide of the PowerPoint presentation.
-The following code example demonstrates how to edit font of the [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) content in slide of the presentation.
+The following code example demonstrates how to edit the font of the [Footer](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IHeadersFooters.html#Syncfusion_Presentation_IHeadersFooters_Footer) content in a slide of the presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Headers-and-Footers/Modify-footer-text-font/.NET/Modify-footer-text-font/Program.cs" %}
-//Load or open an PowerPoint Presentation
-FileStream inputStream = new FileStream(inputFileName,FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Gets the first slide from the cloned PowerPoint presentation
+//Load or open a PowerPoint Presentation
+IPresentation pptxDoc = Presentation.Open(inputFileName);
+//Gets the first slide from the PowerPoint presentation
ISlide slide = pptxDoc.Slides[0];
//Iterate each shape in slide
foreach(IShape shape in slide.Shapes)
@@ -685,9 +673,8 @@ foreach(IShape shape in slide.Shapes)
shape.TextBody.Paragraphs[0].Font.FontSize = 18;
}
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -695,9 +682,9 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Load or open an PowerPoint Presentation
+//Load or open a PowerPoint Presentation
IPresentation pptxDoc = Presentation.Open("Footer.pptx");
-//Gets the first slide from the cloned PowerPoint presentation
+//Gets the first slide from the PowerPoint presentation
ISlide slide = pptxDoc.Slides[0];
//Iterate each shape in slide
foreach(IShape shape in slide.Shapes)
@@ -718,10 +705,10 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Load or open an PowerPoint Presentation
+'Load or open a PowerPoint Presentation
Dim pptxDoc As IPresentation = Presentation.Open("Footer.pptx")
'Gets the first slide from the PowerPoint presentation
-ISlide slide = pptxDoc.Slides[0]
+Dim slide As ISlide = pptxDoc.Slides(0)
'Iterate each shape in slide
For Each shape As IShape In slide.Shapes
'Check whether the shape is with Placeholder SlideItemType and PlaceholderType as Footer
@@ -733,7 +720,7 @@ For Each shape As IShape In slide.Shapes
End If
Next
'Saves the Presentation to the file system
-pptxDoc.Save("Sample.pptx
+pptxDoc.Save("Sample.pptx")
'Closes the Presentation
pptxDoc.Close()
{% endhighlight %}
@@ -748,16 +735,15 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Remove Headers and Footers from Title Slides
-Essential® Presentation library facilitates removing Footers from all the [Title](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.SlideLayoutType.html) slides in the PowerPoint Presentation.
+Essential® Presentation library facilitates removing Footers, Date/Time, and Slide Number from all the [Title](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.SlideLayoutType.html) slides in the PowerPoint presentation.
-The following code example demonstrates how to remove Footers from all the [Title](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.SlideLayoutType.html) slides in the presentation.
+The following code example demonstrates how to remove Footers, Date/Time, and Slide Number from all the [Title](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.SlideLayoutType.html) slides in the presentation.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Headers-and-Footers/Remove-footers-from-all-title-slides/.NET/Remove-footers-from-all-title-slides/Program.cs" %}
-//Load or open an PowerPoint Presentation
-FileStream inputStream = new FileStream(inputFileName,FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+//Load or open a PowerPoint Presentation
+IPresentation pptxDoc = Presentation.Open(inputFileName);
//Iterate each slide in the Presentation
foreach(ISlide slide in pptxDoc.Slides)
@@ -765,17 +751,16 @@ foreach(ISlide slide in pptxDoc.Slides)
//Checks whether the LayoutType of Layout slide is Title
if (slide.LayoutSlide.LayoutType == SlideLayoutType.Title)
{
- //Sets the visibility of DateAndTime in the Title slide
+ //Sets the visibility of DateAndTime in the Title slide
slide.HeadersFooters.DateAndTime.Visible = false;
- //Sets the visibility of Footer in the Title slide
+ //Sets the visibility of Footer in the Title slide
slide.HeadersFooters.Footer.Visible = false;
- //Sets the visibility of SlideNumber in the Title slide
+ //Sets the visibility of SlideNumber in the Title slide
slide.HeadersFooters.SlideNumber.Visible = false;
}
}
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the Presentation to the file system
+pptxDoc.Save("Sample.pptx");
//Dispose the image stream
pictureStream.Dispose();
//Closes the Presentation
@@ -783,7 +768,7 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Load or open an PowerPoint Presentation
+//Load or open a PowerPoint Presentation
IPresentation pptxDoc = Presentation.Open("Footer.pptx");
//Iterate each slide in the Presentation
foreach(ISlide slide in pptxDoc.Slides)
@@ -791,11 +776,11 @@ foreach(ISlide slide in pptxDoc.Slides)
//Checks whether the LayoutType of Layout slide is Title
if (slide.LayoutSlide.LayoutType == SlideLayoutType.Title)
{
- //Sets the visibility of DateAndTime in the Title slide
+ //Sets the visibility of DateAndTime in the Title slide
slide.HeadersFooters.DateAndTime.Visible = false;
- //Sets the visibility of Footer in the Title slide
+ //Sets the visibility of Footer in the Title slide
slide.HeadersFooters.Footer.Visible = false;
- //Sets the visibility of SlideNumber in the Title slide
+ //Sets the visibility of SlideNumber in the Title slide
slide.HeadersFooters.SlideNumber.Visible = false;
}
}
@@ -806,7 +791,7 @@ pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Load or open an PowerPoint Presentation
+'Load or open a PowerPoint Presentation
Dim pptxDoc As IPresentation = Presentation.Open("Footer.pptx")
'Iterate each slide in the Presentation
For Each slide As ISlide In pptxDoc.Slides
@@ -814,14 +799,14 @@ For Each slide As ISlide In pptxDoc.Slides
If slide.LayoutSlide.LayoutType = SlideLayoutType.Title Then
'Sets the visibility of DateAndTime in the Title slide
slide.HeadersFooters.DateAndTime.Visible = False
- 'Sets the visibility of Footer in the Title slide
+ 'Sets the visibility of Footer in the Title slide
slide.HeadersFooters.Footer.Visible = False
- 'Sets the visibility of SlideNumber in the Title slide
+ 'Sets the visibility of SlideNumber in the Title slide
slide.HeadersFooters.SlideNumber.Visible = False
End If
Next
'Saves the Presentation to the file system
-pptxDoc.Save("Sample.pptx
+pptxDoc.Save("Sample.pptx")
'Closes the Presentation
pptxDoc.Close()
{% endhighlight %}
@@ -830,10 +815,16 @@ pptxDoc.Close()
By executing the program, you will get the PowerPoint slide as follows.
-
+
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Headers-and-Footers/Remove-footers-from-all-title-slides).
## Online Demo
-* Explore how to insert headers and footers in a PowerPoint presentation using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/headerandfooter#/tailwind).
\ No newline at end of file
+* Explore how to insert headers and footers in a PowerPoint presentation using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/headerandfooter#/tailwind).
+
+## See Also
+
+* [Syncfusion Presentation NuGet package](https://www.nuget.org/packages/Syncfusion.Presentation.AspNet/)
+* [Loading and Saving the Presentation](Loading-and-Saving-the-Presentation)
+* [NuGet Packages Required](NuGet-Packages-Required)
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-list.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-list.md
index db09cc1ef5..c84cd530f8 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-list.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-list.md
@@ -672,9 +672,8 @@ pptxDoc.Close()
{% endtabs %}
-You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Lists/Create-multilevel-list).
-
The above code example generates a multi-level list in Presentation as follows.

+You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Lists/Create-multilevel-list).
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-sections.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-sections.md
index 3b643c4620..6a10663dc7 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-sections.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/Working-with-sections.md
@@ -1,6 +1,6 @@
---
title: Working with sections in PowerPoint Presentation | Syncfusion |
-description: Learn here all about working with sections in the PowerPoint Presentation Library and more.
+description: Learn about working with sections in Syncfusion Presentation Library, including creating, managing and updating presentation sections programmatically.
platform: document-processing
control: Presentation
documentation: UG
@@ -10,7 +10,7 @@ keywords: sections in PowerPoint presentation
[Sections](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.IPresentation.html#Syncfusion_Presentation_IPresentation_Sections) helps to manage the slides of a PowerPoint presentation. If a presentation has many slides, you can organize the slides using sections to make the navigation easier.
-## Creating a section
+## Creating a section
### Adding a new slide to a section
@@ -29,9 +29,10 @@ section.Name = "SectionDemo";
ISlide slide = section.AddSlide(SlideLayoutType.Blank);
//Adds a text box to the slide
slide.AddTextBox(10, 10, 100, 100).TextBody.AddParagraph("Slide in SectionDemo");
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Section.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
+//Closes the PowerPoint presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -46,7 +47,7 @@ ISlide slide = section.AddSlide(SlideLayoutType.Blank);
//Adds a text box to the slide
slide.AddTextBox(10, 10, 100, 100).TextBody.AddParagraph("Slide in SectionDemo");
//Saves the PowerPoint presentation
-pptxDoc.Save("Section.pptx");
+pptxDoc.Save("Output.pptx");
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
@@ -61,7 +62,7 @@ Dim slide As ISlide = section.AddSlide(SlideLayoutType.Blank)
'Adds a text box to the slide
slide.AddTextBox(10, 10, 100, 100).TextBody.AddParagraph("Slide in SectionDemo")
'Saves the PowerPoint presentation
-pptxDoc.Save("Section.PPTX")
+pptxDoc.Save("Output.pptx")
{% endhighlight %}
{% endtabs %}
@@ -76,15 +77,15 @@ The following code example demonstrates how to add an existing slide to a sectio
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Sections/Add-existing-slide-in-PowerPoint-section/.NET/Add-existing-slide-in-PowerPoint-section/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("PPTXWithSections.PPTX",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Creates a new section in the PowerPoint presentation
pptxDoc.Sections.Add();
//Moves the first slide to the created section
pptxDoc.Slides[0].MoveToSection(0);
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Section.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
+//Closes the PowerPoint presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -95,7 +96,7 @@ pptxDoc.Sections.Add();
//Moves the first slide to the created section
pptxDoc.Slides[0].MoveToSection(0);
//Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX");
+pptxDoc.Save("Output.pptx");
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
@@ -106,7 +107,7 @@ pptxDoc.Sections.Add()
'Moves the first slide to the created section
pptxDoc.Slides(0).MoveToSection(0)
'Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX")
+pptxDoc.Save("Output.pptx")
{% endhighlight %}
{% endtabs %}
@@ -124,15 +125,16 @@ The following code example demonstrates how to insert a section in a template Po
IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Create a new section to Insert.
ISection section = pptxDoc.Sections.Add();
-//Name the created section.
+//Names the created section.
section.Name = "InsertedSection";
//Insert the section at second position.
pptxDoc.Sections.Insert(1, section);
//Remove the unwanted created section.
pptxDoc.Sections.RemoveAt(pptxDoc.Sections.Count - 1);
-//Save the PowerPoint Presentation as stream.
-FileStream outputStream = new FileStream("Section.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
+//Closes the PowerPoint presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -140,14 +142,14 @@ pptxDoc.Save(outputStream);
IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Create a new section to Insert.
ISection section = pptxDoc.Sections.Add();
-//Name the created section.
+//Names the created section.
section.Name = "InsertedSection";
//Insert the section at second position.
pptxDoc.Sections.Insert(1, section);
-//Remove the unwanted created section.
+//Removes the unwanted section appended by Add() (now duplicated at the end).
pptxDoc.Sections.RemoveAt(pptxDoc.Sections.Count - 1);
-//Save the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX");
+//Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
@@ -155,14 +157,14 @@ pptxDoc.Save("Sections.PPTX");
Dim pptxDoc As IPresentation = Presentation.Open("PPTXWithSections.PPTX")
'Create a new section to Insert.
Dim section As ISection = pptxDoc.Sections.Add()
-'Name the created section.
+'Names the created section.
section.Name = "InsertedSection"
'Insert the section at second position.
pptxDoc.Sections.Insert(1, section)
'Remove the unwanted created section.
pptxDoc.Sections.RemoveAt(pptxDoc.Sections.Count - 1)
-'Save the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX")
+'Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx")
{% endhighlight %}
{% endtabs %}
@@ -177,13 +179,13 @@ You can move the sections within a PowerPoint presentation. The following code e
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Sections/Move-section-positions/.NET/Move-section-positions/Program.cs" %}
//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("PPTXWithSections.PPTX",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Moves the second section to third position within the PowerPoint presentation.
pptxDoc.Sections[2].Move(3);
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Section.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
+//Closes the PowerPoint presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -192,7 +194,7 @@ IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Moves the second section to third position within the PowerPoint presentation.
pptxDoc.Sections[2].Move(3);
//Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX");
+pptxDoc.Save("Output.pptx");
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
@@ -201,7 +203,7 @@ Dim pptxDoc As IPresentation = Presentation.Open("PPTXWithSections.PPTX")
'Moves the second section to third position within the PowerPoint presentation.
pptxDoc.Sections(2).Move(3)
'Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX")
+pptxDoc.Save("Output.pptx")
{% endhighlight %}
{% endtabs %}
@@ -217,14 +219,15 @@ The following code example demonstrates how to move a slide from one section to
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Sections/Move-slide-within-section/.NET/Move-slide-within-section/Program.cs" %}
//Loads or open an PowerPoint Presentation
FileStream inputStream = new FileStream("PPTXWithSections.PPTX",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Gets the first slide of second section in the PowerPoint presentation
ISlide slide = pptxDoc.Sections[1].Slides[0];
-//Moves the slide to first section
+//Moves the slide to the first section
slide.MoveToSection(0);
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Section.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
+//Closes the PowerPoint presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -232,10 +235,10 @@ pptxDoc.Save(outputStream);
IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Gets the first slide of second section in the PowerPoint presentation
ISlide slide = pptxDoc.Sections[1].Slides[0];
-//Moves the slide to first section
+//Moves the slide to the first section
slide.MoveToSection(0);
//Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX");
+pptxDoc.Save("Output.pptx");
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
@@ -243,17 +246,17 @@ pptxDoc.Save("Sections.PPTX");
Dim pptxDoc As IPresentation = Presentation.Open("PPTXWithSections.PPTX")
'Gets the first slide of second section in the PowerPoint presentation
Dim slide As ISlide = pptxDoc.Sections(1).Slides(0)
-'Moves the slide to first section
+'Moves the slide to the first section
slide.MoveToSection(0)
'Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX")
+pptxDoc.Save("Output.pptx")
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Sections/Move-slide-within-section).
-## Cloning and merging the slides in a section
+## Cloning slides from a section
The following code example demonstrates how to clone the slide collection of a section and add those slides to a destination presentation.
@@ -262,67 +265,69 @@ The following code example demonstrates how to clone the slide collection of a s
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Sections/Clone-and-merge-section-slides/.NET/Clone-and-merge-section-slides/Program.cs" %}
//Loads or open an PowerPoint Presentation
FileStream inputStream = new FileStream("PPTXWithSections.PPTX",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Clones the slides in 3rd section
ISlides slides = pptxDoc.Sections[2].Clone();
//Creates a destination PowerPoint presentation instance. Existing presentations can also be used here.
-pptxDoc = Presentation.Create();
-//Iterates the cloned slides and adds the slides to the destination presentation
+IPresentation destinationPptx = Presentation.Create();
+//Iterates the cloned slides and adds them to the destination presentation
foreach (ISlide slide in slides)
- pptxDoc.Slides.Add(slide);
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Section.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+ destinationPptx.Slides.Add(slide);
+//Saves the destination PowerPoint presentation
+destinationPptx.Save("Output.pptx");
+//Closes the PowerPoint presentations
+sourcePptx.Close();
+destinationPptx.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
-//Loads a PowerPoint presentation
-IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
-//Clones the slides in 3rd section
-ISlides slides = pptxDoc.Sections[2].Clone();
+//Loads the source PowerPoint presentation
+IPresentation sourcePptx = Presentation.Open("PPTXWithSections.PPTX");
+//Clones the slides in the third section
+ISlides slides = sourcePptx.Sections[2].Clone();
//Creates a destination PowerPoint presentation instance. Existing presentations can also be used here.
-pptxDoc = Presentation.Create();
-//Iterates the cloned slides and adds the slides to the destination presentation
+IPresentation destinationPptx = Presentation.Create();
+//Iterates the cloned slides and adds them to the destination presentation
foreach (ISlide slide in slides)
- pptxDoc.Slides.Add(slide);
-//Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX");
+ destinationPptx.Slides.Add(slide);
+//Saves the destination PowerPoint presentation
+destinationPptx.Save("Output.pptx");
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
-'Loads a PowerPoint presentation
-Dim pptxDoc As IPresentation = Presentation.Open("PPTXWithSections.PPTX")
-'Clones the slides in 3rd section
-Dim slides As ISlides = pptxDoc.Sections(2).Clone()
+'Loads the source PowerPoint presentation
+Dim sourcePptx As IPresentation = Presentation.Open("PPTXWithSections.PPTX")
+'Clones the slides in the third section
+Dim slides As ISlides = sourcePptx.Sections(2).Clone()
'Creates a destination PowerPoint presentation instance. Existing presentations can also be used here.
-pptxDoc = Presentation.Create()
-'Iterates the cloned slides and adds the slides to the destination presentation
+Dim destinationPptx As IPresentation = Presentation.Create()
+'Iterates the cloned slides and adds them to the destination presentation
For Each slide As ISlide In slides
- pptxDoc.Slides.Add(slide)
+ destinationPptx.Slides.Add(slide)
Next
-'Save the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX")
+'Saves the destination PowerPoint presentation
+destinationPptx.Save("Output.pptx")
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Sections/Clone-and-merge-section-slides).
-## Removing a section
+## Removing a section
-The following code example demonstrates how to create remove a particular section from the sections collection of a presentation.
+The following code example demonstrates how to remove a particular section from the sections collection of a presentation. Removing a section does not delete the slides it contains; the slides are moved to the default (unnamed) section.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Sections/Remove-section/.NET/Remove-section/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("PPTXWithSections.PPTX",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+//Loads a PowerPoint presentation
+IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Removes the second section from the PowerPoint presentation
pptxDoc.Sections.Remove(pptxDoc.Sections[1]);
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Section.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
+//Closes the PowerPoint presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -331,7 +336,7 @@ IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
//Removes the second section from the PowerPoint presentation
pptxDoc.Sections.Remove(pptxDoc.Sections[1]);
//Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX");
+pptxDoc.Save("Output.pptx");
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
@@ -340,46 +345,46 @@ Dim pptxDoc As IPresentation = Presentation.Open("PPTXWithSections.PPTX")
'Removes the second section from the PowerPoint presentation
pptxDoc.Sections.Remove(pptxDoc.Sections(1))
'Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX")
+pptxDoc.Save("Output.pptx")
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Sections/Remove-section).
-## Remove all sections
+## Remove all sections
-The following code example demonstrates how to remove section collection from an existing PowerPoint presentation.
+The following code example demonstrates how to remove the section collection from an existing PowerPoint presentation. All slides remain in the presentation as part of the default (unnamed) section.
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Sections/Remove-all-sections/.NET/Remove-all-sections/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("PPTXWithSections.PPTX",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
-//Removes the sections
+//Loads a PowerPoint presentation
+IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
+//Removes all sections from the PowerPoint presentation
pptxDoc.Sections.Clear();
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sections.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Saves the PowerPoint presentation
+pptxDoc.Save("Output.pptx");
+//Closes the PowerPoint presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
//Loads a PowerPoint presentation
IPresentation pptxDoc = Presentation.Open("PPTXWithSections.PPTX");
-//Removes the sections
+//Removes all sections from the PowerPoint presentation
pptxDoc.Sections.Clear();
//Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX");
+pptxDoc.Save("Output.pptx");
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
'Loads a PowerPoint presentation
Dim pptxDoc As IPresentation = Presentation.Open("PPTXWithSections.PPTX")
-'Removes the sections
+'Removes all sections from the PowerPoint presentation
pptxDoc.Sections.Clear()
'Saves the PowerPoint presentation
-pptxDoc.Save("Sections.PPTX")
+pptxDoc.Save("Output.pptx")
{% endhighlight %}
{% endtabs %}
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/create-edit-connectors-in-powerpoint-slides-cs-vb-net.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/create-edit-connectors-in-powerpoint-slides-cs-vb-net.md
index 1aaff5e69a..b0a02512d5 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/create-edit-connectors-in-powerpoint-slides-cs-vb-net.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/create-edit-connectors-in-powerpoint-slides-cs-vb-net.md
@@ -1,5 +1,5 @@
---
-title: Add and edit connectors in PowerPoint slides | Syncfusion |
+title: Add, edit, and remove connectors in PowerPoint slides | Syncfusion
description: Code examples to create and edit PowerPoint connectors in .NET, C#, web, ASP.NET, UWP, MVC, Xamarin and .NET Core
platform: document-processing
control: Syncfusion® PowerPoint presentation
@@ -7,11 +7,9 @@ documentation:
keywords: PowerPoint, slide, connectors, pptx, shapes
---
-# Adding connectors in PowerPoint slides
+# Adding, editing, and removing connectors in PowerPoint slides
-Essential® Presentation library supports adding, editing, and removing the connectors in a PowerPoint file. The following code example demonstrates how to add a connector between two shapes.
-
-The following code example demonstrates how to add a connector in PowerPoint slide.
+Essential® Presentation library supports adding, editing, and removing connectors in a PowerPoint file. The following code example demonstrates how to add a connector between two shapes.
{% tabs %}
@@ -26,9 +24,8 @@ using (IPresentation pptxDoc = Presentation.Create())
IShape oval = slide.Shapes.AddShape(AutoShapeType.Oval, 400, 10, 100, 100);
//Add elbow connector on the slide and connect the end points of connector with specified port positions 0 and 4 of the beginning and end shapes
IConnector connector = slide.Shapes.AddConnector(ConnectorType.Elbow, rectangle, 0, oval, 4);
- //Save the PowerPoint Presentation as stream
- FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
- pptxDoc.Save(outputStream);
+ //Save the PowerPoint file
+ pptxDoc.Save("Sample.pptx");
}
{% endhighlight %}
@@ -71,7 +68,7 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Adding a single point connector
-You can also add a connector to a source shape without any destination shapes. The following code example demonstrates how to add a connector with single point connection.
+You can also add a connector with only one end connected to a source shape, while the other end remains free. The following code example demonstrates how to add a single point connector.
{% tabs %}
@@ -94,9 +91,8 @@ using (IPresentation pptxDoc = Presentation.Create())
connector.LineFormat.Fill.FillType = FillType.Solid;
//Set the connector solid fill as black
connector.LineFormat.Fill.SolidFill.Color = ColorObject.Black;
- //Save the PowerPoint Presentation as stream
- FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
- pptxDoc.Save(outputStream);
+ //Save the PowerPoint file
+ pptxDoc.Save("Sample.pptx");
}
{% endhighlight %}
@@ -158,10 +154,8 @@ The following code example demonstrates how to edit an existing connector in a P
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Connectors/Modify-existing-connector/.NET/Modify-existing-connector/Program.cs" %}
-//Loads an PowerPoint file in stream
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
//Opens the loaded PowerPoint file
-using (IPresentation pptxDoc = Presentation.Open(inputStream))
+using (IPresentation pptxDoc = Presentation.Open("Sample.pptx"))
{
//Get the first slide of a PowerPoint file
ISlide slide = pptxDoc.Slides[0];
@@ -171,19 +165,18 @@ using (IPresentation pptxDoc = Presentation.Open(inputStream))
connector.LineFormat.BeginArrowheadStyle = ArrowheadStyle.ArrowOpen;
//Set the line format for the connector
connector.LineFormat.DashStyle = LineDashStyle.DashDotDot;
- //Disconnect the end connection of the connector if end point get connected
+ //Disconnect the end connection of the connector if end point gets connected
if (connector.EndConnectedShape != null)
connector.EndDisconnect();
//Insert a triangle shape into slide
IShape triangle = slide.Shapes.AddShape(AutoShapeType.IsoscelesTriangle, 600, 500, 150, 150);
//Declare the end connection site index
int connectionSiteIndex = 4;
- //Reconnect the end point of connector with triangle shape if its connection site count is greater than 4
+ //Reconnect the end point of the connector with the triangle if the triangle has enough connection sites
if (connectionSiteIndex < triangle.ConnectionSiteCount)
connector.EndConnect(triangle, connectionSiteIndex);
- //Save the PowerPoint Presentation as stream
- FileStream outputStream = new FileStream("Connector.pptx", FileMode.Create);
- pptxDoc.Save(outputStream);
+ //Save the PowerPoint file
+ pptxDoc.Save("Connector.pptx");
}
{% endhighlight %}
@@ -218,7 +211,7 @@ using (IPresentation pptxDoc = Presentation.Open("Sample.pptx"))
' Open an existing PowerPoint file.
Using pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
'Get the first slide of a PowerPoint file
- Dim slide As ISlide = pptxDoc.Slides(2)
+ Dim slide As ISlide = pptxDoc.Slides(0)
'Get the connector from a slide
Dim connector As IConnector = CType(slide.Shapes(2), IConnector)
'Set the beginning cap for the connector
@@ -233,7 +226,7 @@ Using pptxDoc As IPresentation = Presentation.Open("Sample.pptx")
Dim triangle As IShape = slide.Shapes.AddShape(AutoShapeType.IsoscelesTriangle, 600, 500, 150, 150)
'Declare the end connection site index
Dim connectionSiteIndex As Integer = 4
- 'Reconnect the end point of connector with triangle shape if its connection site count is greater than 4
+ 'Reconnect the end point of the connector with the triangle if the triangle has enough connection sites
If (connectionSiteIndex < triangle.ConnectionSiteCount) Then
connector.EndConnect(triangle, connectionSiteIndex)
End If
@@ -253,10 +246,8 @@ The following code example demonstrates how to update a connector’s position w
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Connectors/Update-connector-position/.NET/Update-connector-position/Program.cs" %}
-//Loads an PowerPoint file in stream
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
//Opens the loaded PowerPoint file
-using (IPresentation pptxDoc = Presentation.Open(inputStream))
+using (IPresentation pptxDoc = Presentation.Open("Sample.pptx"))
{
//Get the first slide of a PowerPoint file
ISlide slide = pptxDoc.Slides[0];
@@ -267,11 +258,10 @@ using (IPresentation pptxDoc = Presentation.Open(inputStream))
//Change the X and Y position of the rectangle
rectangle.Left = 600;
rectangle.Top = 200;
- //Update the connector to connect with previously updated shape
+ //Update the connector to reflect the new shape position
connector.Update();
- //Save the PowerPoint Presentation as stream
- FileStream outputStream = new FileStream("Connector.pptx", FileMode.Create);
- pptxDoc.Save(outputStream);
+ //Save the PowerPoint file
+ pptxDoc.Save("Connector.pptx");
}
{% endhighlight %}
@@ -325,20 +315,17 @@ The following code example demonstrates how to remove a connector from PowerPoin
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Connectors/Remove-connector-from-shapes/.NET/Remove-connector-from-shapes/Program.cs" %}
-//Loads an PowerPoint file in stream
-FileStream inputStream = new FileStream("Sample.pptx", FileMode.Open);
//Opens the loaded PowerPoint file
-using (IPresentation pptxDoc = Presentation.Open(inputStream))
+using (IPresentation pptxDoc = Presentation.Open("Sample.pptx"))
{
//Get the first slide of a PowerPoint file
- ISlide slide = pptxDoc.Slides[0];
+ ISlide slide = pptxDoc.Slides[0];
//Get the connector from a slide
IConnector connector = slide.Shapes[2] as IConnector;
//Remove the connector from slide
slide.Shapes.Remove(connector);
- //Save the PowerPoint Presentation as stream
- FileStream outputStream = new FileStream("Connector.pptx", FileMode.Create);
- pptxDoc.Save(outputStream);
+ //Save the PowerPoint file
+ pptxDoc.Save("Connector.pptx");
}
{% endhighlight %}
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/create-edit-slide-transitions-in-powerpoint-presentation-slides-cs-vb-net.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/create-edit-slide-transitions-in-powerpoint-presentation-slides-cs-vb-net.md
index 53686a9767..cf2c1550fe 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/create-edit-slide-transitions-in-powerpoint-presentation-slides-cs-vb-net.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/create-edit-slide-transitions-in-powerpoint-presentation-slides-cs-vb-net.md
@@ -9,17 +9,17 @@ keywords: PowerPoint, slide, format-table, pptx, transitions
# Add and edit transitions in PowerPoint slides
-Slide transitions are the motion effects that occur when you move from one slide to the next during a slide show presentation. A transition can be simple as push type that pushes to the next slide or an airplane type that displays the next slide like an eye-catching effect. You can control the speed, add sound, and customize the properties of transition effects. Transition effects can be grouped into three categories.
+Slide transitions are the motion effects that occur when you move from one slide to the next during a slide show presentation. A transition can be as simple as a Push transition that moves to the next slide, or as eye-catching as an Airplane transition that animates the next slide in. You can control the speed, add sound, and customize the properties of transition effects. Transition effects can be grouped into three categories.
1. Subtle
2. Exciting
3. Dynamic Content
-Transition effect contains the following properties. This makes slide transition more flexible and interactive.
-
-1. Start (after a click or after certain time)
-2. Duration
-3. Speed
+Transition effects have the following properties. These make slide transitions more flexible and interactive.
+
+1. Start (after a click or after a certain time)
+2. Duration
+3. Speed
## Set a transition effect to a PowerPoint slide
@@ -34,13 +34,12 @@ IPresentation pptxDoc = Presentation.Create();
ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
//Add a shape to the slide
IShape cubeShape = slide.Shapes.AddShape(AutoShapeType.Cube, 100, 100, 300, 300);
-//Set the transition effect type
+//Set the transition effect type
slide.SlideTransition.TransitionEffect = TransitionEffect.Checkerboard;
//Set the transition effect options
slide.SlideTransition.TransitionEffectOption = TransitionEffectOption.Across;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream(OutputFileName, FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the presentation
+pptxDoc.Save("Sample.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -90,18 +89,16 @@ You can edit the transition effects that already applied to the PowerPoint slide
{% tabs %}
{% highlight c# tabtitle="C# [Cross-platform]" playgroundButtonLink="https://raw.githubusercontent.com/SyncfusionExamples/PowerPoint-Examples/master/Slide-transitions/Modify-transition-effect/.NET/Modify-transition-effect/Program.cs" %}
-//Loads or open an PowerPoint Presentation
-FileStream inputStream = new FileStream("Sample.pptx",FileMode.Open);
-IPresentation pptxDoc = Presentation.Open(inputStream);
+//Open an existing PowerPoint presentation
+IPresentation pptxDoc = Presentation.Open("Sample.pptx");
//Retrieve the first slide from the presentation
ISlide slide = pptxDoc.Slides[0];
//Modify the transition effect applied to the slide
slide.SlideTransition.TransitionEffect = TransitionEffect.Cover;
//Set the transition subtype
slide.SlideTransition.TransitionEffectOption = TransitionEffectOption.Right;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Transition.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the presentation
+pptxDoc.Save("Transition.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -157,9 +154,8 @@ IShape cubeShape = slide.Shapes.AddShape(AutoShapeType.Cube, 50, 200, 300, 300);
slide.SlideTransition.TransitionEffect = TransitionEffect.Checkerboard;
// Set the duration in seconds for the transition effect. Maximum duration value is 59 seconds
slide.SlideTransition.Duration = 40;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Transition.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the presentation
+pptxDoc.Save("Transition.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -188,9 +184,9 @@ Dim pptxDoc As IPresentation = Presentation.Create()
Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
'Add a shape to the slide
Dim cubeShape As IShape = slide.Shapes.AddShape(AutoShapeType.Cube, 50, 200, 300, 300)
-'Add a shape to the slide
+'Set the transition effect type
slide.SlideTransition.TransitionEffect = TransitionEffect.Checkerboard
-'Set the duration value(sec) for the transition effect. Max duration value is 59 seconds
+'Set the duration value (in seconds) for the transition effect. Maximum duration value is 59 seconds
slide.SlideTransition.Duration = 40
'Save the presentation
pptxDoc.Save("Transition.pptx")
@@ -204,7 +200,7 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Set the transition delay
-You can set the transition delay in seconds. This delays the next transactions to happen for a certain number of seconds. The following example demonstrates how to apply the time delay.
+You can set the transition delay in seconds. This delays the next transition by the specified number of seconds. The following example demonstrates how to apply the time delay.
{% tabs %}
@@ -221,9 +217,8 @@ slide.SlideTransition.TransitionEffect = TransitionEffect.Checkerboard;
slide.SlideTransition.TriggerOnTimeDelay = true;
//Assign the value for the advance time delay in seconds
slide.SlideTransition.TimeDelay = 5;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the presentation
+pptxDoc.Save("Sample.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -272,10 +267,10 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Set the trigger mode for the transition
-The next slide transition can be triggered by the following two ways:
+The next slide transition can be triggered in the following two ways:
-1. Mouse clicks - Brings the next slide to the view.
-2. Setting a time - Brings the next slide after that specified time without any interactions.
+1. **On mouse click** - Advances to the next slide when the user clicks.
+2. **After a specified time** - Advances to the next slide automatically after the specified time, without any user interaction.
The [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) allows you to set both the previously given trigger modes while using PowerPoint slide transitions. Refer to the following code example.
@@ -292,9 +287,8 @@ IShape cubeShape = slide.Shapes.AddShape(AutoShapeType.Cube, 50, 200, 300, 300);
slide.SlideTransition.TransitionEffect = TransitionEffect.Checkerboard;
//Set transition advance on click to true. This will enable the next transition after a click
slide.SlideTransition.TriggerOnClick = true;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the presentation
+pptxDoc.Save("Sample.pptx");
//Close the presentation
pptxDoc.Close();
{% endhighlight %}
@@ -339,7 +333,7 @@ You can download a complete working sample from [GitHub](https://github.com/Sync
## Set the speed for transition effect
-The speed is the customized property provided by the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) to set the transition duration mentioned [above](/document-processing/powerpoint/powerpoint-library/net/create-edit-slide-transitions-in-powerpoint-presentation-slides-cs-vb-net#set-the-transition-duration) (in this page) to a customized enumeration values. By default, each transition will happen for 2 seconds. You can change the following enumeration values to change the duration of a slide transition:
+The `Speed` property is a predefined enumeration provided by the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) that maps to a fixed transition duration (described in the [Set the transition duration](#set-the-transition-duration) section above). By default, each transition lasts 2 seconds. You can assign any of the following enumeration values to change the duration of a slide transition:
1. Default - 2 seconds
2. [Fast](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.TransitionSpeed.html) - 0.5 seconds
@@ -357,11 +351,12 @@ ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
IShape cubeShape = slide.Shapes.AddShape(AutoShapeType.Cube, 50, 200, 300, 300);
//Set the transition effect type
slide.SlideTransition.TransitionEffect = TransitionEffect.Checkerboard;
-//Set the transition effect speed enumeration. This will reduce the transition duration to 0.75 seconds from the default 2 second
+//Set the transition effect speed enumeration. This will reduce the transition duration to 0.75 seconds from the default 2 seconds
slide.SlideTransition.Speed = TransitionSpeed.Medium;
-//Save the PowerPoint Presentation as stream
-FileStream outputStream = new FileStream("Sample.pptx", FileMode.Create);
-pptxDoc.Save(outputStream);
+//Save the presentation
+pptxDoc.Save("Sample.pptx");
+//Close the presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight c# tabtitle="C# [Windows-specific]" %}
@@ -373,10 +368,12 @@ ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
IShape cubeShape = slide.Shapes.AddShape(AutoShapeType.Cube, 50, 200, 300, 300);
//Set the transition effect type
slide.SlideTransition.TransitionEffect = TransitionEffect.Checkerboard;
-//Set the transition effect speed enumeration. This will reduce the transition duration to 0.75 seconds from the default 2 second
+//Set the transition effect speed enumeration. This will reduce the transition duration to 0.75 seconds from the default 2 seconds
slide.SlideTransition.Speed = TransitionSpeed.Medium;
//Save the presentation
pptxDoc.Save("Sample.pptx");
+//Close the presentation
+pptxDoc.Close();
{% endhighlight %}
{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %}
@@ -392,15 +389,17 @@ slide.SlideTransition.TransitionEffect = TransitionEffect.Checkerboard
slide.SlideTransition.Speed = TransitionSpeed.Medium
'Save the presentation
pptxDoc.Save("Sample.pptx")
+'Close the presentation
+pptxDoc.Close()
{% endhighlight %}
{% endtabs %}
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Slide-transitions/Set-transition-speed).
-## Supported transition effect types:
+## Supported transition effect types
-The following are the list of transition effect options that can be applied to each transition effects.
+The following table lists the transition effect options that can be applied to each transition effect.
@@ -756,7 +755,7 @@ Morph
ByObject
ByWord
-ByChar
+
ByChar
@@ -1127,4 +1126,11 @@ Zoom
## Online Demo
-* Explore how to create slide transition effects in a PowerPoint presentation using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/slidetransition#/tailwind).
\ No newline at end of file
+* Explore how to create slide transition effects in a PowerPoint presentation using the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) (Presentation) in a live demo [here](https://document.syncfusion.com/demos/powerpoint/slidetransition#/tailwind).
+
+## Related API references
+
+* [`TransitionEffect`](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.TransitionEffect.html) enum
+* [`TransitionEffectOption`](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.TransitionEffectOption.html) enum
+* [`TransitionSpeed`](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.TransitionSpeed.html) enum
+* [`ISlideTransition`](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.ISlideTransition.html) interface
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/faqs/migrate-from-net-framework-to-net-core.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/faqs/migrate-from-net-framework-to-net-core.md
index 8dc3d0b3cc..2952518941 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/faqs/migrate-from-net-framework-to-net-core.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/faqs/migrate-from-net-framework-to-net-core.md
@@ -1,12 +1,12 @@
---
-title: Migrate from .NET Framework to .NET core | Presentation | Syncfusion
-description: This section illustrates migrating Syncfusion® .NET PowerPoint (Presentation) library from .NET Framework to .NET core.
+title: Migrate from .NET Framework to .NET Core | Presentation | Syncfusion
+description: This section illustrates migrating Syncfusion® .NET PowerPoint (Presentation) library from .NET Framework to .NET Core.
platform: document-processing
control: Presentation
documentation: UG
---
# Migrate Presentation library from .NET Framework to .NET Core
-In this section, we will see about the changes which need to be considered while migrating Syncfusion® .NET PowerPoint (Presentation) library from .NET Framework to .NET Core.
+In this section, we will review the changes required when migrating the Syncfusion® .NET PowerPoint (Presentation) library from .NET Framework to .NET Core.
## NuGet Packages
@@ -23,26 +23,26 @@ In this section, we will see about the changes which need to be considered while
-Not applicable - Classes are moved within Syncfusion.PresentationRenderer namespace.
+Not applicable - Classes are moved within the Syncfusion.PresentationRenderer namespace.
@@ -93,7 +93,7 @@ Not applicable - Classes are moved within Syncfusion.PresentationRenderer namesp
-This is the default approach in .NET Core and handled internally.
+No code change required. Equivalent portable rendering is now the default behavior in .NET Core and is handled internally.
-Not supported due to .NET Core limitations.
+Not supported due to .NET Core limitations. Nested metafile recreation has no workaround in .NET Core; flatten metafiles before conversion if required.
-You can open the document as stream from the file system using {{'[Presentation.Open(Stream)](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.Presentation.html#Syncfusion_Presentation_Presentation_Open_System_IO_Stream"")'| markdownify }} API.
+The path-based overload remains available. Alternatively, open a file as a stream using {{'[Presentation.Open(Stream)](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.Presentation.html#Syncfusion_Presentation_Presentation_Open_System_IO_Stream)'| markdownify }}.
-You can save the document as stream to the file system using {{'[Presentation.Save(Stream)](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.Presentation.html#Syncfusion_Presentation_Presentation_Save_System_IO_Stream_"")'| markdownify }} API.
+The path-based overload remains available. Alternatively, save to a stream using {{'[Presentation.Save(Stream)](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.Presentation.html#Syncfusion_Presentation_Presentation_Save_System_IO_Stream_)'| markdownify }}.
You can save the document as stream and then download from browser.
@@ -187,29 +187,38 @@ You can save the document as stream and then download from browser.
## Advantages
-Supports Windows, macOS, Linux, docker, Azure, and AWS environments.
+- Cross-platform support: Windows, macOS, Linux, Docker, Azure, and AWS environments.
+- Full feature parity with the .NET Framework library for core PowerPoint creation, editing, and conversion scenarios.
+- A single package (`Syncfusion.Presentation.Net.Core`) replaces the multiple platform-specific packages required on .NET Framework.
## Known limitations
-EMF and WMF images are not supported in .NET Core platform.
+- **EMF and WMF images are not supported in .NET Core.** Replace any embedded EMF/WMF images with PNG or JPEG before conversion.
+- For a full list of platform-level limitations (chart types, OLE objects, and so on), see the [Syncfusion PowerPoint library limitations](https://help.syncfusion.com/document-processing/powerpoint/overview#limitations) page.
## Notable changes
-* Graphics library: In .NET Framework, our library makes use of System.Drawing.Common for any text measuring and graphics-related operations. Whereas in .NET Core, our library uses the SkiaSharp graphics library to provide the same type of graphics.
-* The below features are make use of SkiaSharp graphics library, which are separated into a separate package, [Syncfusion.PresentationRenderer.Net.Core](https://www.nuget.org/packages/Syncfusion.PresentationRenderer.Net.Core)
- * [PowerPoint Presentation to PDF](https://help.syncfusion.com/document-processing/powerpoint/conversions/powerpoint-to-pdf/net/presentation-to-pdf)
- * [PowerPoint Presentation to Image](https://help.syncfusion.com/document-processing/powerpoint/conversions/powerpoint-to-image/net/presentation-to-image)
-* During PowerPoint Presentation to PDF/Image conversion, if you are facing font-related problems (like accessing font from the environment), you can pass the fonts as streams using our [font substitution approach](https://help.syncfusion.com/document-processing/powerpoint/conversions/powerpoint-to-pdf/net/presentation-to-pdf#font-substitution-for-unavailable-fonts).
+- **Graphics library:** In .NET Framework, the library uses `System.Drawing.Common` for text measuring and graphics operations. In .NET Core, the library uses the [SkiaSharp](https://learn.microsoft.com/en-us/dotnet/api/skiasharp?view=skiasharp) graphics library to provide the same behavior. When deploying to Linux, ensure the SkiaSharp native assets for the target runtime are available.
+- **Separate renderer package:** The following conversion features rely on SkiaSharp and are delivered through a separate package, [Syncfusion.PresentationRenderer.Net.Core](https://www.nuget.org/packages/Syncfusion.PresentationRenderer.Net.Core):
+ - [PowerPoint Presentation to PDF](https://help.syncfusion.com/document-processing/powerpoint/conversions/powerpoint-to-pdf/net/presentation-to-pdf)
+ - [PowerPoint Presentation to Image](https://help.syncfusion.com/document-processing/powerpoint/conversions/powerpoint-to-image/net/presentation-to-image)
+- **Font handling:** During PowerPoint-to-PDF or PowerPoint-to-Image conversion, if you encounter font-related issues (such as missing fonts in the environment), pass the fonts as streams using the [font substitution approach](https://help.syncfusion.com/document-processing/powerpoint/conversions/powerpoint-to-pdf/net/presentation-to-pdf#font-substitution-for-unavailable-fonts).
-N> If you want to migrate without any code changes from [Syncfusion.Presentation.ASP.NET](https://www.nuget.org/packages/Syncfusion.Presentation.AspNet.Mvc4) NuGet in application targeting .NET Framework, you can consider to use anyone of the packages
+N> If you want to migrate without any code changes from the [Syncfusion.Presentation.AspNet.Mvc4](https://www.nuget.org/packages/Syncfusion.Presentation.AspNet.Mvc4) NuGet in an application targeting .NET Framework, you can use any of the following packages:
N> * [Syncfusion.Presentation.WinForms](https://www.nuget.org/packages/Syncfusion.Presentation.WinForms)
N> * [Syncfusion.Presentation.Wpf](https://www.nuget.org/packages/Syncfusion.Presentation.Wpf)
-N> * [Syncfusion.Presentation.AspNet.Mcv4](https://www.nuget.org/packages/Syncfusion.Presentation.AspNet.Mvc4)
-N>*But, this is not a recommended approach.*
+N> * [Syncfusion.Presentation.AspNet.Mvc4](https://www.nuget.org/packages/Syncfusion.Presentation.AspNet.Mvc4)
+N>
+N> *This approach is not recommended for new development.*
+
+## See also
+- [NuGet Packages Required](https://help.syncfusion.com/document-processing/powerpoint/powerpoint-library/net/nuget-packages-required)
+- [Getting Started with Presentation library](https://help.syncfusion.com/document-processing/powerpoint/powerpoint-library/net/getting-started)
+- [Create PowerPoint in ASP.NET Core](https://help.syncfusion.com/document-processing/powerpoint/powerpoint-library/net/create-read-edit-powerpoint-files-in-asp-net-core-c-sharp)
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/faqs/multithreading-in-powerpoint-library-faqs.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/faqs/multithreading-in-powerpoint-library-faqs.md
index 85b1dd9cac..2a5ac50268 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/faqs/multithreading-in-powerpoint-library-faqs.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/faqs/multithreading-in-powerpoint-library-faqs.md
@@ -1,22 +1,22 @@
---
-title: FAQ about multithreading in PowerPoint presentation | Syncfusion
+title: FAQ about multithreading with the PowerPoint library | Syncfusion
description: Learn about the FAQs on multithreading support for opening, editing, and saving PowerPoint presentations using the .NET PowerPoint (Presentation) library.
platform: document-processing
control: PowerPoint
documentation: UG
---
-# Frequently asked questions about multithreading in PowerPoint
+# FAQ about multithreading in the PowerPoint library
-The frequently asked questions regarding multithreading and thread-safety support in opening, editing, and saving PowerPoint presentations are listed below.
+The frequently asked questions regarding multithreading and thread-safety support in opening, editing, and saving PowerPoint presentations using the Syncfusion [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) are listed below.
## Does the PowerPoint library support multithreading and thread-safety?
-Yes, the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) is thread-safe, allowing you to create multiple instances of the [Presentation](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.html) class to load the same file as multiple copies or different PowerPoint files and save them using multithreading in C#.
+Yes, the [.NET PowerPoint Library](https://www.syncfusion.com/document-sdk/net-powerpoint-library) is thread-safe. You can create multiple instances of the [Presentation](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.html) class on different threads to load the same or different PowerPoint files and save them concurrently using multithreading in C# and VB.NET. Thread-safety applies per instance — each `Presentation` instance should be used by a single thread; do not share one instance across threads.
-### Multithreading PowerPoint reading using tasks
+### Multithreading PowerPoint open-edit-save using tasks
-The following code example illustrates how to use multithreading to open, edit, and save multiple copies of a PowerPoint presentation by creating multiple tasks in C#.
+The following code example illustrates how to use multithreading to open, edit, and save multiple copies of a PowerPoint presentation by creating multiple tasks in C# and VB.NET.
{% tabs %}
@@ -132,9 +132,9 @@ End Module
You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Multithreading-using-tasks).
-### Multithreading PowerPoint reading using parallel process
+### Multithreading PowerPoint open-edit-save using a parallel for loop
-The following code example illustrates how to use a parallel for loop to process multiple tasks concurrently, opening, editing, and saving PowerPoint presentations using multithreading in C#.
+The following code example illustrates how to use a parallel for loop to process multiple iterations concurrently, opening, editing, and saving PowerPoint presentations using multithreading in C# and VB.NET.
{% tabs %}
@@ -248,4 +248,10 @@ End Module
{% endtabs %}
-You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Multithreading-using-parallel-process).
\ No newline at end of file
+You can download a complete working sample from [GitHub](https://github.com/SyncfusionExamples/PowerPoint-Examples/tree/master/Read-and-save-PowerPoint-presentation/Multithreading-using-parallel-process).
+
+## See also
+
+- [Loading and saving the presentation](https://help.syncfusion.com/document-processing/powerpoint/powerpoint-library/net/loading-and-saving-the-presentation)
+- [Open and save a PowerPoint presentation in a console application](https://help.syncfusion.com/document-processing/powerpoint/powerpoint-library/net/open-and-save-powerpoint-in-console-application)
+- [Syncfusion Presentation API reference](https://help.syncfusion.com/cr/document-processing/Syncfusion.Presentation.html)
\ No newline at end of file
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/installation/offline-installer/how-to-install.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/installation/offline-installer/how-to-install.md
index 64127fd632..8b18e003c1 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/installation/offline-installer/how-to-install.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/installation/offline-installer/how-to-install.md
@@ -28,70 +28,70 @@ The steps below show how to install the Essential Studio® PowerPo
Step 1: Open the Syncfusion® PowerPoint offline installer file from the downloaded location by double-clicking it. The Installer Wizard automatically opens and extracts the package.
- 
+
- N> The Installer wizard extracts the `syncfusion essential powerpoint_(version).exe` dialog, which displays the package's unzip operation.
+N> The Installer wizard extracts the `syncfusion essential powerpoint_(version).exe` dialog, which displays the package's unzip operation.
Step 2: To unlock the Syncfusion® offline installer, you have two options:
- * Login To Install
+* Login To Install
- * Use Unlock Key
+* Use Unlock Key
- **Login To Install**
+**Login To Install**
- You must enter your Syncfusion® email address and password. If you do not already have a Syncfusion® account, you can sign up for one by clicking **Create an account**. If you have forgotten your password, click on **Forgot Password** to create a new one. Once you have entered your Syncfusion® email and password, click **Next**.
+You must enter your Syncfusion® email address and password. If you do not already have a Syncfusion® account, you can sign up for one by clicking **Create an account**. If you have forgotten your password, click on **Forgot Password** to create a new one. Once you have entered your Syncfusion® email and password, click **Next**.
- 
+
- **Use Unlock Key**
+**Use Unlock Key**
- Unlock keys are used to unlock the Syncfusion® offline installer, and they are platform- and version-specific. You should use either a Syncfusion® licensed or trial Unlock key to unlock the Syncfusion® PowerPoint installer.
+Unlock keys are used to unlock the Syncfusion® offline installer, and they are platform- and version-specific. You should use either a Syncfusion® licensed or trial Unlock key to unlock the Syncfusion® PowerPoint installer.
- Trial unlock keys expire after 30 days and will be rejected by the installer. Licensed unlock keys are valid for the duration of your subscription. Trial unlock keys are emailed after download; licensed keys are available from your Syncfusion® account.
+Trial unlock keys expire after 30 days and will be rejected by the installer. Licensed unlock keys are valid for the duration of your subscription. Trial unlock keys are emailed after download; licensed keys are available from your Syncfusion® account.
- To learn how to generate an unlock key for both trial and licensed products, see [How to generate an unlock key](https://www.syncfusion.com/kb/2326) Knowledge Base article.
+To learn how to generate an unlock key for both trial and licensed products, see [How to generate an unlock key](https://www.syncfusion.com/kb/2326) Knowledge Base article.
- 
+
Step 3: After reading the License Terms and Privacy Policy, select the **I agree to the License Terms and Privacy Policy** check box. Click the **Next** button.
Step 4: Change the install and sample locations here. You can also change the additional settings. Click **Next**, then click **Install** to install with the default settings.
- 
+
- **Additional Settings**
+**Additional Settings**
- * Select the **Install Demos** check box to install Syncfusion® samples to `{InstallPath}\Samples`, or leave the check box unchecked if you do not want to install Syncfusion® samples.
- * Select the **Register Syncfusion® Assemblies in GAC** check box to install the latest Syncfusion® assemblies in GAC, or clear this check box when you do not want to install the latest assemblies in GAC.
- * Select the **Configure Syncfusion® controls in Visual Studio** check box to configure the Syncfusion® controls in the Visual Studio toolbox, or clear this check box when you do not want to configure the Syncfusion® controls in the Visual Studio toolbox during installation. You must also select the **Register Syncfusion® Assemblies in GAC** check box when you select this check box.
- * Select the **Configure Syncfusion® Extensions controls in Visual Studio** check box to configure the Syncfusion® Extensions in Visual Studio, or clear this check box when you do not want to configure the Syncfusion® Extensions in Visual Studio.
- * Select the **Create Desktop Shortcut** check box to add a desktop shortcut for Syncfusion® Control Panel.
- * Select the **Create Start Menu Shortcut** check box to add a shortcut to the Start menu for Syncfusion® Control Panel.
+* Select the **Install Demos** check box to install Syncfusion® samples to `{InstallPath}\Samples`, or leave the check box unchecked if you do not want to install Syncfusion® samples.
+* Select the **Register Syncfusion® Assemblies in GAC** check box to install the latest Syncfusion® assemblies in GAC, or clear this check box when you do not want to install the latest assemblies in GAC.
+* Select the **Configure Syncfusion® controls in Visual Studio** check box to configure the Syncfusion® controls in the Visual Studio toolbox, or clear this check box when you do not want to configure the Syncfusion® controls in the Visual Studio toolbox during installation. You must also select the **Register Syncfusion® Assemblies in GAC** check box when you select this check box.
+* Select the **Configure Syncfusion® Extensions controls in Visual Studio** check box to configure the Syncfusion® Extensions in Visual Studio, or clear this check box when you do not want to configure the Syncfusion® Extensions in Visual Studio.
+* Select the **Create Desktop Shortcut** check box to add a desktop shortcut for Syncfusion® Control Panel.
+* Select the **Create Start Menu Shortcut** check box to add a shortcut to the Start menu for Syncfusion® Control Panel.
Step 5: If any previous versions of the current product are installed, the **Uninstall Previous Version(s)** wizard will open. Select the **Uninstall** check box to uninstall the previous versions, then click the **Proceed** button.
- 
+
- N> From version 18.1 onwards, Syncfusion® provides the option to uninstall previous versions while installing the new version.
+N> From version 18.1 onwards, Syncfusion® provides the option to uninstall previous versions while installing the new version.
- N> If any version is selected to uninstall, a confirmation screen will appear. If you click **Continue**, the Progress screen displays the uninstall and install progress. If none of the versions are chosen to be uninstalled, only the installation progress will be displayed.
+N> If any version is selected to uninstall, a confirmation screen will appear. If you click **Continue**, the Progress screen displays the uninstall and install progress. If none of the versions are chosen to be uninstalled, only the installation progress will be displayed.
- **Uninstall Progress:**
+**Uninstall Progress:**
- 
+
- **Install Progress:**
+**Install Progress:**
- 
+
- N> The Completed screen is displayed once the PowerPoint product is installed. If any version is selected to uninstall, the Completed screen displays both install and uninstall status.
+N> The Completed screen is displayed once the PowerPoint product is installed. If any version is selected to uninstall, the Completed screen displays both install and uninstall status.
- 
+
Step 6: After installing, click the **Launch Control Panel** link to open the Syncfusion® Control Panel. The Control Panel is the central utility for managing licenses, applying patches, and uninstalling Syncfusion® products.
@@ -115,19 +115,19 @@ To install through the Command Line in Silent mode, follow the steps below.
5. Exit the Wizard.
6. Run Command Prompt in administrator mode and enter the following arguments.
-
- **Arguments:** “installer file path\SyncfusionEssentialStudio(platform)_(version).exe” /Install silent /UNLOCKKEY:“(product unlock key)” [/log “{Log file path}”] [/InstallPath:{Location to install}] [/InstallSamples:{true/false}] [/InstallAssemblies:{true/false}] [/UninstallExistAssemblies:{true/false}] [/InstallToolbox:{true/false}]
+
+**Arguments:** “installer file path\SyncfusionEssentialStudio(platform)_(version).exe” /Install silent /UNLOCKKEY:“(product unlock key)” [/log “{Log file path}”] [/InstallPath:{Location to install}] [/InstallSamples:{true/false}] [/InstallAssemblies:{true/false}] [/UninstallExistAssemblies:{true/false}] [/InstallToolbox:{true/false}]
- N> [..] – Arguments inside the square brackets are optional.
+N> [..] – Arguments inside the square brackets are optional.
- **Example:** “D:\Temp\syncfusion essential powerpoint_x.x.x.x.exe” /Install silent /UNLOCKKEY:“product unlock key” /log “C:\Temp\EssentialStudio_Platform.log” /InstallPath:C:\Syncfusion\x.x.x.x /InstallSamples:true /InstallAssemblies:true /UninstallExistAssemblies:true /InstallToolbox:true
+**Example:** “D:\Temp\syncfusion essential powerpoint_x.x.x.x.exe” /Install silent /UNLOCKKEY:“product unlock key” /log “C:\Temp\EssentialStudio_Platform.log” /InstallPath:C:\Syncfusion\x.x.x.x /InstallSamples:true /InstallAssemblies:true /UninstallExistAssemblies:true /InstallToolbox:true
7. Essential Studio® for PowerPoint is installed.
- N> x.x.x.x should be replaced with the Essential Studio® version and the Product Unlock Key needs to be replaced with the Unlock Key for that version.
-
+N> x.x.x.x should be replaced with the Essential Studio® version and the Product Unlock Key needs to be replaced with the Unlock Key for that version.
+
### Command Line Uninstallation
diff --git a/Document-Processing/PowerPoint/PowerPoint-Library/NET/installation/web-installer/how-to-install.md b/Document-Processing/PowerPoint/PowerPoint-Library/NET/installation/web-installer/how-to-install.md
index 6f9fce2c88..0b29d67870 100644
--- a/Document-Processing/PowerPoint/PowerPoint-Library/NET/installation/web-installer/how-to-install.md
+++ b/Document-Processing/PowerPoint/PowerPoint-Library/NET/installation/web-installer/how-to-install.md
@@ -16,7 +16,7 @@ For the Syncfusion® Essential Studio® PowerPoint p
> **Prerequisites:** A stable internet connection is required throughout installation, and the installer must be run with administrator privileges on Windows.
-N> If you are in a restricted environment without reliable internet access, use the [Offline Installer](../offline-installer/how-to-install.md) instead.
+N> If you are in a restricted environment without reliable internet access, use the [Offline Installer](../offline-installer/how-to-install) instead.
## Installation
@@ -24,89 +24,87 @@ The steps below show how to install the Syncfusion® Essential Stu
Step 1: Open the `syncfusionessentialpowerpointwebinstaller_{version}.exe` file from the downloaded location by double-clicking it. The Installer Wizard automatically opens and extracts the package.
- 
+
N> The installer wizard extracts the `syncfusionessentialpowerpointwebinstaller_{version}.exe` setup file, which displays the package's unzip operation.
Step 2: The Syncfusion® PowerPoint Web Installer's welcome wizard will be displayed. Click the **Next** button.
- 
+
Step 3: The Platform Selection Wizard will appear. From the **Available** tab, select the products to be installed. Select the **Install All** checkbox to install all products.
- *Available*
- 
+
+
If you have multiple products installed in the same version, they will be listed under the **Installed** tab. You can also select which products to uninstall from the same version. Click the **Next** button.
- *Installed*
- 
+
I> If the required software for the selected product isn't already installed, the **Additional Software Required** alert will appear. You can, however, continue the installation and install the necessary software later. Common prerequisites include supported .NET runtimes (for example, .NET 6.0 or .NET 8.0) and the Visual Studio build tools.
- **Required Software**
- 
+
Step 4: If previous version(s) for the selected products are installed, the **Uninstall Previous Version** wizard will be displayed. You can see the list of previously installed versions for the products you've chosen here. To remove all versions, check the **Uninstall All** checkbox. Click the **Next** button.
- 
+
N> From the 2021 Volume 1 release (v18.1), Syncfusion® provides the option to uninstall the previous versions while installing the new version.
Step 5: A pop-up screen will be displayed to confirm the uninstallation of the selected previous versions.
- 
+
Step 6: The **Confirmation** wizard will appear with the list of products to be installed/uninstalled. You can view and modify the list of products that will be installed and uninstalled from this page.
- 
+
N> By clicking the **Download Size** and **Installation Size** links, you can determine the approximate size of the download and installation.
Step 7: The **Configuration** wizard will appear. You can change the **Download**, **Install**, and **Demos** locations from here. The default locations are:
- - **Download:** `%TEMP%\SyncfusionSetup`
- - **Install:** `C:\Program Files (x86)\Syncfusion\Essential Studio\{version}`
- - **Demos:** `C:\Users\\Documents\Syncfusion\Essential Studio\{version}`
+- **Download:** `%TEMP%\SyncfusionSetup`
+- **Install:** `C:\Program Files (x86)\Syncfusion\Essential Studio\{version}`
+- **Demos:** `C:\Users\\Documents\Syncfusion\Essential Studio\{version}`
- You can also change the additional settings on a product-by-product basis. Click **Next** to install with the default settings.
+You can also change the additional settings on a product-by-product basis. Click **Next** to install with the default settings.
- 
+
- **Additional settings**
+**Additional settings**
- - Select the **Install Demos** check box to install Syncfusion® samples, or leave the check box unchecked if you do not want to install Syncfusion® samples.
- - Select the **Register Syncfusion® Assemblies in GAC** check box to install the latest Syncfusion® assemblies in GAC, or clear this check box when you do not want to install the latest assemblies in GAC.
- - Select the **Configure Syncfusion® controls in Visual Studio** check box to configure the Syncfusion® controls in the Visual Studio toolbox, or clear this check box when you do not want to configure the Syncfusion® controls in the Visual Studio toolbox during installation. Note that you must also select the **Register Syncfusion® Assemblies in GAC** check box when you select this check box.
- - Select the **Configure Syncfusion® Extensions in Visual Studio** check box to configure the Syncfusion® Extensions in Visual Studio, or clear this check box when you do not want to configure the Syncfusion® Extensions in Visual Studio.
- - Check the **Create Desktop Shortcut** check box to add a desktop shortcut for the Syncfusion® Control Panel.
- - Check the **Create Start Menu Shortcut** check box to add a shortcut to the start menu for the Syncfusion® Control Panel.
+- Select the **Install Demos** check box to install Syncfusion® samples, or leave the check box unchecked if you do not want to install Syncfusion® samples.
+- Select the **Register Syncfusion® Assemblies in GAC** check box to install the latest Syncfusion® assemblies in GAC, or clear this check box when you do not want to install the latest assemblies in GAC.
+- Select the **Configure Syncfusion® controls in Visual Studio** check box to configure the Syncfusion® controls in the Visual Studio toolbox, or clear this check box when you do not want to configure the Syncfusion® controls in the Visual Studio toolbox during installation. Note that you must also select the **Register Syncfusion® Assemblies in GAC** check box when you select this check box.
+- Select the **Configure Syncfusion® Extensions in Visual Studio** check box to configure the Syncfusion® Extensions in Visual Studio, or clear this check box when you do not want to configure the Syncfusion® Extensions in Visual Studio.
+- Check the **Create Desktop Shortcut** check box to add a desktop shortcut for the Syncfusion® Control Panel.
+- Check the **Create Start Menu Shortcut** check box to add a shortcut to the start menu for the Syncfusion® Control Panel.
Step 8: After reading the License Terms and Conditions, check the **I agree to the License Terms and Privacy Policy** check box. Click the **Next** button. The full License Terms and Privacy Policy are also available at [https://www.syncfusion.com/privacy-policy](https://www.syncfusion.com/privacy-policy).
Step 9: The **Login** wizard will appear. You must enter your Syncfusion® email address and password. If you do not already have a Syncfusion® account, you can create one by clicking **Create an Account**. If you have forgotten your password, click **Forgot Password** to create a new one. Click the **Install** button.
- 
+
- I> The selected products will be installed based on your Syncfusion® license (Trial or Paid). For more information about license types and applying license keys, refer to the [Syncfusion® Licensing FAQ](https://www.syncfusion.com/sales/communitylicense).
+I> The selected products will be installed based on your Syncfusion® license (Trial or Paid). For more information about license types and applying license keys, refer to the [Syncfusion® Licensing FAQ](https://www.syncfusion.com/sales/communitylicense).
Step 10: The download and installation/uninstallation progress will be displayed as shown below.
- 
+
Step 11: When the installation is finished, the **Summary** wizard will appear. Here you can see the list of products that have been installed successfully and those that have failed. To close the **Summary** wizard, click **Finish**.
- 
+
- - To open the Syncfusion® Control Panel, click **Launch Control Panel**.
+- To open the Syncfusion® Control Panel, click **Launch Control Panel**.
Step 12: After installation, there will be two Syncfusion® Control Panel entries, as shown below. The **Essential Studio®** entry will manage all Syncfusion® products installed in the same version, while the **Product** entry will only uninstall the specific product setup.
- 
+
Step 13: Verify the installation.** To confirm a successful install, navigate to the install path shown in Install Step 7 and verify that the Syncfusion® PowerPoint assemblies (for example, `Syncfusion.Presentation.Base.dll`) are present. The Syncfusion® Control Panel can also be launched from the **Start** menu to review installed products.
@@ -144,52 +142,52 @@ N> If the **Syncfusion® Essential Studio® for Powe
Step 1: The Syncfusion® PowerPoint Web Installer's welcome wizard will be displayed. Click the **Next** button.
- 
+
Step 2: The **Platform Selection** wizard will appear. From the **Installed** tab, select the products to be uninstalled. To select all products, check the **Uninstall All** checkbox. Click the **Next** button.
- *Installed*
+*Installed*
- 
+
- You can also select the products to be installed from the **Available** tab. Click the **Next** button.
+You can also select the products to be installed from the **Available** tab. Click the **Next** button.
- *Available*
+*Available*
- 
+
Step 3: If any other products are also selected for installation, the **Uninstall Previous Version** wizard will be displayed with the previous version(s) installed for the selected products. Here you can view the list of installed previous versions for the selected products. Select the **Uninstall All** checkbox to select all versions. Click **Next**.
- 
+
Step 4: A pop-up screen will be displayed to confirm the uninstallation of the selected previous versions.
- 
+
Step 5: The **Confirmation** wizard will appear with the list of products to be installed/uninstalled. Here you can view and modify the list of products that will be installed/uninstalled.
- 
+
- N> By clicking the **Download Size** and **Installation Size** links, you can determine the approximate size of the download and installation.
+N> By clicking the **Download Size** and **Installation Size** links, you can determine the approximate size of the download and installation.
Step 6: The **Configuration** wizard will appear. You can change the **Download**, **Install**, and **Demos** locations from here. You can also change the additional settings on a product-by-product basis. Click **Next** to continue with the default settings.
- 
+
Step 7: After reading the License Terms and Conditions, check the **I agree to the License Terms and Privacy Policy** check box. Click the **Next** button.
Step 8: The **Login** wizard will appear. You must enter your Syncfusion® email address and password. If you do not already have a Syncfusion® account, you can create one by clicking **Create an Account**. If you have forgotten your password, click **Forgot Password** to create a new one. Click the **Install** button.
- 
+
- I> The selected products will be installed/uninstalled based on your Syncfusion® license (Trial or Paid).
+I> The selected products will be installed/uninstalled based on your Syncfusion® license (Trial or Paid).
Step 9: The download, installation, and uninstallation progress will be shown.
- 
+
Step 10: When the uninstallation is finished, the **Summary** wizard will appear. Here you can see the list of products installed/uninstalled successfully and any that failed. To close the **Summary** wizard, click **Finish**.
- 
-
- - To open the Syncfusion® Control Panel, click **Launch Control Panel**.
\ No newline at end of file
+
+
+- To open the Syncfusion® Control Panel, click **Launch Control Panel**.
\ No newline at end of file
diff --git a/Document-Processing/Telemetry.md b/Document-Processing/Telemetry.md
index b99dd25396..52b80b0c0d 100644
--- a/Document-Processing/Telemetry.md
+++ b/Document-Processing/Telemetry.md
@@ -47,6 +47,10 @@ Syncfusion® collects only a limited set of anonymous usage data d
Syncfusion component being used
+
Feature Name
+
Syncfusion feature being used
+
+
Assembly Name
Syncfusion assembly or package in use
@@ -75,6 +79,10 @@ Syncfusion® collects only a limited set of anonymous usage data d
Unique session identifier (hashed value)
+
Machine Name
+
Hashed value of machine name, so it cannot be traced back
+
+
Event Name
Product events name
@@ -179,4 +187,4 @@ N> The `Telemetry.Disable()` API should be called, before creating or using any
To resolve this error and prevent the exception from being thrown, you can disable the telemetry in your application. This will turn off telemetry data collection entirely.
-
\ No newline at end of file
+
diff --git a/Document-Processing/Word/Word-Processor/angular/mcp.md b/Document-Processing/Word/Word-Processor/angular/mcp.md
new file mode 100644
index 0000000000..45fc5c7d9b
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/angular/mcp.md
@@ -0,0 +1,211 @@
+---
+title: Syncfusion Angular DOCX Editor MCP Server Setup | Syncfusion
+description: Discover the MCP server's advantages, installation requirements, and integration guidance for Angular DOCX Editor.
+platform: document-processing
+control: DOCX Editor
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Syncfusion Angular DOCX Editor MCP Server
+
+Syncfusion® Angular DOCX Editor MCP Server accelerates Angular DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+These tools speed up development and reinforce best practices for Angular DOCX Editor integration.
+> The previously available **Agentic UI Builder** (`#sf_angular_ui_builder`) has been upgraded to an **Agent skill-based experience** and is no longer part of the MCP Server. To learn more about the new **Agentic UI Builder**, see the [documentation](./ui-builder-skill). The **AI Coding Assistant** (#sf_angular_assistant) has been **renamed** to **search_docs** (`#search_docs`) to ensure the tool name follows MCP naming conventions.
+
+## Key Benefits
+
+- **Expert DOCX Editor Knowledge** - Deep understanding of the Angular DOCX Editor component and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- [Node.js 18+](https://nodejs.org/en/download) with **npm** or **yarn**
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- An **Angular application** (existing or new); see [Angular DOCX Editor documentation](./getting-started)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.**
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-angular-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/angular-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-angular-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/angular-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-angular-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/angular-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-angular-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/angular-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-angular-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world Angular DOCX Editor development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the Angular DOCX Editor component.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion Angular DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the Angular DOCX Editor.
+
+{% promptcards %}
+{% promptcard Track changes %}
+#search_docs How to enable track changes in Angular DOCX Editor ?
+{% endpromptcard %}
+{% endpromptcards %}
+
+
+## Best Practices
+
+To get the most out of the Syncfusion® Angular DOCX Editor MCP Server:
+
+- **Be Specific** - Include the component and use case in your queries (for example, *"How can I apply font size character formatting to text in Angular DOCX Editor?"*).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your Angular project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](./getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Server failed to start** | Verify Node.js 18+ is installed, check JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/Word/Word-Processor/asp-net-core/mcp.md b/Document-Processing/Word/Word-Processor/asp-net-core/mcp.md
new file mode 100644
index 0000000000..0f5672743d
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/asp-net-core/mcp.md
@@ -0,0 +1,241 @@
+---
+layout: post
+title: Syncfusion ASP.NET Core DOCX Editor MCP Server Setup | Syncfusion
+description: Discover the MCP server's advantages, installation requirements, and integration guidance for the ASP.NET Core DOCX Editor.
+platform: document-processing
+control: DOCX Editor
+documentation: ug
+---
+
+# Syncfusion ASP.NET Core DOCX Editor MCP Server
+
+Syncfusion® ASP.NET Core DOCX Editor MCP Server accelerates DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+These tools speed up development and reinforce best practices for ASP.NET Core DOCX Editor integration.
+
+## Key Benefits
+
+- **Expert DOCX Editor Knowledge** - Deep understanding of the ASP.NET Core DOCX Editor component and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- Microsoft [.NET SDK 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- An **ASP.NET Core application** (existing or new); see [ASP.NET Core DOCX Editor documentation](./getting-started)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.** The tabs below show a working configuration for each supported MCP client.
+
+**For .NET 10** :
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-aspnetcore-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetCore.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-aspnetcore-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetCore.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-aspnetcore-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetCore.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-aspnetcore-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetCore.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**For .NET 8 / .NET 9 (using a local tool):**
+
+You can install the Syncfusion ASP.NET Core MCP server as a local tool without a global installation. For guidance on installing and managing local .NET tools, refer to the official [documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/local-tools-how-to-use).
+
+1. Install the Syncfusion ASP.NET Core MCP tool locally:
+
+ ````bash
+ dotnet tool install Syncfusion.AspNetCore.MCP
+ ````
+
+ > If the project does not already have a tool manifest, create one first by running `dotnet new tool-manifest` in the project root. This generates a shared `.config/dotnet-tools.json` file that tracks local tools, then re-run the install command above.
+
+2. In your MCP client config (for example, `.vscode/mcp.json`), replace the server entry with:
+
+ ````json
+ {
+ "servers": {
+ "sf-aspnetcore-mcp": {
+ "type": "stdio",
+ "command": "dotnet",
+ "args": ["tool", "run", "syncfusion-aspnetcore-mcp"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+ }
+ ````
+
+**Verifying Installation** Check your editor's MCP Server list for `ASP.NET Core MCP Server` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world ASP.NET Core DOCX Editor development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the ASP.NET Core DOCX Editor component.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion ASP.NET Core DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the ASP.NET Core DOCX Editor.
+
+{% promptcards %}
+{% promptcard Track changes %}
+#search_docs How to enable track changes in ASP.NET Core DOCX Editor ?
+{% endpromptcard %}
+{% endpromptcards %}
+
+
+## Best Practices
+
+To get the most out of the Syncfusion® ASP.NET Core DOCX Editor MCP Server:
+
+
+- **Be Specific** - Include the component and use case in your queries (for example, *"How can I apply font size character formatting to text in ASP.NET Core DOCX Editor?"*).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your ASP.NET Core project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](./getting-started-core) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Server failed to start** | Update to .NET 8 SDK or higher, verify JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/Word/Word-Processor/asp-net-mvc/mcp.md b/Document-Processing/Word/Word-Processor/asp-net-mvc/mcp.md
new file mode 100644
index 0000000000..ed4c1d041c
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/asp-net-mvc/mcp.md
@@ -0,0 +1,239 @@
+---
+layout: post
+title: Syncfusion ASP.NET MVC DOCX Editor MCP Server Setup | Syncfusion
+description: Discover the MCP server's advantages, installation requirements, and integration guidance for ASP.NET MVC DOCX Editor.
+platform: document-processing
+control: DOCX Editor
+documentation: ug
+---
+
+# Syncfusion ASP.NET MVC DOCX Editor MCP Server
+
+Syncfusion® ASP.NET MVC DOCX Editor MCP Server accelerates ASP.NET MVC DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+These tools speed up development and reinforce best practices for ASP.NET MVC DOCX Editor integration.
+
+## Key Benefits
+
+- **Expert DOCX Editor Knowledge** - Deep understanding of ASP.NET MVC DOCX Editor component (Document Editor) and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- Microsoft [.NET SDK 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- An **ASP.NET MVC application** (existing or new); see [ASP.NET MVC DOCX Editor documentation](./getting-started)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.** The tabs below show a working configuration for each supported MCP client.
+
+**For .NET 10** :
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-aspnetmvc-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetMvc.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-aspnetmvc-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetMvc.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-aspnetmvc-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetMvc.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-aspnetmvc-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.AspNetMvc.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**For .NET 8 / .NET 9 (using a local tool):**
+
+You can install the Syncfusion ASP.NET MVC MCP server as a local tool without a global installation. For guidance on installing and managing local .NET tools, refer to the official [documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/local-tools-how-to-use).
+
+1. Install the Syncfusion ASP.NET MVC MCP tool locally:
+
+ ````bash
+ dotnet tool install Syncfusion.AspNetMVC.MCP
+ ````
+
+ > If the project does not already have a tool manifest, create one first by running `dotnet new tool-manifest` in the project root. This generates a shared `.config/dotnet-tools.json` file that tracks local tools, then re-run the install command above.
+
+2. In your MCP client config (for example, `.vscode/mcp.json`), replace the server entry with:
+
+ ````json
+ {
+ "servers": {
+ "sf-aspnetmvc-mcp": {
+ "type": "stdio",
+ "command": "dotnet",
+ "args": ["tool", "run", "syncfusion-aspnetmvc-mcp"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+ }
+ ````
+
+**Verifying Installation** Check your editor's MCP Server list for `ASP.NET MVC MCP Server` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world ASP.NET MVC DOCX Editor development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the ASP.NET MVC DOCX Editor component.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion ASP.NET MVC DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the ASP.NET MVC DOCX Editor.
+
+{% promptcards %}
+{% promptcard Track changes %}
+#search_docs How to enable track changes in ASP.NET MVC DOCX Editor ?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best Practices
+
+To get the most out of the Syncfusion® ASP.NET MVC DOCX Editor MCP Server:
+
+- **Be Specific** - Include the component and use case in your queries (for example, *"How can I apply font size character formatting to text in ASP.NET MVC DOCX Editor?"*).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your ASP.NET MVC project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](./getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Server failed to start** | Update to .NET 8 SDK or higher, verify JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/Word/Word-Processor/blazor/mcp.md b/Document-Processing/Word/Word-Processor/blazor/mcp.md
new file mode 100644
index 0000000000..7311bac413
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/blazor/mcp.md
@@ -0,0 +1,240 @@
+---
+layout: post
+title: Syncfusion Blazor DOCX Editor MCP Server Setup | Syncfusion
+description: Discover the MCP server's advantages, installation requirements, and integration guidance for Blazor DOCX Editor.
+platform: document-processing
+control: DocumentEditor
+documentation: ug
+---
+
+# Syncfusion Blazor DOCX Editor MCP Server
+
+Syncfusion® Blazor DOCX Editor MCP Server accelerates Blazor DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+These tools speed up development and reinforce best practices for Blazor DOCX Editor integration.
+> The previously available **Agentic UI Builder** (`#sf_blazor_ui_builder`) has been upgraded to an **Agent skill-based experience** and is no longer part of the MCP Server. To learn more about the new **Agentic UI Builder**, see the [documentation](./ui-builder-skill). The **AI Coding Assistant** (#sf_react_assistant) has been **renamed** to **search_docs** (`#search_docs`) to ensure the tool name follows MCP naming conventions.
+
+## Key Benefits
+
+- **Expert DOCX Editor Knowledge** - Deep understanding of Blazor DOCX Editor component (Document Editor) and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- Microsoft [.NET SDK 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- A **Blazor application** (existing or new); see [Blazor DOCX Editor documentation](./getting-started/web-app)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.** The tabs below show a working configuration for each supported MCP client.
+
+**For .NET 10** :
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-blazor-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.Blazor.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-blazor-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.Blazor.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-blazor-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.Blazor.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-blazor-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.Blazor.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**For .NET 8 / .NET 9 (using a local tool):**
+
+You can install the Syncfusion Blazor MCP Server as a local tool without requiring a global installation. For guidance on installing and managing local .NET tools, refer to the [documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/local-tools-how-to-use).
+
+1. Install the Syncfusion Blazor MCP tool locally:
+
+ ````bash
+ dotnet tool install Syncfusion.Blazor.MCP
+ ````
+
+ > If the project does not already have a tool manifest, create one first by running `dotnet new tool-manifest` in the project root. This generates a shared `.config/dotnet-tools.json` file that tracks local tools, then re-run the install command above.
+
+2. In your MCP client config (`.vscode/mcp.json`), replace the server entry with:
+
+ ````json
+ {
+ "servers": {
+ "sf-blazor-mcp": {
+ "type": "stdio",
+ "command": "dotnet",
+ "args": ["tool", "run", "syncfusion-blazor-mcp"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+ }
+ ````
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-blazor-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world Blazor DOCX Editor development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the Blazor DOCX Editor component.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion Blazor DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the Blazor DOCX Editor.
+
+{% promptcards %}
+{% promptcard Track changes %}
+#search_docs How to enable track changes in Blazor DOCX Editor ?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best Practices
+
+To get the most out of the Syncfusion® Blazor DOCX Editor MCP Server:
+
+- **Be Specific** - Include the component and use case in your queries (for example, *"How can I apply font size character formatting to text in Blazor DOCX Editor?"*).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your Blazor project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](./getting-started/web-app) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Server failed to start** | Update to .NET 8 SDK or higher, verify JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/Word/Word-Processor/javascript-es5/mcp.md b/Document-Processing/Word/Word-Processor/javascript-es5/mcp.md
new file mode 100644
index 0000000000..03a4bd602f
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/javascript-es5/mcp.md
@@ -0,0 +1,213 @@
+---
+layout: post
+title: Syncfusion JavaScript DOCX Editor MCP Server Setup | Syncfusion
+description: Discover the MCP server's advantages, installation requirements, and integration guidance for JavaScript DOCX Editor.
+platform: document-processing
+control: DocumentEditor
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Syncfusion JavaScript DOCX Editor MCP Server
+
+The Syncfusion® JavaScript DOCX Editor MCP Server accelerates JavaScript DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+These tools speed up development and reinforce best practices for the JavaScript DOCX Editor (Document Editor) component integration.
+
+> The previously available **Agentic UI Builder** (`#sf_javascript_ui_builder`) has been upgraded to an **Agent skill-based experience** and is no longer part of the MCP Server. To learn more about the new **Agentic UI Builder**, see the [documentation](https://ej2.syncfusion.com/documentation/agentic-ui-builder). The **AI Coding Assistant** (`#sf_javascript_assistant`) has been **renamed** to **search_docs** (`#search_docs`) to ensure the tool name follows MCP naming conventions.
+
+## Key Benefits
+
+- **Expert DOCX Editor Knowledge** - Deep understanding of the JavaScript DOCX Editor component (Document Editor) and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- **Node.js** version 18 or higher
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- A **JavaScript application** (existing or new); see [JavaScript DOCX Editor documentation](./getting-started)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.**
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-javascript-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/javascript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-javascript-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/javascript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-javascript-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/javascript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-javascript-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/javascript-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-javascript-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world JavaScript DOCX Editor development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the JavaScript DOCX Editor component.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion JavaScript DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the JavaScript DOCX Editor.
+
+{% promptcards %}
+{% promptcard Track changes %}
+#search_docs How to enable track changes in JavaScript DOCX Editor ?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best Practices
+
+To get the most out of the Syncfusion® JavaScript DOCX Editor MCP Server:
+
+- **Be Specific** - Include the component and use case in your queries (for example, *"How can I apply font size character formatting to text in JavaScript DOCX Editor?"*).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your JavaScript project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](./getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Clear npm cache** | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues. |
+| **Server failed to start** | Update to Node.js 18+, verify JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/Word/Word-Processor/javascript-es6/mcp.md b/Document-Processing/Word/Word-Processor/javascript-es6/mcp.md
new file mode 100644
index 0000000000..f0982ae599
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/javascript-es6/mcp.md
@@ -0,0 +1,223 @@
+---
+layout: post
+title: Syncfusion TypeScript DOCX Editor MCP Server Setup | Syncfusion
+description: Discover the MCP server's advantages, installation requirements, and integration guidance for TypeScript DOCX Editor.
+platform: document-processing
+control: DocumentEditor
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Syncfusion TypeScript DOCX Editor MCP Server
+
+The Syncfusion® TypeScript DOCX Editor MCP Server accelerates TypeScript DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+These tools speed up development and reinforce best practices for the TypeScript DOCX Editor (Document Editor) component integration.
+
+> The previously available **Agentic UI Builder** (`#sf_typescript_ui_builder`) has been upgraded to an **Agent skill-based experience** and is no longer part of the MCP Server. To learn more about the new **Agentic UI Builder**, see the [documentation](https://ej2.syncfusion.com/documentation/agentic-ui-builder). The **AI Coding Assistant** (`#sf_typescript_assistant`) has been **renamed** to **search_docs** (`#search_docs`) to ensure the tool name follows MCP naming conventions.
+
+## Key Benefits
+
+- **Expert DOCX Editor Knowledge** - Deep understanding of the TypeScript DOCX Editor component (Document Editor) and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- **Node.js** version 18 or higher
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- A **TypeScript application** (existing or new); see [TypeScript DOCX Editor documentation](./getting-started)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.**
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-typescript-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/typescript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-typescript-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/typescript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-typescript-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/typescript-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-typescript-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/typescript-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-typescript-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world TypeScript DOCX Editor development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the TypeScript DOCX Editor component.
+
+{% promptcards %}
+{% promptcard Standalone Component Setup %}
+#search_docs How do I configure the Syncfusion TypeScript Standalone DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the TypeScript DOCX Editor.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion TypeScript DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the TypeScript DOCX Editor.
+
+{% promptcards %}
+{% promptcard Track changes %}
+#search_docs How to enable track changes in TypeScript DOCX Editor ?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best Practices
+
+To get the most out of the Syncfusion® TypeScript DOCX Editor MCP Server:
+
+- **Be Specific** - Include the component and use case in your queries (for example, *"How can I apply font size character formatting to text in TypeScript DOCX Editor?"*)
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your TypeScript project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](./getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Clear npm cache** | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues. |
+| **Server failed to start** | Update to Node.js 18+, verify JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/Word/Word-Processor/react/how-to/show-hide-spinner.md b/Document-Processing/Word/Word-Processor/react/how-to/show-hide-spinner.md
index 996f3cf0ab..a45d28d542 100644
--- a/Document-Processing/Word/Word-Processor/react/how-to/show-hide-spinner.md
+++ b/Document-Processing/Word/Word-Processor/react/how-to/show-hide-spinner.md
@@ -1,24 +1,24 @@
---
layout: post
-title: Show hide spinner in React Document editor component | Syncfusion
-description: Learn here all about Show hide spinner in Syncfusion React Document editor component of Syncfusion Essential JS 2 and more.
+title: Show hide spinner in React DOCX Editor component | Syncfusion
+description: Learn here all about Show hide spinner in Syncfusion React Document Editor component of Syncfusion Essential JS 2 and more.
control: Show hide spinner
platform: document-processing
documentation: ug
domainurl: ##DomainURL##
---
-# Show hide spinner in React Document editor component
+# Show hide spinner in React Document Editor component
-Using [`spinner`](https://ej2.syncfusion.com/documentation/spinner/getting-started#create-the-spinner-globally) component, you can show/hide spinner while opening document in [React DOCX Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor).
+Using the [`spinner`](https://ej2.syncfusion.com/documentation/spinner/getting-started#create-the-spinner-globally) component, you can show or hide a spinner while opening a document in the [React Document Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor).
-Example code snippet to show/hide spinner
+Example code snippet to show or hide a spinner
```ts
// showSpinner() will make the spinner visible
showSpinner(document.getElementById('container'));
-// hideSpinner() method used hide spinner
+// hideSpinner() method used to hide the spinner
hideSpinner(document.getElementById('container'));
```
@@ -41,4 +41,4 @@ Refer to the following example.
> The Web API hosted link `https://document.syncfusion.com/web-services/docx-editor/api/documenteditor/` utilized in the Document Editor's serviceUrl property is intended solely for demonstration and evaluation purposes. For production deployment, please host your own web service with your required server configurations. You can refer and reuse the [GitHub Web Service example](https://github.com/SyncfusionExamples/EJ2-DocumentEditor-WebServices) or [Docker image](https://hub.docker.com/r/syncfusion/word-processor-server) for hosting your own web service and use for the serviceUrl property.
->Note: In above example, we have used setInterval to hide spinner, just for demo purpose.
+N> : In the above example, we have used setInterval to hide the spinner, just for demo purposes.
diff --git a/Document-Processing/Word/Word-Processor/react/image.md b/Document-Processing/Word/Word-Processor/react/image.md
index 2c37a776d7..f3c13c749b 100644
--- a/Document-Processing/Word/Word-Processor/react/image.md
+++ b/Document-Processing/Word/Word-Processor/react/image.md
@@ -1,16 +1,16 @@
---
layout: post
-title: Image in React Document editor component | Syncfusion
-description: Learn here all about Image in Syncfusion React Document editor component of Syncfusion Essential JS 2 and more.
+title: Image in React DOCX Editor component | Syncfusion
+description: Learn here all about Image in Syncfusion React Document Editor component of Syncfusion Essential JS 2 and more.
control: Image
platform: document-processing
documentation: ug
domainurl: ##DomainURL##
---
-# Image in React Document editor component
+# Image in React Document Editor component
-[React DOCX Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor) supports common raster format images like PNG, BMP, JPEG, SVG and GIF. You can insert an image file or online image in the document using the [`insertImage()`](https://ej2.syncfusion.com/react/documentation/api/document-editor/editor#insertimage) method. Refer to the following sample code.
+[React Document Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor) supports common raster image formats such as PNG, BMP, JPEG, SVG, and GIF. You can insert an image file or online image in the document using the [`insertImage()`](https://ej2.syncfusion.com/react/documentation/api/document-editor/editor#insertimage) method. Refer to the following sample code.
{% raw %}
@@ -49,7 +49,7 @@ function App() {
})
image.src = base64String;
};
- //Convert image into base64 string..
+ //Convert image into base64 string.
reader.readAsDataURL(path);
}
//Safari does not Support FileReader Class
@@ -75,26 +75,26 @@ ReactDOM.render(, document.getElementById('sample'));
```
{% endraw %}
-Image files will be internally converted to base64 string. Whereas, online images are preserved as URL.
+Image files are internally converted to base64 strings, whereas online images are preserved as URLs.
->Note: EMF and WMF images can't be inserted, but these types of images will be preserved in Document Editor when using ASP.NET MVC Web API.
+N>: EMF and WMF images can't be inserted, but these types of images will be preserved in Document Editor when using ASP.NET MVC Web API.
## Image resizing
-Document Editor provides built-in image resizer that can be injected into your application based on the requirements. This allows you to resize the image by dragging the resizing points using mouse or touch interactions. This resizer appears as follows.
+Document Editor provides a built-in image resizer that can be injected into your application based on the requirements. This allows you to resize the image by dragging the resizing points using a mouse or touch interactions. This resizer appears as follows.

## Changing size
-Document Editor expose API to get or set the size of the selected image. Refer to the following sample code.
+Document Editor exposes an API to get or set the size of the selected image. Refer to the following sample code.
```ts
documenteditor.selection.imageFormat.width = 800;
documenteditor.selection.imageFormat.height = 800;
```
->Note: Images are stored and processed(read/write) as base64 string in DocumentEditor. The online image URL is preserved as a URL in DocumentEditor upon saving.
+N>: Images are stored and processed (read/write) as base64 string in DocumentEditor. The online image URL is preserved as a URL in DocumentEditor upon saving.
## Text wrapping style
@@ -102,7 +102,7 @@ Text wrapping refers to how images fit with surrounding text in a document. Plea
## Positioning the image
-DocumentEditor preserves the position properties of the image and displays the image based on position properties. It does not support modifying the position properties. Whereas the image will be automatically moved along with text edited if it is positioned relative to the line or paragraph.
+DocumentEditor preserves the position properties of the image and displays the image based on these position properties. It does not support modifying the position properties. The image will be automatically moved along with the edited text if it is positioned relative to the line or paragraph.
## See Also
diff --git a/Document-Processing/Word/Word-Processor/react/import.md b/Document-Processing/Word/Word-Processor/react/import.md
index 0d1edaca60..6ed27fe5c6 100644
--- a/Document-Processing/Word/Word-Processor/react/import.md
+++ b/Document-Processing/Word/Word-Processor/react/import.md
@@ -1,16 +1,16 @@
---
layout: post
-title: Import in React Document editor component | Syncfusion
-description: Learn here all about Import in Syncfusion React Document editor component of Syncfusion Essential JS 2 and more.
+title: Import in React DOCX Editor component | Syncfusion
+description: Learn here all about Import in Syncfusion React Document Editor component of Syncfusion Essential JS 2 and more.
control: Import
platform: document-processing
documentation: ug
domainurl: ##DomainURL##
---
-# Import in React Document editor component
+# Import in React Document Editor component
-In [React DOCX Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor), the documents are stored in its own format called **Syncfusion Document Text (SFDT)**.
+In [React Document Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor), the documents are stored in Document Editor's own format called **Syncfusion Document Text (SFDT)**.
The following example shows how to open SFDT data in Document Editor.
@@ -30,7 +30,7 @@ The following example shows how to open SFDT data in Document Editor.
## Import document from local machine
-The following example shows how to import document from local machine.
+The following example shows how to import a document from the local machine.
{% tabs %}
{% highlight js tabtitle="index.jsx" %}
@@ -48,11 +48,11 @@ The following example shows how to import document from local machine.
## Convert word documents into SFDT
-You can convert word documents into SFDT format using the .NET Standard library [`Syncfusion.EJ2.WordEditor.AspNet.Core`]() by the web API service implementation. This library helps you to convert word documents (.dotx,.docx,.docm,.dot,.doc), rich text format documents (.rtf), and text documents (.txt) into SFDT format.
+You can convert Word documents into SFDT format using the .NET Standard library [`Syncfusion.EJ2.WordEditor.AspNet.Core`]() by the web API service implementation. This library helps you to convert Word documents (.dotx,.docx,.docm,.dot,.doc), rich text format documents (.rtf), and text documents (.txt) into SFDT format.
->Note: The Syncfusion® Document Editor component's document pagination (page-by-page display) can't be guaranteed for all the Word documents to match the pagination of Microsoft Word application. For more information about [why the document pagination (page-by-page display) differs from Microsoft Word](./import#why-the-document-pagination-differs-from-microsoft-word)
+N>: The Syncfusion® Document Editor component's document pagination (page-by-page display) can't be guaranteed for all the Word documents to match the pagination of Microsoft Word application. For more information about [why the document pagination (page-by-page display) differs from Microsoft Word](./import#why-the-document-pagination-differs-from-microsoft-word).
-Please refer the following example for converting word documents into SFDT.
+Please refer to the following example for converting Word documents into SFDT.
```ts
@@ -83,7 +83,7 @@ function App() {
ajax.onreadystatechange = () => {
if (ajax.readyState === 4) {
if (ajax.status === 200 || ajax.status === 304) {
- // open SFDT text in document editor
+ // open SFDT text in Document Editor
documenteditor.open(ajax.responseText);
}
}
@@ -107,7 +107,7 @@ ReactDOM.render(, document.getElementById('sample'));
```
-Here’s how to handle the server-side action for converting word document in to SFDT.
+Here's how to handle the server-side action for converting a Word document into SFDT.
```csharp
[AcceptVerbs("Post")]
@@ -154,36 +154,35 @@ Here’s how to handle the server-side action for converting word document in to
}
```
-To know about server-side action, please refer this [page](./web-services-overview).
+To know about server-side action, please refer to this [page](./web-services-overview).
## Compatibility with Microsoft Word
-Syncfusion® Document Editor is a minimal viable Word document viewer/editor product for web applications. As most compatible Word editor, the product vision is adding valuable feature sets of Microsoft Word, and not to cover 100% feature sets of Microsoft Word desktop application. You can even see the feature sets difference between Microsoft Word desktop and their Word online application. So kindly don't misunderstand this component as a complete replacement for Microsoft Word desktop application and expect 100% feature sets of it.
+Syncfusion® Document Editor is a minimal viable Word document viewer/editor product for web applications. As the most compatible Word editor, the product vision is adding valuable feature sets of Microsoft Word, and not to cover 100% feature sets of Microsoft Word desktop application. You can even see the feature sets difference between Microsoft Word desktop and their Word online application. So kindly don't misunderstand this component as a complete replacement for Microsoft Word desktop application and expect 100% feature sets of it.
-### How Syncfusion® accepts the feature request for Document Editor
+### How Syncfusion® accepts the feature requests for Document Editor
-Syncfusion accepts new feature request as valid based on feature value and technological feasibility, then plan to implement unsupported features incrementally in future releases in a phase-by-phase manner.
+Syncfusion accepts new feature requests as valid based on feature value and technological feasibility, then plans to implement unsupported features incrementally in future releases in a phase-by-phase manner.
-### How to report the problems in Document Editor
+### How to report problems in Document Editor
-You can report the problems with displaying, or editing Word documents in Document Editor component through [`support forum`](https://www.syncfusion.com/forums/), [`Direct-Trac`](https://www.syncfusion.com/support/directtrac/), or [`feedback portal`](https://www.syncfusion.com/feedback/). Kindly share the Word document for replicating the problem easily in minimal time. If you have confidential data, you can replace it and attach the document.
+You can report problems with displaying or editing Word documents in Document Editor component through [`support forum`](https://www.syncfusion.com/forums/), [`Direct-Trac`](https://www.syncfusion.com/support/directtrac/), or [`feedback portal`](https://www.syncfusion.com/feedback/). Kindly share the Word document for replicating the problem easily in minimal time. If you have confidential data, you can replace it and attach the document.
### Why the document pagination differs from Microsoft Word
-For your understanding about the Word document structure and the workflow of Word viewer/editor components, the Word document is a flow document in which content will not be preserved page by page; instead, the content will be preserved sequentially like a HTML file. Only the Word viewer/editor paginates the content of the Word document page by page dynamically, when opened for viewing or editing and this page-wise position information will not be preserved in the document level (it is Word file format specification standard). Syncfusion® Document Editor component also does the same.
+For your understanding about the Word document structure and the workflow of Word viewer/editor components, the Word document is a flow document in which content will not be preserved page by page; instead, the content will be preserved sequentially like an HTML file. Only the Word viewer/editor paginates the content of the Word document page by page dynamically, when opened for viewing or editing and this page-wise position information will not be preserved at the document level (it is Word file format specification standard). Syncfusion® Document Editor component also does the same.
-At present there is a known technical limitation related to slight difference in text size calculated using HTML element based text measuring approach. Even though the text size is calculated with correct font and font size values, the difference lies; it is as low as 0.00XX to 0. XXXX values compared to that of Microsoft Word application’s display. Hence the document pagination (page-by-page display) can't be guaranteed for all the Word documents to match the pagination of Microsoft Word application.
+At present there is a known technical limitation related to a slight difference in text size calculated using an HTML element-based text measuring approach. Even though the text size is calculated with correct font and font size values, the difference lies; it is as low as 0.00XX to 0.XXXX values compared to that of Microsoft Word application's display. Hence the document pagination (page-by-page display) can't be guaranteed for all the Word documents to match the pagination of Microsoft Word application.
-### How Syncfusion® address the document pagination difference compared to Microsoft Word
-
-The following table illustrates the reasons for pagination (page-by-page display) difference compared to Microsoft Word in your documents and how Syncfusion® address it.
+### How Syncfusion® addresses the document pagination difference compared to Microsoft Word
+The following table illustrates the reasons for pagination (page-by-page display) difference compared to Microsoft Word in your documents and how Syncfusion® addresses it.
| Root causes | How is it solved? |
|-----------------|-------------|
-|Any mistake (wrong behavior handled) in lay outing the supported elements and formatting |Customer can report to Syncfusion® support and track the status through bug report link. Syncfusion® fixes the bugs in next possible weekly patch release and service pack or main releases. |
-|Font missing in deployment environment|Customer can either report to Syncfusion® support and get suggestion or solve it on their own by installing the missing fonts in their deployment environment.|
-|Any unsupported elements or formatting present in your document |Customer can report to Syncfusion® support and track the status through feature request link. Syncfusion® implements unsupported features incrementally in future releases based on feature importance, customer interest, efforts involved, and technological feasibility. Also, suggests alternate approach for possible cases.|
-|Technical limitation related to framework For example, there is a known case with slight fractional difference in text size measured using HTML and Microsoft Word’s display.|Customer can report to Syncfusion® support and track the status through feature request link. Syncfusion® does research about alternate approaches to overcome the technical limitation/behaviors and process it same as a feature. >Note: Here the challenge is, time schedule for implementation varies based on the alternate solution and its reliability.|
+|Any mistake (wrong behavior handled) in lay outing the supported elements and formatting |Customer can report to Syncfusion® support and track the status through bug report link. Syncfusion® fixes the bugs in the next possible weekly patch release and service pack or main releases.|
+|Font missing in deployment environment|Customer can either report to Syncfusion® support and get a suggestion or solve it on their own by installing the missing fonts in their deployment environment.|
+|Any unsupported elements or formatting present in your document |Customer can report to Syncfusion® support and track the status through feature request link. Syncfusion® implements unsupported features incrementally in future releases based on feature importance, customer interest, efforts involved, and technological feasibility. Also, suggests an alternate approach for possible cases.|
+|Technical limitation related to framework For example, there is a known case with a slight fractional difference in text size measured using HTML and Microsoft Word's display.|Customer can report to Syncfusion® support and track the status through feature request link. Syncfusion® does research about alternate approaches to overcome the technical limitation/behaviors and process it same as a feature. N>: Here the challenge is, time schedule for implementation varies based on the alternate solution and its reliability.|
## See Also
diff --git a/Document-Processing/Word/Word-Processor/react/keyboard-shortcut.md b/Document-Processing/Word/Word-Processor/react/keyboard-shortcut.md
index d65a047f12..417efacd43 100644
--- a/Document-Processing/Word/Word-Processor/react/keyboard-shortcut.md
+++ b/Document-Processing/Word/Word-Processor/react/keyboard-shortcut.md
@@ -1,18 +1,18 @@
---
layout: post
-title: Keyboard shortcut in React Document editor component | Syncfusion
-description: Learn here all about Keyboard shortcut in Syncfusion React Document editor component of Syncfusion Essential JS 2 and more.
+title: Keyboard shortcut in React DOCX Editor component | Syncfusion
+description: Learn here all about Keyboard shortcut in Syncfusion React Document Editor component of Syncfusion Essential JS 2 and more.
control: Keyboard shortcut
platform: document-processing
documentation: ug
domainurl: ##DomainURL##
---
-# Keyboard shortcut in React Document editor component
+# Keyboard shortcut in React Document Editor component
## Text formatting
-The following table lists the default keyboard shortcuts in [React DOCX Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor) for formatting text:
+The following table lists the default keyboard shortcuts in [React Document Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor) for formatting text:
| Key combination | Description |
|-----------------|-------------|
@@ -20,9 +20,9 @@ The following table lists the default keyboard shortcuts in [React DOCX Editor](
|Ctrl + I | Toggles the italic property of selected text.|
|Ctrl + U | Toggles the underline property of selected text.|
|Ctrl + + | Toggles the subscript formatting of selected text.|
-|Ctrl + Shift + + | Toggles the superscript formatting of selected contents.|
-| Ctrl + } | Increases the actual font size of selected text by one point.|
-| Ctrl + { | Decreases the actual font size of selected text by one point.|
+|Ctrl + Shift + + | Toggles the superscript formatting of selected text.|
+| Ctrl + } | Increases the font size of selected text by one point.|
+| Ctrl + { | Decreases the font size of selected text by one point.|
## Paragraph formatting
@@ -30,17 +30,17 @@ The following table lists the default keyboard shortcuts for formatting the para
| Key combination | Description |
|-----------------|-------------|
-|Ctrl + E | Selected paragraphs are center aligned.|
+|Ctrl + E | Selected paragraphs are center-aligned.|
|Ctrl + J |Selected paragraphs are justified.|
-|Ctrl + L | Selected paragraphs are left aligned.|
-|Ctrl + R | Selected paragraphs are right aligned.|
-|Ctrl + 1 | Single line spacing is applied for selected paragraphs.|
-|Ctrl + 5 | 1.5 line spacing is applied for selected paragraphs.|
-|Ctrl + 2 | Double spacing is applied for selected paragraphs.|
-|Ctrl + 0 | No spacing is applied before the selected paragraphs.|
+|Ctrl + L | Selected paragraphs are left-aligned.|
+|Ctrl + R | Selected paragraphs are right-aligned.|
+|Ctrl + 1 | Applies single line spacing to the selected paragraphs.|
+|Ctrl + 5 | Applies 1.5 line spacing to the selected paragraphs.|
+|Ctrl + 2 | Applies double line spacing to the selected paragraphs.|
+|Ctrl + 0 | Applies no spacing before the selected paragraphs.|
|Ctrl + M | Increases the left indent of selected paragraphs by a factor of 36 points.|
|Ctrl + Shift + M | Decreases the left indent of selected paragraphs by a factor of 36 points.|
-|Ctrl + * | Show/Hide the hidden characters like spaces, tab, paragraph marks, and breaks.|
+|Ctrl + * | Shows or hides hidden characters such as spaces, tabs, paragraph marks, and breaks.|
## Clipboard
@@ -80,7 +80,7 @@ The following table lists the default keyboard shortcuts for formatting the para
|Shift + Down arrow| Extends selection one line downward.|
|Shift + Up arrow| Extends selection one line upward.|
|Shift + Home| Extends selection to the start of a line.|
-|Shift + End| Extends Selection to the end of a line.|
+|Shift + End| Extends selection to the end of a line.|
|Ctrl + A| Extends selection to the entire document.|
|Ctrl + Shift + Left arrow| Extends selection one word to the left.|
|Ctrl + Shift + Right arrow| Extends selection one word to the right.|
@@ -96,11 +96,11 @@ The following table lists the default keyboard shortcuts for formatting the para
|Ctrl + F| Opens options pane.|
|Ctrl + H| Opens replace tab in options pane.|
-## Create, Save and Print document
+## Create, Save, and Print document
|Key Combination|Description|
|---------------|-----------|
-|Ctrl + N| Opens empty document.|
+|Ctrl + N| Opens an empty document.|
|Ctrl + S| Saves the document in SFDT format.|
|Ctrl + P| Prints the document.|
@@ -108,8 +108,8 @@ The following table lists the default keyboard shortcuts for formatting the para
|Key Combination|Description|
|---------------|-----------|
-|Backspace | Deletes one character to the left.|
-|Delete | Deletes one character to the right.|
+|Backspace| Deletes one character to the left.|
+|Delete| Deletes one character to the right.|
|Ctrl + Z | Undo last performed action.|
|Ctrl + Y | Redo last undo action.|
diff --git a/Document-Processing/Word/Word-Processor/react/link.md b/Document-Processing/Word/Word-Processor/react/link.md
index 4ccdf538f9..3a55171cbb 100644
--- a/Document-Processing/Word/Word-Processor/react/link.md
+++ b/Document-Processing/Word/Word-Processor/react/link.md
@@ -1,24 +1,24 @@
---
layout: post
-title: Link in React Document editor component | Syncfusion
-description: Learn here all about Link in Syncfusion React Document editor component of Syncfusion Essential JS 2 and more.
+title: Link in React DOCX Editor component | Syncfusion
+description: Learn here all about Link in Syncfusion React Document Editor component of Syncfusion Essential JS 2 and more.
control: Link
platform: document-processing
documentation: ug
domainurl: ##DomainURL##
---
-# Link in React Document editor component
+# Link in React Document Editor component
-[React DOCX Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor) supports hyperlink field. You can link a part of the document content to Internet or file location, mail address, or any text within the document.
+[React Document Editor](https://www.syncfusion.com/docx-editor-sdk/react-docx-editor) (Document Editor) supports the hyperlink field. You can link a part of the document content to the Internet, a file location, a mail address, or any text within the document.
## Navigate a hyperlink
-Document Editor triggers ‘requestNavigate’ event whenever user clicks Ctrl key or tap a hyperlink within the document. This event provides necessary details about link type, navigation URL, and local URL (if any) as arguments, and allows you to easily customize the hyperlink navigation functionality.
+Document Editor triggers the `requestNavigate` event whenever the user presses the Ctrl key or taps a hyperlink within the document. This event provides the necessary details about link type, navigation URL, and local URL (if any) as arguments, and allows you to easily customize the hyperlink navigation functionality.
### Add the requestNavigate event for DocumentEditor
-The following example illustrates how to add requestNavigate event for DocumentEditor.
+The following example illustrates how to add the `requestNavigate` event for the DocumentEditor.
{% tabs %}
{% highlight js tabtitle="index.jsx" %}
@@ -36,7 +36,7 @@ The following example illustrates how to add requestNavigate event for DocumentE
### Add the requestNavigate event for DocumentEditorContainer component
-The following example illustrates how to add requestNavigate event for DocumentEditorContainer component.
+The following example illustrates how to add the `requestNavigate` event for the DocumentEditorContainer component.
```ts
import * as ReactDOM from 'react-dom';
@@ -83,7 +83,7 @@ ReactDOM.render(, document.getElementById('sample'));
> The Web API hosted link `https://document.syncfusion.com/web-services/docx-editor/api/documenteditor/` utilized in the Document Editor's serviceUrl property is intended solely for demonstration and evaluation purposes. For production deployment, please host your own web service with your required server configurations. You can refer and reuse the [GitHub Web Service example](https://github.com/SyncfusionExamples/EJ2-DocumentEditor-WebServices) or [Docker image](https://hub.docker.com/r/syncfusion/word-processor-server) for hosting your own web service and use for the serviceUrl property.
-If the selection is in hyperlink, trigger this event by calling ‘navigateHyperlink’ method of ‘Selection’ instance. Refer to the following example.
+If the selection is in a hyperlink, trigger this event by calling the `navigateHyperlink` method of the `Selection` instance. Refer to the following example.
```ts
documenteditor.selection.navigateHyperlink();
@@ -91,7 +91,7 @@ documenteditor.selection.navigateHyperlink();
## Copy link
-Document Editor copies link text of a hyperlink field to the clipboard if the selection is in hyperlink. Refer to the following example.
+Document Editor copies the link text of a hyperlink field to the clipboard if the selection is in a hyperlink. Refer to the following example.
```ts
documenteditor.selection.copyHyperlink();
@@ -125,19 +125,19 @@ Refer to the following example.
## Customize screen tip
-You can customize the screen tip text for the hyperlink by using below sample code.
+You can customize the screen tip text for the hyperlink by using the sample code below.
```ts
documenteditor.editor.insertHyperlink('https://www.google.com', 'Google', '<>');
```
-Screen tip text can be modified through UI by using the [Hyperlink dialog](./dialog#hyperlink-dialog)
+Screen tip text can be modified through the UI by using the [Hyperlink dialog](./dialog#hyperlink-dialog).

## Remove hyperlink
-To remove link from hyperlink in the document, press Backspace key at the end of a hyperlink. By removing the link, it will be converted as plain text. You can use ‘removeHyperlink’ method of ‘Editor’ instance if the selection is in hyperlink. Refer to the following example.
+To remove the link from a hyperlink in the document, press the Backspace key at the end of a hyperlink. By removing the link, it will be converted as plain text. You can use the `removeHyperlink` method of the `Editor` instance if the selection is in a hyperlink. Refer to the following example.
```ts
documenteditor.editor.removeHyperlink();
@@ -161,15 +161,15 @@ Document Editor provides dialog support to insert or edit a hyperlink. Refer to
{% previewsample "/document-processing/code-snippet/document-editor/react/link-cs3" %}
-You can use the following keyboard shortcut to open the hyperlink dialog if the selection is in hyperlink.
+You can use the following keyboard shortcut to open the hyperlink dialog if the selection is in a hyperlink.
| Key Combination | Description |
|-----------------|-------------|
-|Ctrl + K | Open hyperlink dialog that allows you to create or edit hyperlink|
+|Ctrl + K | Open hyperlink dialog that allows you to create or edit a hyperlink|
## Online Demo
-Explore how to insert and manage hyperlinks in Word documents using the React Document Editor in this live demo [here](https://document.syncfusion.com/demos/docx-editor/react/#/tailwind3/document-editor/links-and-bookmarks).
+Explore how to insert and manage hyperlinks in Word documents using the React Document Editor in this [live demo](https://document.syncfusion.com/demos/docx-editor/react/#/tailwind3/document-editor/links-and-bookmarks).
## See Also
diff --git a/Document-Processing/Word/Word-Processor/react/mcp.md b/Document-Processing/Word/Word-Processor/react/mcp.md
new file mode 100644
index 0000000000..3ee5eb703d
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/react/mcp.md
@@ -0,0 +1,211 @@
+---
+layout: post
+title: Syncfusion React DOCX Editor MCP Server Setup | Syncfusion
+description: Discover the MCP server's advantages, installation requirements, and integration guidance for React DOCX Editor.
+control: DocumentEditor
+platform: document-processing
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Syncfusion React DOCX Editor MCP Server
+
+Syncfusion® React DOCX Editor MCP Server accelerates React DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+These tools speed up development and reinforce best practices for React DOCX Editor integration.
+> The previously available **Agentic UI Builder** (`#sf_react_ui_builder`) has been upgraded to an **Agent skill-based experience** and is no longer part of the MCP Server. To learn more about the new **Agentic UI Builder**, see the [documentation](./ui-builder-skill). The **AI Coding Assistant** (#sf_react_assistant) has been **renamed** to **search_docs** (`#search_docs`) to ensure the tool name follows MCP naming conventions.
+
+## Key Benefits
+
+- **Expert DOCX Editor Knowledge** - Deep understanding of the React DOCX Editor component and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- [Node.js 18+](https://nodejs.org/en/download) with **npm** or **yarn**
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- A **React application** (existing or new); see [React DOCX Editor documentation](./getting-started)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.** The tabs below show a working configuration for each supported MCP client.
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-react-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/react-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-react-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/react-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-react-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/react-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-react-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/react-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-react-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world React DOCX Editor development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the React DOCX Editor component.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion React DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the React DOCX Editor.
+
+{% promptcards %}
+{% promptcard Track changes %}
+#search_docs How to enable track changes in React DOCX Editor ?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best Practices
+
+To get the most out of the Syncfusion® React DOCX Editor MCP Server:
+
+- **Be Specific** - Include the component and use case in your queries (for example, *"How can I apply font size character formatting to text in React DOCX Editor?"*).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your React project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](./getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Server failed to start** | Verify Node.js 18+ is installed, check JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/Word/Word-Processor/vue/mcp.md b/Document-Processing/Word/Word-Processor/vue/mcp.md
new file mode 100644
index 0000000000..5c3a99f953
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/vue/mcp.md
@@ -0,0 +1,213 @@
+---
+layout: post
+title: Syncfusion Vue DOCX Editor MCP Server Setup | Syncfusion
+description: Discover the MCP server's advantages, installation requirements, and integration guidance for Vue DOCX Editor.
+control: DocumentEditor
+platform: document-processing
+documentation: ug
+domainurl: ##DomainURL##
+---
+
+# Syncfusion Vue DOCX Editor MCP Server
+
+Syncfusion® Vue DOCX Editor MCP Server accelerates Vue DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+These tools speed up development and reinforce best practices for Vue DOCX Editor integration.
+
+> The previously available **Agentic UI Builder** (`#sf_vue_ui_builder`) has been upgraded to an **Agent skill-based experience** and is no longer part of the MCP Server. To learn more about the new **Agentic UI Builder**, see the [documentation](https://ej2.syncfusion.com/vue/documentation/agentic-ui-builder). The **AI Coding Assistant** (#sf_vue_assistant) has been **renamed** to **search_docs** (`#search_docs`) to ensure the tool name follows MCP naming conventions.
+
+## Key Benefits
+
+- **Expert DOCX Editor Knowledge** - Deep understanding of the Vue DOCX Editor component (Document Editor) and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- **Node.js** version 18 or higher
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- A **Vue application** (existing or new); see [Vue DOCX Editor documentation](./getting-started)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.**
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-vue-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/vue-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-vue-mcp": {
+ "type": "stdio",
+ "command": "npx",
+ "args": ["-y", "@syncfusion/vue-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-vue-mcp": {
+ "command": "npx",
+ "args": ["-y", "@syncfusion/vue-mcp@latest"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-vue-mcp": {
+ "command": "npx.cmd",
+ "args": [
+ "-y",
+ "@syncfusion/vue-mcp@latest"
+ ],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-vue-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world Vue DOCX Editor development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the Vue DOCX Editor component.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion Vue DOCX Editor Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the Vue DOCX Editor.
+
+{% promptcards %}
+{% promptcard Track changes %}
+#search_docs How to enable track changes in Vue DOCX Editor ?
+{% endpromptcard %}
+{% endpromptcards %}
+
+## Best Practices
+
+To get the most out of the Syncfusion® Vue DOCX Editor MCP Server:
+
+- **Be Specific** - Include the component and use case in your queries (for example, *"How can I apply font size character formatting to text in Vue DOCX Editor?"*).
+- **Provide Context** - Include applicable versions, expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your Vue project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](./getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Clear npm cache** | Run `npx clear-npx-cache` and restart your IDE to resolve package caching issues. |
+| **Server failed to start** | Update to Node.js 18+, verify JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/Word/Word-Processor/wpf/mcp.md b/Document-Processing/Word/Word-Processor/wpf/mcp.md
new file mode 100644
index 0000000000..102eadbe9b
--- /dev/null
+++ b/Document-Processing/Word/Word-Processor/wpf/mcp.md
@@ -0,0 +1,241 @@
+---
+layout: post
+title: Syncfusion WPF DOCX Editor MCP Server Setup – Syncfusion
+description: Discover the MCP server’s advantages, installation requirements, and integration guidance for Syncfusion WPF DOCX Editor.
+platform: document-processing
+control: RichTextBox
+documentation: ug
+---
+# Syncfusion WPF DOCX Editor MCP Server
+
+Syncfusion® WPF MCP Server accelerates WPF RichTextBox application development by providing deep knowledge directly in your AI-powered IDE.
+ [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+
+## Key Benefits
+
+- **Expert WPF RichTextBox (SfRichTextBoxAdv) Knowledge** - Deep understanding of Syncfusion WPF RichTextBox (SfRichTextBoxAdv) component and its implementation patterns.
+- **Unlimited Usage** - No request limits, time restrictions, or query caps.
+- **Privacy-Focused** - The tools operate based on the user's query and do not store any content, data, or prompts.
+
+## Installation
+
+### Prerequisites
+
+Before beginning, ensure the following prerequisites are met:
+
+- Microsoft [.NET SDK 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or later
+- A **compatible MCP client** (VS Code, Syncfusion® Code Studio, Cursor, JetBrains, etc.)
+- An active [Syncfusion® API key](https://syncfusion.com/account/api-key)
+- A **WPF application** (existing or new); see [ WPF application that includes Syncfusion WPF RichTextBox](https://help.syncfusion.com/document-processing/word/word-processor/wpf/getting-started)
+- An active Syncfusion® license (any of the following):
+ - [Commercial License](https://www.syncfusion.com/sales/unlimitedlicense)
+ - [Free Community License](https://www.syncfusion.com/products/communitylicense)
+ - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials)
+
+### Getting Your API Key
+
+Generate the Syncfusion® API key from the [API Key page](https://www.syncfusion.com/account/api-key) and store it in a `.txt` or `.key` file. The saved file will be referenced in the MCP configuration:
+
+````json
+"env": {
+ "Syncfusion_API_Key_Path": "D:\\syncfusion-key.txt"
+}
+````
+
+> Alternatively, the API key can also be set directly using `"Syncfusion_API_Key": "YOUR_API_KEY"` in the env configuration. Using a file path is recommended to keep the key out of source control.
+
+### Setting Up in MCP Clients
+
+Create a configuration file in your project folder to install the server for your workspace. **Replace `YOUR_API_KEY_FILE_PATH` with the path to your API key file.** The tabs below show a working configuration for each supported MCP client.
+
+**For .NET 10** :
+
+{% tabs %}
+{% highlight bash tabtitle="VS Code" %}
+
+// Create a `.vscode/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-wpf-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.WPF.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="Code Studio" %}
+
+// Create a `.codestudio/mcp.json` file in your workspace:
+
+{
+ "servers": {
+ "sf-wpf-mcp": {
+ "type": "stdio",
+ "command": "dnx",
+ "args": ["Syncfusion.WPF.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// After creating the file, click Start in the inline action to install the server.
+
+{% endhighlight %}
+{% highlight bash tabtitle="Cursor" %}
+
+// Create a `.cursor/mcp.json` file in your workspace:
+
+{
+ "mcpServers": {
+ "sf-wpf-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.WPF.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+{% endhighlight %}
+{% highlight bash tabtitle="JetBrains" %}
+
+// Open AI Assistant chat, type /, and select Add Command.
+// Click ➕ Add on the MCP settings page.
+// Choose STDIO and select JSON configuration:
+
+{
+ "mcpServers": {
+ "sf-wpf-mcp": {
+ "command": "dnx",
+ "args": ["Syncfusion.WPF.MCP", "--yes"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+}
+
+// Click OK, then click Apply. The server starts and shows Connected status.
+
+{% endhighlight %}
+{% endtabs %}
+
+
+**For .NET 8 / .NET 9 (using a local tool):**
+
+You can install the Syncfusion WPF MCP Server as a local tool without requiring a global installation. For guidance on installing and managing local .NET tools, refer to the [documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/local-tools-how-to-use).
+
+1. Install the Syncfusion WPF MCP tool locally:
+
+ ````bash
+ dotnet tool install Syncfusion.WPF.MCP
+ ````
+
+ > If the project does not already have a tool manifest, create one first by running `dotnet new tool-manifest` in the project root. This generates a shared `.config/dotnet-tools.json` file that tracks local tools, then re-run the install command above.
+
+2. In your MCP client config (for example, `.vscode/mcp.json`), replace the server entry with:
+
+ ````json
+ {
+ "servers": {
+ "sf-wpf-mcp": {
+ "type": "stdio",
+ "command": "dotnet",
+ "args": ["tool", "run", "syncfusion-wpf-mcp"],
+ "env": {
+ "Syncfusion_API_Key_Path": "YOUR_API_KEY_FILE_PATH"
+ // or
+ // "Syncfusion_API_Key": "YOUR_API_KEY"
+ }
+ }
+ }
+ }
+ ````
+
+**Verifying Installation** Check your editor's MCP Server list for `sf-wpf-mcp` with a **Connected** status to confirm a successful installation.
+
+## Common use cases
+
+The examples below showcase how the `search_docs` tool handles real-world WPF RichTextBox development scenarios. The tool can be invoked directly, as shown in the examples below, for specific needs. Alternatively, an AI assistant can automatically invoke it based on the request.
+
+**Get Started**
+
+Use `search_docs` to get contextual guidance, code snippets, and configuration examples for the WPF RichTextBox (SfRichTextBoxAdv) component.
+
+{% promptcards %}
+{% promptcard DOCX Editor Configuration %}
+#search_docs How do I configure the Syncfusion WPF SfRichTextBoxAdv Component?
+{% endpromptcard %}
+{% endpromptcards %}
+
+**Implement Features**
+
+Get step-by-step help for adding specific features to the Angular DOCX Editor.
+
+{% promptcards %}
+{% promptcard Find and replace %}
+#search_docs how to use find and replace feature in WPF SfRichTextBoxAdv?
+{% endpromptcard %}
+{% endpromptcards %}
+
+
+## Best Practices
+
+To get the most out of the Syncfusion® WPF MCP Server:
+
+- **Be Specific** - Include the platform and component in your queries (for example, *"How to create a Syncfusion WPF (SfRichTextBoxAdv)?"*).
+- **Provide Context** - Include applicable versions expected outcomes, and any requirements or limitations that may affect the request.
+- **Use Descriptive Queries** - Avoid overly brief or ambiguous requests. Providing sufficient detail helps improve the accuracy and relevance of the response.
+- **Stay Consistent** - Keep file organization, naming conventions, and coding standards consistent throughout your WPF project.
+- **Start Fresh for New Topics** - Begin a new chat when switching to a different feature or task to maintain clean context.
+- **Use Advanced AI Models** - For the best results, use advanced AI models such as the latest-generation **Claude**, **GPT**, or **Gemini** models.
+- **For Troubleshooting** - Use AI suggestions for common issues; consult the [official documentation](https://help.syncfusion.com/document-processing/word/word-processor/wpf/getting-started) or [support](https://support.syncfusion.com/support/tickets/create) for complex problems.
+- **Minimize Active Tools** - Limit the number of active MCP tools in your IDE to prevent tool-selection ambiguity and improve response accuracy.
+
+> Always review AI-generated code before using it in production.
+
+## Troubleshooting
+
+The table below lists frequently encountered issues and suggested resolutions to help diagnose and address common setup or usage challenges.
+
+| Issue | Solution |
+|-------|----------|
+| **Server failed to start** | Update to .NET 8 SDK or higher, verify JSON syntax in the config file, and restart your IDE. |
+| **Invalid API key** | Verify your key is active at the [Syncfusion Account Page](https://syncfusion.com/account/api-key). |
+| **Incorrect API key config** | For the file path: verify file location and content. For inline key: check the key is correctly updated. |
+| **Wrong config file location** | VS Code: `.vscode/mcp.json` • Code Studio: `.codestudio/mcp.json` • Cursor: `.cursor/mcp.json` in the workspace root. |
+| **Check IDE logs** | VS Code / Code Studio: Output panel → "MCP" • Cursor: Developer Console for MCP errors. |
+| **WPF RichTextBox not rendering** | Ensure the `Syncfusion.PdfViewer.WPF` NuGet packages are installed and configured properly in MainWindow.xaml or MainWindow.xaml.cs |
+
+
+## Privacy & Security
+
+The Syncfusion® MCP Servers are designed with privacy considerations:
+
+* The tools process requests according to the user's query without storing any content or prompts.
+* User prompts are not stored or used for other purposes.
+* Prompts are not used to train Syncfusion models.
+* The assistant provides context; the final output is produced by the selected AI model.
+
+The MCP Server acts purely as a knowledge bridge, connecting your AI model with Syncfusion-specific expertise while respecting your privacy and maintaining security.
+
+## See also
+
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
\ No newline at end of file
diff --git a/Document-Processing/mcp-server/documentsdk.md b/Document-Processing/mcp-server/documentsdk.md
index fbf88068e6..538ed538a9 100644
--- a/Document-Processing/mcp-server/documentsdk.md
+++ b/Document-Processing/mcp-server/documentsdk.md
@@ -1,7 +1,7 @@
---
layout: post
title: Syncfusion DocumentSDK MCP Server Setup | Syncfusion
-description: Discover the MCP server’s advantages, installation requirements, and integration guidance for Syncfusion DocumentSDK
+description: Discover the MCP server’s advantages, installation requirements, and integration guidance for Syncfusion DocumentSDK.
platform: document-processing
control: AI coding assistant
documentation: ug
@@ -264,4 +264,4 @@ The MCP Server acts purely as a knowledge bridge, connecting your AI model with
## See also
-- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
\ No newline at end of file
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
diff --git a/Document-Processing/mcp-server/docxeditorsdk.md b/Document-Processing/mcp-server/docxeditorsdk.md
index 0b9bda21f4..85c17d580f 100644
--- a/Document-Processing/mcp-server/docxeditorsdk.md
+++ b/Document-Processing/mcp-server/docxeditorsdk.md
@@ -9,7 +9,7 @@ documentation: ug
# Syncfusion DOCX Editor SDK MCP Server
-Syncfusion® DOCX Editor SDK MCP Server accelerates DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. Model Context Protocol(https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
+Syncfusion® DOCX Editor SDK MCP Server accelerates DOCX Editor application development by providing deep knowledge directly in your AI-powered IDE. [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro) (MCP) integration enables quick access to documentation, API references, and code-generation features from within the development environment.
These tools speed up development and reinforce best practices for Syncfusion® DOCX Editor integration across multiple platforms.
@@ -35,4 +35,4 @@ You can refer to the platform-specific guidance on how to set up and use the Syn
## See also
-- Model Context Protocol(https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
\ No newline at end of file
+- [Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro)
\ No newline at end of file