﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://community.devexpress.com/feed-stylesheets/rss.xsl" media="screen"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dx="https://www.devexpress.com/" xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Office-Inspired Products</title>
    <link>https://community.devexpress.com/Blogs/office/default.aspx</link>
    <description />
    <language>en-US</language>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388270</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2026/02/23/file-amp-document-processing-apis-june-2026-roadmap-v26-1.aspx</link>
      <category domain="https://community.devexpress.com/Tags/Accessibility">Accessibility</category>
      <category domain="https://community.devexpress.com/Tags/Document+Processing">Document Processing</category>
      <category domain="https://community.devexpress.com/Tags/featured">featured</category>
      <category domain="https://community.devexpress.com/Tags/Office">Office</category>
      <category domain="https://community.devexpress.com/Tags/Office+File+API">Office File API</category>
      <category domain="https://community.devexpress.com/Tags/PDF+Document+API">PDF Document API</category>
      <category domain="https://community.devexpress.com/Tags/presentation+api">presentation api</category>
      <category domain="https://community.devexpress.com/Tags/Roadmap">Roadmap</category>
      <category domain="https://community.devexpress.com/Tags/spreadsheet+document+api">spreadsheet document api</category>
      <category domain="https://community.devexpress.com/Tags/v26.1">v26.1</category>
      <category domain="https://community.devexpress.com/Tags/Word+Document+API">Word Document API</category>
      <title>Office File &amp; PDF Document Processing APIs  — June 2026 Roadmap (v26.1)</title>
      <description>&lt;p style="color:#333333;"&gt;We thank you for your continued support and for sharing your document processing needs and requirements with us. In this blog post, I’ll outline our development and release plans for the first half of 2026.&lt;/p&gt;
&lt;p style="color:#333333;"&gt;If you’d like to discuss this roadmap in greater detail or share a business use case that our&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/office-file-api/" target="_blank" rel="noopener" style="color:#337ab7;"&gt;Office File &amp;amp; PDF API&lt;/a&gt;&amp;nbsp;library does not currently address, feel free to submit your feedback via the DevExpress Support Center. We’ll be happy to follow up.&lt;/p&gt;
&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.&lt;/div&gt;
&lt;h2&gt;Roadmap Updates&lt;/h2&gt;
&lt;div&gt;Our roadmap will be updated regularly to reflect development progress. As we get closer to the release, we expect to add additional items and modify the status of planned features. Look for the following labels next to every feature:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;p class="tags"&gt;&lt;span class="not-started"&gt;Planned&lt;/span&gt; — Feature is scheduled but not yet in development.&lt;/p&gt;&lt;/li&gt;
    &lt;li&gt;&lt;p class="tags"&gt;&lt;span class="development"&gt;In Development&lt;/span&gt; — Under active development.&lt;/p&gt;&lt;/li&gt;
    &lt;li&gt;&lt;p class="tags"&gt;&lt;span class="completed"&gt;Coming in EAP v26.1&lt;/span&gt; — Will be available in our first v26.1 early access preview.&lt;/p&gt;&lt;/li&gt;
    &lt;li&gt;&lt;p class="tags"&gt;&lt;span class="completed"&gt;Coming in v26.1&lt;/span&gt; — Will be included in the final v26.1 release.&lt;/p&gt;&lt;/li&gt;
    &lt;li&gt;&lt;p class="tags"&gt;&lt;span class="completed"&gt;Released in v26.1&lt;/span&gt; — Fully implemented and available.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Safe Word &amp;amp; Excel Document Processing&lt;/h2&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Development&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;Our Office File API libraries will include new APIs to securely load and sanitize Microsoft Office(r) files (Word, Excel). These APIs will ship with the following capabilities:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Remove potentially harmful or malicious content (macros, embedded objects, links, scripts).&lt;/li&gt;
	&lt;li&gt;Remove sensitive, hidden, or private data (metadata, comments, tracked changes, optional content, and more).&lt;/li&gt;
	&lt;li&gt;Limit file size, complexity, or structure depth when uploading or saving files.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;These enhancements will help ensure documents are safe to share and compliant with internal data protection policies.&lt;/div&gt;
&lt;h2&gt;Document Processing Libraries for JAVA&lt;/h2&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Development&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;As part of our cross-platform expansion, we are broadening the footprint of DevExpress Office &amp;amp; PDF APIs (moving to the Java platform). &lt;/div&gt;&lt;div&gt;&lt;div class="Note"&gt;&lt;strong&gt;Important note:&lt;/strong&gt; Once our Java Document Processing Library is released, it will be available as a separate/independent subscription. Java libraries will not be included in our .NET Office &amp;amp; PDF File API library.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The following libraries are expected to be available as an early beta in our&amp;nbsp;v26.1 release cycle (and enhanced incrementally):&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Barcode Generation API&lt;/strong&gt; — A comprehensive library for generating barcodes (1D and 2D formats) within Java applications. This API will support common symbologies and image output formats making it suitable for labeling and scanning.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;PowerPoint Presentation API&lt;/strong&gt; — A non-visual PowerPoint processing API that parallels our .NET offering and allows Java developers to programmatically create, modify, and export PPTX files. Early support will focus on slide management, text and shape manipulation, and basic chart support.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;PDF Document API&lt;/strong&gt; — Core PDF file processing capabilities will be extended to Java and enable automated workflows for PDF generation, manipulation, data extraction, and export. Planned features include document creation, merging, form filling, annotating, and text management.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;PDF Processing&lt;/h2&gt;
&lt;h3&gt;New PDF Processing API&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Development&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;We will introduce new high-level APIs for PDF document generation and content management. These new APIs aim to significantly reduce the complexity of PDF document creation/editing and enable more fluent and flexible text-processing.&lt;/p&gt;
&lt;p&gt;These&amp;nbsp;new capabilities will allow you to:&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Work with high-level document objects such as paragraphs, text fragments, images, shapes, interactive forms, and annotations.&lt;/li&gt;
	&lt;li&gt;Insert, read, search, remove, and format text using semantic PDF elements with full control over font, size, and style properties.&amp;nbsp;&lt;/li&gt;
	&lt;li&gt;Work with RTL documents.&lt;/li&gt;
	&lt;li&gt;Automatically reflow content when text fragments are inserted/deleted. &amp;nbsp;&lt;/li&gt;
	&lt;li&gt;Manually tag document objects.&lt;/li&gt;
	&lt;li&gt;Сopy and reuse high-level objects across PDF documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;PDF/UA-2 Export&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Planned&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;To further extend accessibility compliance in automated document workflows, we plan to introduce export options that target the PDF/UA-2 accessibility conformance level. With this capability, developers will be able to create PDFs with appropriate tags, semantics, and structural metadata required for accessibility tools (screen readers, assistive technologies).&lt;/p&gt;
&lt;h3&gt;PDF/A-4 Export&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Planned&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;In v26.1, we expect to extend our PDF Document API’s export capabilities with PDF/A-4 compliance so that you can generate archival PDFs that meet current retention and regulatory requirements.&lt;/div&gt;
&lt;h2&gt;Excel Spreadsheet API&lt;/h2&gt;
&lt;h3&gt;Excel to PDF/UA Conversion Enhancements&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Planned&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We’ll enhance our Excel to PDF/UA conversion engine to address accessibility issues related to graphical object tagging and artifact generation (for decorative content).&lt;/div&gt;
&lt;h3&gt;New Excel Functions&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Development&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We will enhance our Spreadsheet calculation engine by adding support for modern, dynamic array-based Excel functions, including functions like:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;XLOOKUP&lt;/li&gt;
	&lt;li&gt;XMATCH&lt;/li&gt;
	&lt;li&gt;SORT&lt;/li&gt;
	&lt;li&gt;FILTER&lt;/li&gt;
	&lt;li&gt;UNIQUE&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Presentation API&lt;/h2&gt;
&lt;h3&gt;Charts&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Development&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;In v26.1, the DevExpress Presentation API library will natively support Office/PowerPoint charts. New APIs will&amp;nbsp;allow you to create, manipulate, and customize chart objects inside PowerPoint presentations (PPTX) programmatically. This includes support for:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Common MS Office chart types&lt;/li&gt;
	&lt;li&gt;Chart data initialization and binding&lt;/li&gt;
	&lt;li&gt;Data series and axis configuration&lt;/li&gt;
	&lt;li&gt;Visual format settings (titles, legends, colors, and more)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;You will also be able to open, edit, and export existing PowerPoint presentations that contain charts without content loss.&lt;/div&gt;
&lt;h3&gt;Export Slides to Images&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Coming in EAP v26.1&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;v26.1 will add the ability to export individual slides to raster and vector image formats:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;BMP&lt;/li&gt;
	&lt;li&gt;PNG&lt;/li&gt;
	&lt;li&gt;JPEG&lt;/li&gt;
	&lt;li&gt;EMF&lt;/li&gt;
	&lt;li&gt;SVG&lt;/li&gt;
	&lt;li&gt;And more&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;This feature will allow you to generate thumbnail previews, create image-based slide wrappers for web or mobile consumption, and integrate slides into non-PPTX workflows in both Windows and Unix-based systems.&lt;/div&gt;
&lt;h2&gt;Your Feedback Counts&lt;/h2&gt;
&lt;div&gt;We appreciate your continued support. As I mentioned at the beginning of this post, if you have Office/PDF File API-related suggestions or requests, please submit a support ticket via the &lt;a href="https://supportcenter.devexpress.com/"&gt;DevExpress Support Center&lt;/a&gt;&amp;nbsp;— we&amp;#39;ll be happy to review your feedback and follow up.&lt;/div&gt;&lt;div data-survey-id="b7a98d1a-617c-4097-b4a9-d5bc2ad138a5" data-survey-auth-required="false"&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 23 Feb 2026 04:20:00 Z</pubDate>
      <dc:creator>Maria Nikulina (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388255</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2025/08/14/document-processing-libraries-office-file-api-november-2025-roadmap-v25-2.aspx</link>
      <category domain="https://community.devexpress.com/Tags/Accessibility">Accessibility</category>
      <category domain="https://community.devexpress.com/Tags/AI">AI</category>
      <category domain="https://community.devexpress.com/Tags/Document+Processing">Document Processing</category>
      <category domain="https://community.devexpress.com/Tags/Office">Office</category>
      <category domain="https://community.devexpress.com/Tags/Office+File+API">Office File API</category>
      <category domain="https://community.devexpress.com/Tags/office-inspired+controls">office-inspired controls</category>
      <category domain="https://community.devexpress.com/Tags/PDF+Document+API">PDF Document API</category>
      <category domain="https://community.devexpress.com/Tags/presentation+api">presentation api</category>
      <category domain="https://community.devexpress.com/Tags/Roadmap">Roadmap</category>
      <category domain="https://community.devexpress.com/Tags/spreadsheet+document+api">spreadsheet document api</category>
      <category domain="https://community.devexpress.com/Tags/v25.2">v25.2</category>
      <category domain="https://community.devexpress.com/Tags/Word+Document+API">Word Document API</category>
      <title>File &amp; Document Processing APIs (Office/PDF File APIs) — Year-End Roadmap (v25.2)</title>
      <description>&lt;div&gt;Thank you for your continued support and for sharing your document processing needs and requirements with us. In this blog post, I&amp;#39;ll share our development/release plans for the second half of 2025. If you’d like to discuss this roadmap in greater detail or share a business use case that our &lt;a href="https://www.devexpress.com/products/net/office-file-api/"&gt;Office File API&lt;/a&gt; product does not currently address, feel free to submit your feedback via the DevExpress Support Center. We’ll be happy to follow up.&lt;/div&gt;
&lt;div&gt;
	&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Roadmap Updates&lt;/h2&gt;
&lt;div&gt;Our year-end roadmap will be updated regularly to reflect development progress. As we get closer to the release, we expect to add additional items and modify the status of planned features. Look for the following labels next to every feature:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;p class="tags"&gt;&lt;span class="not-started"&gt;Planned&lt;/span&gt; — Feature is scheduled but not yet in development.&lt;/p&gt;&lt;/li&gt;
	&lt;li&gt;&lt;p class="tags"&gt;&lt;span class="development"&gt;In Development&lt;/span&gt; — Under active development.&lt;/p&gt;&lt;/li&gt;
	&lt;li&gt;&lt;p class="tags"&gt;&lt;span class="completed"&gt;Coming in EAP v25.2&lt;/span&gt; — Will be available in our first v25.2 early access preview.&lt;/p&gt;&lt;/li&gt;
	&lt;li&gt;&lt;p class="tags"&gt;&lt;span class="completed"&gt;Coming in v25.2&lt;/span&gt; — Will be included in the final v25.2 release.&lt;/p&gt;&lt;/li&gt;
	&lt;li&gt;&lt;p class="tags"&gt;&lt;span class="completed"&gt;Released in v25.2&lt;/span&gt; — Fully implemented and available.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;DevExpress MCP Server for AI-Powered Documentation Access&lt;/h2&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;All Platforms&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;&lt;a target="_blank" href="https://docs.devexpress.com/GeneralInformation/405551/help-resources/dev-express-documentation-mcp-server-configure-an-ai-powered-assistant"&gt;Available in Preview&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;We will introduce an MCP server that connects GitHub Copilot Chat, Cursor, and other MCP-compatible AI tools directly to our comprehensive documentation database. The server will provide instant access to over 300,000 help topics through natural language queries within your IDE. This will allow you and AI coding agents such as Claude Code to access current DevExpress documentation directly within the AI assistant&amp;#39;s context.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/winforms/20251008-Win-Roadmap-252/dx-mcp-docs-assistant.png" alt="" style="width:1560px;height:632px;"&gt;&lt;h2&gt;Safe Document Processing &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304144/feature-discussion-safe-document-processing"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h2&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Postponed to v26.1&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;Our Office/PDF File API libraries will include new APIs to securely load and sanitize PDF and Office files (Word, Excel, and PowerPoint formats). These APIs will ship with the following capabilities:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Remove potentially harmful or malicious content (macros, embedded objects, links, scripts, etc).&lt;/li&gt;
	&lt;li&gt;Remove sensitive, hidden, or private data (metadata, comments, tracked changes, optional content, etc).&lt;/li&gt;
	&lt;li&gt;Limit file size, complexity, or structure depth when uploading or saving files.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;These enhancements will help ensure documents are safe to share and compliant with internal data protection policies.&lt;/div&gt;
&lt;h2&gt;AI-powered Document Processing &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304143/feature-discussion-ai-powered-document-processing"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h2&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We will introduce a new set of AI-powered file and document APIs designed to enhance productivity/streamline document workflows across the entire DevExpress Office/PDF File API suite.&lt;/div&gt;
&lt;div&gt;These intelligent services will allow you to integrate advanced language models directly into document processing scenarios and leverage capabilities such as:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Summarization – Automatically generate concise summaries of Word, PDF, Excel, or PowerPoint documents.&lt;/li&gt;
	&lt;li&gt;Translation – Translate content between languages and preserve original document formatting and structure.&lt;/li&gt;
	&lt;li&gt;Proofreading – Detect and correct grammar, spelling, and style issues across document content.&lt;/li&gt;
	&lt;li&gt;Contextual Q&amp;amp;A – Ask questions about the content of a document and receive targeted responses.&lt;/li&gt;
	&lt;li&gt;And more.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Key capabilities:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Supports Word (DOCX), Excel (XLSX), PowerPoint (PPTX), and PDF file formats.&lt;/li&gt;
	&lt;li&gt;Seamless integration with the document object model (DOM) and structured document elements (paragraphs, shapes, cells, etc).&lt;/li&gt;
	&lt;li&gt;Real-time document editing and updates based on AI-generated suggestions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Document Accessibility &amp;amp; Compliance&lt;/h2&gt;
&lt;h3&gt;PDF/A Processing Enhancements &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304142/feature-discussion-pdf-a-processing-enhancements"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;With v25.2, we will enhance PDF/A file processing capabilities (import, edit, and save) when using our PDF Document API. These improvements will help ensure that files remain PDF/A-compliant after modifications. We will also introduce APIs to read a document’s PDF/A conformance level and reset compliance status as needed.&lt;/div&gt;
&lt;h3&gt;Word to PDF/UA Conversion — Form Field Tagging&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;With our next release, DevExpress Word-processing tools will automatically add accessible tags for PDF form fields when users export Word documents with Content Controls to PDF/UA.&lt;/div&gt;
&lt;h3&gt;Excel to PDF/UA Conversion Enhancements &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304141/feature-discussion-excel-to-pdf-ua-conversion-enhancements"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Postponed&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We’ll enhance our Excel to PDF/UA conversion engine to address accessibility issues related to graphical object tagging and artifact generation (for decorative content).&lt;/div&gt;
&lt;h3&gt;PDF 2.0 &amp;amp; PDF/UA-2 Support (Research Phase)&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Research Complete&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;During our v25.2 release cycle, we will begin work to support PDF 2.0 and PDF/UA-2 formats across the entire DevExpress Office File API product line. &lt;/div&gt;
&lt;div&gt;Once our research phase is complete, we&amp;#39;ll prioritize implementation steps to align our document processing libraries with modern standards and regulatory requirements.&lt;/div&gt;
&lt;h2&gt;Presentation API&lt;/h2&gt;
&lt;h3&gt;Document Rendering Enhancements&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We will refine our internal document layout engine to offer precise rendering of &lt;a href="https://www.devexpress.com/products/net/office-file-api/powerpoint-presentation-api/" target="_blank"&gt;PowerPoint presentation&lt;/a&gt; content. This includes enhancements in how text, shapes, and layout elements are measured and drawn when you print or export presentations to PDF.&lt;/div&gt;
&lt;h3&gt;Tables &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304139/feature-discussion-presentation-api-tables"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We plan to support PowerPoint table elements and introduce APIs to programmatically create and format structured tables inside slides.&lt;/div&gt;
&lt;div&gt;This feature will include the following capabilities:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Insert tables with a specified number of rows and columns.&lt;/li&gt;
	&lt;li&gt;Manage table, row, column, and cell operations (insert, delete, resize, format).&lt;/li&gt;
	&lt;li&gt;Fill, modify, and clear table data.&lt;/li&gt;
	&lt;li&gt;Merge and split table cells.&lt;/li&gt;
	&lt;li&gt;Apply table styles and format individual cells (borders, shading, text alignment, background fills and more).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Themes &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304138/feature-discussion-presentation-api-themes"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;To improve presentation design consistency, we will support PowerPoint themes. This will include the ability to:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Apply and manipulate built-in or custom themes programmatically.&lt;/li&gt;
	&lt;li&gt;Modify a theme&amp;#39;s color scheme.&lt;/li&gt;
	&lt;li&gt;Reset theme formatting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;OpenXml-based File Formats &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304136/feature-discussion-presentation-api-openxml-based-file-formats"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We&amp;#39;ll expand the range of supported PowerPoint file formats with the following OpenXml-based extensions:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;POTX — PowerPoint Template&lt;/li&gt;
	&lt;li&gt;POTM — PowerPoint Macro-Enabled Template&lt;/li&gt;
	&lt;li&gt;PPTM — PowerPoint Macro-Enabled Presentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;PDF Document API&lt;/h2&gt;
&lt;h3&gt;PDF Compression &amp;amp; Optimization&lt;/h3&gt;
&lt;h4&gt;Image Compression Enhancements &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304132/feature-discussion-pdf-image-compression-enhancements"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h4&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We&amp;#39;ll introduce support for additional image compression options. This&amp;nbsp;will include settings for grayscale conversion to reduce file size when color fidelity is not required.&lt;/div&gt;
&lt;h4&gt;Combine &amp;amp; Compress PDF Object Streams &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304131/feature-discussion-combine-compress-pdf-object-streams"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h4&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;With v25.2, our PDF Processing API will include functionality to merge and compress PDF object streams to remove&amp;nbsp;redundancy in internal data structures and reduce file overhead. &lt;/div&gt;
&lt;div&gt;This capability&amp;nbsp;will optimize both output file size and PDF load performance. Additionally, this will address file size growth issues when you merge multiple PDFs with pre-compressed streams into a single file.&lt;/div&gt;
&lt;h3&gt;Use Custom Fonts for PDF AcroForm Fields &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304117/feature-discussion-use-custom-fonts-for-pdf-acroform-fields"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We&amp;#39;ll introduce the ability to use custom fonts (not registered in the system) for PDF fields (text boxes, signatures, etc) when using the DevExpress PDF Document API library for document generation or modification. Custom fonts registered in the DXFontRepository will be embeddable at runtime and applied to newly created or existing fields via the document model.&lt;/div&gt;
&lt;h2&gt;Word Document API&lt;/h2&gt;
&lt;h3&gt;Enhanced Master-Detail Mail Merge &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304116/feature-discussion-enhanced-master-detail-mail-merge"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We will extend our Word Processing APIs and support mail merge operations based on hierarchical (master-detail) data sources. This feature will allow developers to bind nested collections directly to Word templates using standard merge field syntax. With this enhancement, you will be able to:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Define repeatable detail sections using region-based merge fields.&lt;/li&gt;
	&lt;li&gt;Use a single template to generate multi-level reports, invoices, or personalized documents.&lt;/li&gt;
	&lt;li&gt;Perform complex document generation from hierarchical business objects (for example, Customer → Orders, Order → Items).&lt;/li&gt;
	&lt;li&gt;Integrate with custom data sources.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Spreadsheet Document API&lt;/h2&gt;
&lt;h3&gt;OLE Object Support Enhancements &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1304115/feature-discussion-ole-object-support-enhancements"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Released&amp;nbsp;in v25.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;In our end-of-year release, we will give you the capability to manage OLE Objects (load, modify, and save) in binary file formats:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;XLS&lt;/li&gt;
	&lt;li&gt;XLSB&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;New Excel Functions &lt;span style="text-decoration:underline;font-size:14px;"&gt;
		&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278686/feature-discussion-new-excel-functions-support"&gt;(Discuss This Feature)&lt;/a&gt;
	&lt;/span&gt;
&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Postponed to v26.1&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We will enhance our Spreadsheet calculation engine by adding support for modern, dynamic array-based Excel functions, including functions like:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;XLOOKUP&lt;/li&gt;
	&lt;li&gt;XMATCH&lt;/li&gt;
	&lt;li&gt;FILTER&lt;/li&gt;
	&lt;li&gt;UNIQUE&lt;/li&gt;
	&lt;li&gt;And more&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Your Feedback Counts&lt;/h2&gt;
&lt;div&gt;We appreciate your continued support. As I mentioned at the beginning of this post, if you have Office/PDF File API-related suggestions or requests, please submit a support ticket via the &lt;a href="https://supportcenter.devexpress.com/"&gt;DevExpress Support Center&lt;/a&gt; — we&amp;#39;ll be happy to review your feedback and follow up.&lt;/div&gt;
&lt;div data-survey-id="d31ef035-8929-4c28-88ce-c7323a187216" data-survey-auth-required="false"&gt;
&lt;h2&gt;v25.1 - What’s New&lt;/h2&gt;
&lt;div&gt;If you have yet to review the features/capabilities introduced in our most recent major update, please visit the following webpage and let us know what you think of this release by responding to our online survey: &lt;a href="https://www.devexpress.com/subscriptions/whats-new/#officefileapi"&gt;Explore Our Newest Features (v25.1)&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 14 Aug 2025 06:30:00 Z</pubDate>
      <dc:creator>Maria Nikulina (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388253</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2025/08/13/document-processing-new-powerpoint-presentation-api-library.aspx</link>
      <category domain="https://community.devexpress.com/Tags/Document+Processing">Document Processing</category>
      <category domain="https://community.devexpress.com/Tags/featured">featured</category>
      <category domain="https://community.devexpress.com/Tags/Office">Office</category>
      <category domain="https://community.devexpress.com/Tags/Office+File+API">Office File API</category>
      <category domain="https://community.devexpress.com/Tags/powerpoint">powerpoint</category>
      <category domain="https://community.devexpress.com/Tags/presentation">presentation</category>
      <category domain="https://community.devexpress.com/Tags/presentation+api">presentation api</category>
      <category domain="https://community.devexpress.com/Tags/v25.1">v25.1</category>
      <title>File &amp; Document Processing APIs — New PowerPoint Presentation API Library</title>
      <description>&lt;p&gt;&lt;span style="color:#333333;"&gt;We are happy to announce the CTP release of our new &lt;a href="https://www.devexpress.com/products/net/office-file-api/powerpoint-presentation-api/"&gt;.NET PowerPoint Presentation API&lt;/a&gt; library (available with &lt;strong&gt;v25.1.4+&lt;/strong&gt;).&amp;nbsp;&lt;/span&gt;&lt;span style="color:#333333;"&gt;This library was designed to help you&lt;span&gt;&amp;nbsp;create, read, edit, convert, merge, split, and print&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:#333333;"&gt;Microsoft PowerPoint files within .NET apps&lt;/span&gt;&lt;span style="color:#333333;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;In this blog post, I’ll describe the key features available in this Community Tech Preview, share product architecture insights, and demonstrate how you can create an&amp;nbsp;application to manage presentation files in code.&lt;/span&gt;&lt;/p&gt;&lt;div class="Note"&gt;&lt;span style="color:#2b2b2b;"&gt;&lt;strong&gt;Note&lt;/strong&gt;: The DevExpress Presentation API Library is currently available as a&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/aboutus/pre-release.xml"&gt;Community Technology Preview (CTP)&lt;/a&gt;&lt;span style="color:#2b2b2b;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;&lt;img src="https://community.devexpress.com/blogs/office/v25.1/Office%20File%20API_2.png" alt="" style="width:1500px;height:952px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;Presentation API Overview&lt;/h2&gt;&lt;h3&gt;Cross-platform PowerPoint File Processing&lt;/h3&gt;&lt;p style="color:#333333;"&gt;The DevExpress Presentation API is built atop .NET and supports a broad range of platforms and operating systems out of the box. Whether you’re developing a traditional desktop application, a web backend, or a cross-platform solution, you can seamlessly integrate PowerPoint file processing without any dependency on Microsoft Office or PowerPoint installations.&lt;/p&gt;&lt;p style="color:#333333;"&gt;Supported frameworks, operating systems, and environments include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;NET 8/9, .NET Framework 4.6.2+&lt;/li&gt;&lt;li&gt;Windows, Linux, macOS&lt;/li&gt;&lt;li&gt;Azure, AWS, Docker&lt;/li&gt;&lt;/ul&gt;&lt;img src="https://community.devexpress.com/blogs/office/v25.1/ofa_platforms.png" alt="" style="width:1100px;height:209px;"&gt;&lt;h3&gt;Supported Formats and Document Elements&lt;/h3&gt;&lt;p style="color:#333333;"&gt;The current version (v25.1.x) of our&amp;nbsp;PowerPoint Presentation API library allows you to import and save presentation files using the&amp;nbsp;&lt;strong&gt;PPTX&lt;/strong&gt; file format (and of course&amp;nbsp;to print/export files to &lt;strong&gt;PDF)&lt;/strong&gt;.&lt;/p&gt;&lt;p style="color:#333333;"&gt;The DevExpress Presentation library&amp;nbsp;includes a comprehensive set of APIs and settings to create/manage presentation elements programmatically. You can add, access, modify, or remove the following PowerPoint document elements and customize associated settings:&lt;/p&gt;&lt;ul style="color:#333333;"&gt;&lt;li&gt;Slides, Slide Layouts, Slide Master&lt;/li&gt;&lt;li&gt;Slide Notes, Note Master&lt;/li&gt;&lt;li&gt;Shapes, Connectors, Text Boxes, Images&lt;/li&gt;&lt;li&gt;Shape Text, Paragraphs, and Placeholders&lt;/li&gt;&lt;li&gt;Bullet and Numbered Lists&lt;/li&gt;&lt;li&gt;Presentation Header and Footer&lt;/li&gt;&lt;li&gt;Built-in and Custom Document Properties&lt;/li&gt;&lt;li&gt;Presentation View Properties&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Code Example &lt;span&gt;—&lt;/span&gt; Convert a Presentation to PDF&lt;/h4&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;using DevExpress.Docs.Presentation;
//...
// Load a presentation
Presentation presentation = new Presentation(File.ReadAllBytes(&amp;quot;mypresentation.pptx&amp;quot;));
// Export to PDF
presentation.ExportToPdf(new FileStream(@&amp;quot;D:\exported-document.pdf&amp;quot;, FileMode.Create));&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="Key-Functionalities-to-Manage-Presentations" style="font-weight:600;color:#333333;"&gt;Key Features Designed to Manage Presentations&lt;/h3&gt;&lt;p style="color:#333333;"&gt;The DevExpress Presentation API gives you the power to programmatically create and organize presentation content. It supports the following usage-scenarios:&lt;/p&gt;&lt;ul style="color:#333333;"&gt;&lt;li&gt;Add, clone, rearrange, resize, hide, or delete presentation slides.&lt;/li&gt;&lt;li&gt;Create, customize, and apply different slide layouts.&lt;/li&gt;&lt;li&gt;Access and update slide master content.&lt;/li&gt;&lt;li&gt;Merge multiple presentations or copy slides from one presentation to another.&lt;/li&gt;&lt;li&gt;Split one presentation to multiple presentations (slide-by-slide).&lt;/li&gt;&lt;li&gt;Extract or assign text to a specific paragraph, shape, slide, speaker note, or entire presentation.&lt;/li&gt;&lt;li&gt;Format text, paragraphs, shapes, and slide backgrounds.&lt;/li&gt;&lt;li&gt;Manage presentation metadata. &lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Code Example &lt;span&gt;—&lt;/span&gt; Merge Two Presentations&lt;/h4&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;using DevExpress.Docs.Presentation;
//...
// Load presentations
Presentation presentation1 = new Presentation(File.ReadAllBytes(&amp;quot;presentation1.pptx&amp;quot;));
Presentation presentation2 = new Presentation(File.ReadAllBytes(&amp;quot;presentation2.pptx&amp;quot;));
// Merge presentation slides
foreach (Slide slide in presentation2.Slides) { 
    presentation1.Slides.Add(slide);
}
// Save the merged document to the PPTX file
FileStream outputStream = new FileStream(@&amp;quot;D:\merged_presentation.pptx&amp;quot;, FileMode.Create);
presentation.SaveDocument(outputStream);&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;ul style="color:#333333;"&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="color:#333333;"&gt;&lt;img src="https://community.devexpress.com/blogs/office/v25.1/Manage_Presentations.png" alt=""&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 id="Object-based-Document-Model" style="font-weight:600;color:#333333;"&gt;Object-based Document Model&lt;/h3&gt;&lt;p style="color:#333333;"&gt;Unlike other PowerPoint-processing&amp;nbsp;libraries that rely on interface-based document model, the DevExpress Presentation API library uses the concrete&amp;nbsp;&lt;em&gt;Object-oriented model&lt;/em&gt;. This architectural choice is designed to offer a cleaner, more flexible, and developer-friendly experience.&lt;/p&gt;&lt;p style="color:#333333;"&gt;Using our Presentation API library,&amp;nbsp;you can work directly with intuitive classes — Slide, Shape, TextParagraph, and so on. You can initialize document objects and configure all necessary settings prior to adding new elements to a presentation. This offers a natural and structured approach to flow-based document generation.&lt;/p&gt;&lt;p style="color:#333333;"&gt;Additionally, you can reuse document elements and configuration settings across multiple slides and presentations. For example, you can add the same slide to multiple presentations or apply the same formatting to multiple slides or shapes (as illustrated in the example below).&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;// Create and apply the custom background to multiple slides in two different presentations
SolidFill fill = new SolidFill(Color.LightCyan);
CustomSlideBackground background = new CustomSlideBackground(fill);
presentation1.Slides[0].Background = background;
presentation1.Slides[1].Background = background;
presentation2.Slides[0].Background = background;&lt;/code&gt;&lt;/pre&gt;&lt;p style="color:#333333;"&gt;Our approach allows you to make changes in presentation documents with minimal code. At the same time, if you need unique instances to prevent unintentional changes, you can create independent clones of document elements and settings.&lt;/p&gt;&lt;div class="Note"&gt;We’d appreciate your feedback on the object model we’ve chosen for this new library. Please feel free to share your thoughts via the survey at the end of this page.&lt;/div&gt;&lt;h2 id="Get-Started-with-PowerPoint-Presentation-API" style="font-weight:600;color:#333333;"&gt;Get Started with PowerPoint Presentation API&lt;/h2&gt;&lt;p style="color:#333333;"&gt;To start using the DevExpress Presentation API in your project, you need to:&lt;/p&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;1. Install the&amp;nbsp;&lt;/span&gt;&lt;code style="color:#333333;"&gt;DevExpress.Docs.Presentation&lt;/code&gt;&lt;span style="color:#333333;"&gt;&amp;nbsp;NuGet package (&lt;/span&gt;&lt;strong style="color:#333333;"&gt;v25.1.4+&lt;/strong&gt;&lt;span style="color:#333333;"&gt;) from&amp;nbsp;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;a href="https://www.nuget.org/packages/DevExpress.Docs.Presentation"&gt;Nuget.org&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;code class="language-cmdline"&gt;dotnet add package DevExpress.Docs.Presentation --version 25.1.4&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="color:#333333;"&gt;Alternatively, use the Local/Personal DevExpress NuGet feed:&amp;nbsp;&lt;/span&gt;&lt;span style="color:#333333;"&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/400744/install-nuget-packages"&gt;Use NuGet Packages to Install Office File API Components&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2. Add the&amp;nbsp;&lt;code&gt;DevExpress.Docs.Presentation&lt;/code&gt;&amp;nbsp;namespace to your project file.&lt;/p&gt;&lt;p&gt;3. Create a&amp;nbsp;&lt;code&gt;Presentation&lt;/code&gt;&amp;nbsp;instance.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Use the parameterless constructor to create a new presentation with one blank slide.&lt;/li&gt;&lt;li&gt;Use the constructor with a byte array or stream parameter to load an existing PPTX file.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;4. Use APIs to build or modify the presentation (generate presentation content, apply formatting, update metadata, or reorganize slides).&lt;/p&gt;&lt;p&gt;5. Generate output.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Use&amp;nbsp;&lt;code&gt;Presentation.SaveDocument&lt;/code&gt;&amp;nbsp;to save the&amp;nbsp;presentation to PPTX .&lt;/li&gt;&lt;li&gt;Use&amp;nbsp;&lt;code&gt;Presentations.ExportToPdf&lt;/code&gt;&amp;nbsp;to generate a PDF file.&lt;/li&gt;&lt;li&gt;Use&amp;nbsp;&lt;code&gt;Presentation.Print&lt;/code&gt;&amp;nbsp;to print the&amp;nbsp;presentation.&lt;/li&gt;&lt;/ul&gt;&lt;h4 id="Code-Examples" style="color:#333333;"&gt;Code Example &lt;span style="color:#404040;"&gt;—&lt;/span&gt;&amp;nbsp;Create a New Presentation from Scratch&lt;/h4&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;using DevExpress.Docs.Presentation;
//...
// Create a presentation with a single empty slide
Presentation presentation = new Presentation();
        
// Configure Slide Master
SlideMaster slideMaster = presentation.SlideMasters[0];
slideMaster.Background = new CustomSlideBackground(new SolidFill(Color.FromArgb(194, 228, 249)));
        
// Add a new slide with content
presentation.Slides.Clear();
Slide slide1 = new Slide(slideMaster.Layouts.Get(SlideLayoutType.Title));
foreach (Shape shape in slide1.Shapes) {
    if (shape.PlaceholderSettings.Type is PlaceholderType.CenteredTitle) {
        shape.TextArea = new TextArea(&amp;quot;Daily Testing Status Report&amp;quot;);
    }
    if (shape.PlaceholderSettings.Type is PlaceholderType.Subtitle) {
        shape.TextArea = new TextArea($&amp;quot;{DateTime.Now: dddd, MMMM d, yyyy}&amp;quot;);
    }
}
presentation.Slides.Add(slide1);
    
// Save Presentation to PPTX
FileStream outputStream = new FileStream(@&amp;quot;D:\mypresentation.pptx&amp;quot;, FileMode.Create);
presentation.SaveDocument(outputStream);&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="Convert-Presentation-to-PDF" style="font-weight:600;color:#333333;"&gt;&lt;/h3&gt;&lt;h3 id="Documentation-amp-Examples" style="font-weight:600;color:#333333;"&gt;Learn More&lt;/h3&gt;&lt;p style="color:#333333;"&gt;Documentation:&lt;/p&gt;&lt;ul&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405405/presentation-api/overview"&gt;Presentation API – Overview&lt;/a&gt;&lt;/li&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405404/presentation-api/create-first-presentation"&gt;Get Started: Create Your First Presentation&lt;/a&gt;&lt;/li&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405410/presentation-api/create-load-presentations"&gt;Create, Load, and Save Presentations&lt;/a&gt;&lt;/li&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405409/presentation-api/export-presentation"&gt;Export Presentation to PDF&lt;/a&gt;&lt;/li&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405409/presentation-api/export-presentation"&gt;&lt;/a&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405535/presentation-api/print-presentation"&gt;Print Presentation&lt;/a&gt;&lt;/li&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405417/presentation-api/slides/manage-slides"&gt;Manage Slides&lt;/a&gt;&lt;/li&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405425/presentation-api/slides/shapes"&gt;Work with Shapes&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Demos &amp;amp; Examples:&lt;/p&gt;&lt;ul&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://github.com/DevExpress-Examples/presentation-api-get-started"&gt;GitHub Example: DevExpress Presentation API Library – Get Started&lt;/a&gt;&lt;/li&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://github.com/DevExpress-Examples/presentation-document-api-extract-content"&gt;GitHub Example: Extract Presentation Images, Notes, and Pictures&lt;/a&gt;&lt;/li&gt;&lt;li style="color:#333333;"&gt;&lt;a href="https://demos.devexpress.com/OfficeFileAPI/BlazorServer/DocumentConversion/PresentationToPdf"&gt;Blazor Demo: Presentation to PDF&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="Licensing" style="font-weight:600;color:#333333;"&gt;Licensing&lt;/h2&gt;&lt;p style="color:#333333;"&gt;The PowerPoint Presentation API library is included in the &lt;strong&gt;DevExpress Office File API&lt;/strong&gt; and &lt;strong&gt;DevExpress Universal&lt;/strong&gt; subscriptions. A valid license is&amp;nbsp;required to use this library in production code. For additional information, please visit our &lt;a href="https://www.devexpress.com/buy/winforms-wpf-blazor-asp-net-maui/"&gt;Buy page&lt;/a&gt;.&lt;/p&gt;&lt;h2 id="Your-Feedback-Matters" style="font-weight:600;color:#333333;"&gt;Your Feedback Matters&lt;/h2&gt;&lt;p style="color:#333333;"&gt;Since this is a CTP version, features are still in development. We’d love your input on what to prioritize next. Please take a moment to complete the short survey below.&lt;/p&gt;&lt;p style="color:#333333;"&gt;You’re also welcome to share your thoughts and questions via the DevExpress&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/list"&gt;Support Center&lt;/a&gt;.&lt;/p&gt;&lt;div data-survey-id="c6643982-01e2-406d-86ad-b6685809e464" data-survey-auth-required="false"&gt;&lt;/div&gt;</description>
      <pubDate>Wed, 13 Aug 2025 00:30:00 Z</pubDate>
      <dc:creator>Maria Nikulina (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388239</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2025/04/25/document-processing-office-file-api-early-access-preview-v25-1-redaction-api-export-enhancements-and-more.aspx</link>
      <category domain="https://community.devexpress.com/Tags/2025">2025</category>
      <category domain="https://community.devexpress.com/Tags/AcroForms">AcroForms</category>
      <category domain="https://community.devexpress.com/Tags/Content+Controls">Content Controls</category>
      <category domain="https://community.devexpress.com/Tags/DOC">DOC</category>
      <category domain="https://community.devexpress.com/Tags/Document+Processing">Document Processing</category>
      <category domain="https://community.devexpress.com/Tags/eap">eap</category>
      <category domain="https://community.devexpress.com/Tags/Office">Office</category>
      <category domain="https://community.devexpress.com/Tags/Office+File+API">Office File API</category>
      <category domain="https://community.devexpress.com/Tags/office-inspired+controls">office-inspired controls</category>
      <category domain="https://community.devexpress.com/Tags/PDF">PDF</category>
      <category domain="https://community.devexpress.com/Tags/PDF+Document+API">PDF Document API</category>
      <category domain="https://community.devexpress.com/Tags/PDF+Viewer">PDF Viewer</category>
      <category domain="https://community.devexpress.com/Tags/Right-To-Left">Right-To-Left</category>
      <category domain="https://community.devexpress.com/Tags/RTL">RTL</category>
      <category domain="https://community.devexpress.com/Tags/Word+Document+API">Word Document API</category>
      <category domain="https://community.devexpress.com/Tags/Word+Processing">Word Processing</category>
      <title>Document Processing (Office File API) — Early Access Preview (v25.1) — Redaction API, Export Enhancements and More</title>
      <description>&lt;p&gt;This post outlines what’s inside our current Early Access Preview build (v25.1), which is available for download for our &lt;a href="https://www.devexpress.com/subscriptions/universal.xml" target="_blank"&gt;Universal&lt;/a&gt; and &lt;a href="https://www.devexpress.com/subscriptions/dxperience.xml" target="_blank"&gt;DXperience&lt;/a&gt; subscribers.&lt;/p&gt;

&lt;div class="Note"&gt;&lt;p&gt;Early Access and CTP builds are provided solely for early testing purposes and are not ready for production use. This build can be installed side by side with other major versions of DevExpress products. Please back up your project and other important data before installing Early Access and CTP builds. This EAP may not include all features/products we expect to ship in our v25.1 release cycle. As its name implies, the EAP offers an early preview of what we expect to ship in two months. &lt;/p&gt;&lt;/div&gt;

&lt;p&gt;For additional information on new Document Processing/Office File API capabilities we expect to ship in June, please refer to our &lt;a href="https://community.devexpress.com/blogs/office/archive/2025/02/21/document-processing-libraries-office-file-api-june-2025-roadmap-v25-1.aspx" target="_blank"&gt;v25.1 roadmap.&lt;/a&gt;&lt;/p&gt;

&lt;h2 id="Pdf-Redaction-Api" style="font-weight:600;color:#333333;"&gt;PDF Redaction API &lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278675/feature-discussion-redaction-api" target="_blank"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;v25.1 will include new APIs to create and manage redaction annotations in PDF documents. This new capability makes it possible to completely remove sensitive or private content from your documents and add a colored overlay with text over the redacted area. &lt;/p&gt;
&lt;p&gt;The redaction process includes two steps: create a redaction annotation with the required appearance in the PDF page area, and apply the redaction annotations by clearing the content in the redacted area and applying the overlay from the appearance settings. These steps are independent so you can implement the following usage scenarios:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b&gt;Review workflow&lt;/b&gt;: Create redaction annotations, save the document, and send it for review. The recipient can approve or comment on the redactions before applying them.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;On-demand redaction&lt;/b&gt;: Load a document with redaction annotations, inspect redacted areas and comments, and apply redactions if necessary. &lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Direct redaction&lt;/b&gt;: Create and apply all redaction annotations in your PDF document at once.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below I&amp;#39;ll describe how you can implement these usage scenarios in code.&lt;/p&gt;

&lt;h3&gt;Create a Redaction Annotation&lt;/h3&gt;
&lt;p&gt;The Redaction functionality is available via the &lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.Pdf.PdfDocumentFacade" target="_blank"&gt;PDF Facade API&lt;/a&gt;. To create a redaction annotation, obtain the &lt;code&gt;PdfDocumentFacade&lt;/code&gt; instance, retrieve the required PDF page from the &lt;code&gt;PdfDocumentFacade.Pages&lt;/code&gt; collection and call the &lt;code&gt;PdfPageFacade.AddRedactAnnotation&lt;/code&gt; method. The &lt;code&gt;AddRedactAnnotation&lt;/code&gt; method returns the &lt;code&gt;PdfRedactAnnotationFacade&lt;/code&gt; object, which you can use to adjust the appearance settings for the redaction annotation. The appearance includes the overlay text, text font settings (font name, color, size, and style) and additional settings like text repeating, alignment and background color.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;PdfDocumentProcessor pdfProcessor = new PdfDocumentProcessor();
pdfProcessor.LoadDocument(&amp;quot;Demo.pdf&amp;quot;);

PdfDocumentFacade documentFacade = pdfProcessor.DocumentFacade;
PdfRectangle pageCropBox = pdfProcessor.Document.Pages[0].CropBox;
PdfRectangle redactBounds =
	new PdfRectangle(0, pageCropBox.Height-50, 200, pageCropBox.Height);

// Add a redaction annotation at the top left corner of the first document page
PdfRedactAnnotationFacade redactAnnotation =
	documentFacade.Pages[0].AddRedactAnnotation(redactBounds);
redactAnnotation.Author = &amp;quot;Jane Doe&amp;quot;;
// Setup the redaction annotation appearance
redactAnnotation.FillColor = new PdfRGBColor(0, 0, 0);
redactAnnotation.FontColor = new PdfRGBColor(1, 1, 1);
redactAnnotation.FontName = &amp;quot;Calibri&amp;quot;;
redactAnnotation.FontSize = 0; // enables font auto-size
redactAnnotation.OverlayText = &amp;quot;Classified&amp;quot;;
redactAnnotation.TextJustification = PdfTextJustification.Centered;
redactAnnotation.RepeatText = false;

// Save the document with the redaction annotation and send it for review
pdfProcessor.SaveDocument(&amp;quot;output_to_review.pdf&amp;quot;);&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Apply Redaction Annotations&lt;/h3&gt;
&lt;p&gt;The new API allows you to apply a single redaction annotation, all annotations for a specific page, or all redaction annotations in the entire document. To complete, use the &lt;code&gt;PdfRedactAnnotationFacade.Apply&lt;/code&gt;, &lt;code&gt;PdfPageFacade.ApplyRedactAnnotations&lt;/code&gt; or &lt;code&gt;PdfDocumentFacade.ApplyRedactAnnotations&lt;/code&gt; method respectively. &lt;/p&gt;
    &lt;p&gt;Additionally, it is possible to use &lt;code&gt;PdfClearContentOptions&lt;/code&gt; to specify the type of the content that should be removed (text, graphics, images, or annotations) when you apply the redaction.&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-csharp"&gt;PdfDocumentProcessor pdfProcessor = new PdfDocumentProcessor();
pdfProcessor.LoadDocument(&amp;quot;Demo.pdf&amp;quot;);

PdfDocumentFacade documentFacade = pdfProcessor.DocumentFacade;
// Review redaction annotations and apply
foreach (var page in documentFacade.Pages)
{
    var redactionAnnotations =
    	page.Annotations.Where(annotation =&amp;gt; annotation is PdfRedactAnnotationFacade).ToList();
    foreach(PdfRedactAnnotationFacade annotation in redactionAnnotations)
    {
        if (annotation.Author == &amp;quot;Jane Doe&amp;quot;)
            annotation.Apply();
    }
}
// Apply redaction annotations for a page
documentFacade.Pages[0].ApplyRedactAnnotations();
// Apply redaction annotations for the whole document
documentFacade.ApplyRedactAnnotations();
// Specify the clear content settings and apply redaction annotations
documentFacade.ApplyRedactAnnotations(new PdfClearContentOptions()
{
     ClearAnnotations = true,
     ClearImages = true,
     ClearText = true,
     ClearGraphics = false
});&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Usage in WinForms and WPF PDF Viewer Controls&lt;/h3&gt;
&lt;p&gt;Of course, it is also possible to enhance your WinForms or WPF PDF Viewer application with the new redaction functionality. Once you obtain the &lt;code&gt;PdfDocumentFacade&lt;/code&gt; instance using the &lt;code&gt;PdfViewer.GetDocumentFacade&lt;/code&gt; extension method, you will be able to create and apply redaction annotation using the APIs I described above.&lt;/p&gt;

&lt;div class="Note"&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; The &lt;code&gt;PdfDocumentFacade&lt;/code&gt; class is defined in the DevExpress.Docs.v25.1.dll assembly. Add this assembly to your project or install the &lt;a href="https://nuget.devexpress.com/packages/DevExpress.Document.Processor" target="_blank"&gt;DevExpress.Document.Processor&lt;/a&gt; Nuget Package from the Offline Package source to use PdfDocumentFacade members. You need a license for the DevExpress Office File API Subscription or DevExpress Universal Subscription to use this class in production code.&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;We prepared the code example that illustrates how to select an area in a PDF document opened in a PDF Viewer application and apply the redaction annotation to this area. Here is the link for your reference: &lt;a href="https://github.com/DevExpress-Examples/winforms-pdf-viewer-redaction-annotations" target="_blank"&gt;PDF Viewer for WinForms - Add Redaction Annotations Using Viewer Coordinates&lt;/a&gt;&lt;/p&gt;
&lt;div class="video"&gt;&lt;/div&gt;
 &lt;video width="780" height="400" controls="" style="width:950px;"&gt;
    &lt;source src="https://community.devexpress.com/blogs/office/v25.1/pdf-redaction.mp4" type="video/mp4"&gt;&lt;/video&gt;

&lt;h2 id="Pdf-Viewer-Ai-Extentions" style="font-weight:600;color:#333333;"&gt;AI-powered Behaviors in WinForms PDF Viewer &lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278684/feature-discussion-ai-powered-behaviors" target="_blank"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;You can now integrate AI-powered &lt;b&gt;Summarize&lt;/b&gt;, &lt;b&gt;Translate&lt;/b&gt; and &lt;b&gt;Ask AI&lt;/b&gt; features into our WinForms PDF Viewer. These functionalities allow you to summarize, translate to chosen languages and ask custom questions about the PDF content from the whole PDF document, active page or document selection. The target mode can be selected from the AI dialogs available via the PDF Viewer context menu.&lt;/p&gt;

&lt;img src="https://community.devexpress.com/blogs/office/v25.1/pdf-viewer-ai-demo.png" alt="pdf viewer for winforms - ai integration demo" style="width:949px;height:544px;"&gt;

&lt;p&gt;&lt;a href="dxdemo://Win/AI/MainDemo/PdfViewerAIModule"&gt;AI MainDemo — Pdf Viewer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI-powered behaviors for WinForms PDF Viewer use the same prerequisites and integration mechanisms as other AI extensions in our WinForms product line. You can learn more about the AI usage and integration in our documentation: &lt;a href="https://docs.devexpress.com/WindowsForms/405151/ai-powered-extensions" target="_blank"&gt;DevExpress AI-powered Extensions for WinForms&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;Word Processing Document API and Rich Text Editors for WinForms and WPF&lt;/h2&gt;
&lt;h3&gt;DOC Format Export Enhancements&lt;/h3&gt;
&lt;p&gt;During the last release cycle, we received feedback related to the DOC format export in our word processing components. After a particular update, Microsoft Word started to interpret DOC files generated from other documents with complex structures as invalid. Considering the popularity and importance of the DOC file format in word-processing usage scenarios, we made it our primary goal to address this limitation in the upcoming release.&lt;/p&gt;
&lt;p&gt;Good news—in v25.1, we redesigned our DOC format export engine and successfully addressed these limitations. Now, all of the documents and usage scenarios with DOC format conversion you shared with us are working as expected and provide valid DOC output.&lt;/p&gt;
&lt;p&gt;We would appreciate your feedback on this matter. If you have experienced issues with DOC format conversion and subsequently opening documents in Microsoft Word, please take a moment to evaluate our update (these changes are also available for v24.2) and leave your feedback here: &lt;a href="https://supportcenter.devexpress.com/ticket/details/t1224764/richeditdocumentsever-a-document-saved-in-the-doc-format-is-corrupted" target="_blank"&gt;Ticket Discussion&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Right-to-Left (RTL) Engine Enhancements&lt;/h3&gt;
&lt;p&gt;We enhanced our Right-to-Left text rendering engine in the Word Processing Document API library and WinForms and WPF Rich Text components. This functionality enables correct text order in paragraphs, numbering lists, tables and shapes with bi-directional text (mixed Right-to-Left and Left-to-Right text blocks). The enhanced behavior applies when you preview or edit bi-directional text in visual Rich Text controls, or when you generate a PDF or image output (in the User Interface or code). &lt;/p&gt;


&lt;h3 id="Right-to-Left-Enhancements" style="font-weight:600;color:#333333;"&gt;Convert Word Content Controls to PDF AcroForms Fields &lt;span style="text-decoration:underline;font-size:12px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278690/feature-discussion-export-word-content-controls-to-pdf-acroform-fields" target="_blank"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;We enhanced the &lt;b&gt;Word Document to PDF&lt;/b&gt; export engine and supported the built-in conversion of Word content controls to PDF AcroForm fields. With this functionality, you can now create fillable PDF forms from your Word documents with ease.&lt;/p&gt;
&lt;p&gt;Our Word-processing tools automatically convert the following content control types:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Plain Text;&lt;/li&gt;
    &lt;li&gt;Rich Text;&lt;/li&gt;
    &lt;li&gt;Picture;&lt;/li&gt;
    &lt;li&gt;Check Box;&lt;/li&gt;
    &lt;li&gt;Combo Box;&lt;/li&gt;
    &lt;li&gt;Drop-Down List;&lt;/li&gt;
&lt;li&gt;Date Picker.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="Note"&gt;&lt;p&gt; &lt;b&gt;Note:&lt;/b&gt; Building Block and Repeating Section content controls are exported as regular text. &lt;br&gt; Due to PDF format specifics, PDF text fields generated from Rich Text content controls use formatting from the first word of the original Rich Text content control. Rich Text content controls that split between pages or contain complex objects (like tables) are exported as regular text.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;To enable this feature, load your Word file with content controls or generate content controls in your document using the Word Processing Document API library or WinForms/WPF Rich Text Editor. Then, create a &lt;code&gt;PdfExportOptions&lt;/code&gt; instance, enable the &lt;code&gt;PdfExportOptions.ExportEditingFieldsToAcroForms&lt;/code&gt; property and call the &lt;code&gt;ExportToPdf&lt;/code&gt; method with this &lt;code&gt;PdfExportOptions&lt;/code&gt; object as a parameter. For visual controls, you can also enable this functionality from the User Interface using the Print Preview -&amp;gt; PDF Export Options dialog.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;using DevExpress.XtraPrinting;
using DevExpress.XtraRichEdit;

using(RichEditDocumentServer wordProcessor = new RichEditDocumentServer())
{
    wordProcessor.LoadDocument(&amp;quot;input_content_controls.docx&amp;quot;);
    PdfExportOptions options = new PdfExportOptions();
    options.ExportEditingFieldsToAcroForms = true;
    wordProcessor.ExportToPdf(&amp;quot;output_with_acroform.pdf&amp;quot;, options);
}&lt;/code&gt;&lt;/pre&gt;
&lt;img src="https://community.devexpress.com/blogs/office/v25.1/pdf-export-ecroforms@2x.png" alt="word document api export content controls to pdf form fields" class="small" style="width:585px;height:400px;"&gt;

&lt;h2&gt;Your Feedback Matters&lt;/h2&gt;
&lt;p&gt;As always, we value your feedback. Please take a moment to respond to the feature discussion tickets linked above and let us know how we can best serve your needs. Should you encounter an issue while using this Early Access Preview build (v25.1), please submit a support ticket via the DevExpress Support Center.  &lt;/p&gt;</description>
      <pubDate>Fri, 25 Apr 2025 01:40:00 Z</pubDate>
      <dc:creator>Polina Fedorova (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388217</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2025/02/20/document-processing-libraries-office-file-api-june-2025-roadmap-v25-1.aspx</link>
      <category domain="https://community.devexpress.com/Tags/Document+Processing">Document Processing</category>
      <category domain="https://community.devexpress.com/Tags/Office">Office</category>
      <category domain="https://community.devexpress.com/Tags/Office+File+API">Office File API</category>
      <category domain="https://community.devexpress.com/Tags/PDF+Document+API">PDF Document API</category>
      <category domain="https://community.devexpress.com/Tags/presentation">presentation</category>
      <category domain="https://community.devexpress.com/Tags/Rich+Text+Editor">Rich Text Editor</category>
      <category domain="https://community.devexpress.com/Tags/Roadmap">Roadmap</category>
      <category domain="https://community.devexpress.com/Tags/spreadsheet+document+api">spreadsheet document api</category>
      <category domain="https://community.devexpress.com/Tags/v25.1">v25.1</category>
      <category domain="https://community.devexpress.com/Tags/Word+Processing">Word Processing</category>
      <title>Document Processing Libraries (Office File API) — June 2025 Roadmap (v25.1)</title>
      <description>&lt;p style="color:#333333;"&gt;We thank you for your continued support and for sharing your document processing needs and requirements with us. In this blog post, I&amp;#39;ll&amp;nbsp;share our development/release plans for the first half of 2025.&amp;nbsp; &lt;/p&gt;&lt;p style="color:#333333;"&gt;If you’d like to discuss this roadmap in greater detail or share a business use case that our&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/office-file-api/" target="_blank" rel="noopener" style="color:#337ab7;"&gt;Office File API&lt;/a&gt;&amp;nbsp;product does not currently address, feel free to submit your feedback via the DevExpress&amp;nbsp;Support Center. We’ll be happy to follow up.&lt;/p&gt;&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.&lt;/div&gt;&lt;h2 id="New-Presentation-Library" style="font-weight:600;color:#333333;"&gt;New PowerPoint API Presentation Library &lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278671/feature-discussion-new-powerpoint-api-presentation-library"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in &lt;strong&gt;v25.1.4+&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="color:#333333;"&gt;We expect to extend the capabilities of the DevExpress&amp;nbsp;Office File API library with a new&amp;nbsp;&lt;strong&gt;Presentation library for .NET&lt;/strong&gt;.&lt;/p&gt;&lt;p style="color:#333333;"&gt;This non-visual library will allow developers to generate, modify, print, and export PowerPoint presentations to different formats in code. We expect to support the following PowerPoint-related usage scenarios programmatically:&lt;/p&gt;&lt;ul style="color:#333333;"&gt;&lt;li&gt;Create new presentations from scratch.&lt;/li&gt;&lt;li&gt;Save presentations using the PPTX (OpenXml) document format.&lt;/li&gt;&lt;li&gt;Merge multiple presentations into a single file.&lt;/li&gt;&lt;li&gt;Add, remove, and extract presentation slides; modify slide settings.&lt;/li&gt;&lt;li&gt;Add, remove, and customize slide elements (shapes, texts, tables and more).&lt;/li&gt;&lt;li&gt;Apply formatting to slide elements.&lt;/li&gt;&lt;li&gt;Print and export presentations to PDF.&lt;/li&gt;&lt;/ul&gt;&lt;p style="color:#333333;"&gt;&lt;strong&gt;Note&lt;/strong&gt;: The CTP (Community Technology Preview) version of our PowerPoint Presentation Library is expected mid-year.&amp;nbsp;As in any CTP, functional limitations will apply.&amp;nbsp;&lt;/p&gt;&lt;h2 id="PDF-Document-API" style="font-weight:600;color:#333333;"&gt;PDF Document API&lt;/h2&gt;&lt;h3 id="PDF-Document-Compression" style="font-weight:600;color:#333333;"&gt;PDF Document Compression &lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278674/feature-discussion-pdf-document-compression"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in v25.1&lt;/span&gt;
&lt;/p&gt;
&lt;p style="color:#333333;"&gt;To reduce file size when saving PDF documents using&amp;nbsp;DevExpress&amp;nbsp;PDF Document APIs, we will introduce a compression engine for the PDF object streams. This engine will optimize PDFs for more efficient storage/sharing options. New compression mechanisms will apply to various document structures, including PDF forms, fonts, and graphics.&lt;/p&gt;&lt;h3 id="Redaction-API" style="font-weight:600;color:#333333;"&gt;Redaction API &lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278675/feature-discussion-redaction-api"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in v25.1&lt;/span&gt;
&lt;/p&gt;
&lt;p style="color:#333333;"&gt;We’ll introduce a new Redaction API that allows users to secure PDF documents and permanently remove sensitive information. This feature will allow you to:&lt;/p&gt;&lt;ul style="color:#333333;"&gt;&lt;li&gt;Erase personal or confidential data from a PDF document and prevent end-users from accessing, viewing or copying it.&lt;/li&gt;&lt;li&gt;Apply overlays with custom text or graphics over redacted areas.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id="WinForms-and-WPF-PDF-Viewers" style="font-weight:600;color:#333333;"&gt;WinForms and WPF PDF Viewers&lt;/h2&gt;&lt;h3 id="AI-powered-Behaviors" style="font-weight:600;color:#333333;"&gt;AI-powered Behaviors&amp;nbsp;&lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278684/feature-discussion-ai-powered-behaviors"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;WinForms&lt;/span&gt;
    &lt;span class="platform"&gt;WPF&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in v25.1&lt;/span&gt;
&lt;/p&gt;
&lt;p style="color:#333333;"&gt;We will integrate AI-powered features into our WinForms and WPF PDF Viewer components. These enhancements will allow users to quickly understand the underlying essence of individual documents via Generative AI summaries and translate documents to a preferred language using AI-powered translations.&lt;br&gt;Additionally, users will be able to interact with an AI-powered assistant directly within their applications and ask questions about PDF documents.&lt;/p&gt;&lt;p style="color:#333333;"&gt;&lt;strong&gt;Note:&lt;/strong&gt;&amp;nbsp;&lt;span&gt;Our implementation is based on the functionality provided by the Microsoft.Extensions.AI library. To access these features, you will need to register the &lt;code&gt;IChatClient&lt;/code&gt; implementation in your app (based on the desired AI services provider:&amp;nbsp;OpenAI, Azure Open AI, Google Gemini or local open-source models powered by Ollama).&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 id="Spreadsheet-Document-API-and-Spreadsheet-Controls-for-Winforms-amp-WPF" style="font-weight:600;color:#333333;"&gt;Spreadsheet Document API and Spreadsheet Controls for Winforms &amp;amp; WPF&lt;/h2&gt;&lt;h3 id="OLE-Objects" style="font-weight:600;color:#333333;"&gt;OLE Objects&amp;nbsp;&lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278685/feature-discussion-ole-objects"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;span class="platform"&gt;WinForms&lt;/span&gt;
    &lt;span class="platform"&gt;WPF&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in v25.1&lt;/span&gt;
&lt;/p&gt;
&lt;p style="color:#333333;"&gt;Spreadsheet&amp;nbsp;components will support embedded and linked objects (OLE objects) within Excel documents. You will be able to import and save documents with OLE Objects to supported Excel formats without content loss. OLE Object icons will be properly displayed when you preview the document, print, or export it to PDF.&lt;br&gt;Additionally, we’ll introduce APIs to create, remove, and manage OLE objects in code.&lt;/p&gt;&lt;h3 id="New-Excel-Functions-Support" style="font-weight:600;color:#333333;"&gt;New Excel Functions Support&amp;nbsp;&lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278686/feature-discussion-new-excel-functions-support"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;span class="platform"&gt;WinForms&lt;/span&gt;
    &lt;span class="platform"&gt;WPF&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="not-started"&gt;Postponed to v25.2&lt;/span&gt;
&lt;/p&gt;&lt;p style="color:#333333;"&gt;We will enhance our Spreadsheet calculation engine by adding support for modern, dynamic array-based Excel functions. In v25.1, we will introduce functions like:&lt;/p&gt;&lt;ul style="color:#333333;"&gt;&lt;li&gt;XLOOKUP&lt;/li&gt;&lt;li&gt;XMATCH&lt;/li&gt;&lt;li&gt;UNIQUE&lt;/li&gt;&lt;li&gt;And more&lt;/li&gt;&lt;/ul&gt;&lt;p style="color:#333333;"&gt;These functions will improve data lookup, filtering, and transformation capabilities across our Spreadsheet components.&lt;/p&gt;&lt;h2 id="Word-Processing-Document-API-and-Rich-Text-Editors-for-Winforms-amp-WPF" style="font-weight:600;color:#333333;"&gt;Word Processing Document API&amp;nbsp;and Rich Text Editors for Winforms &amp;amp; WPF&lt;/h2&gt;&lt;h3 id="Asian-Text-Wrapping" style="font-weight:600;color:#333333;"&gt;CJK (Chinese, Japanese and Korean) Text Wrapping&amp;nbsp;&lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278688/feature-discussion-cjk-chinese-japanese-and-korean-text-wrapping"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;span class="platform"&gt;WinForms&lt;/span&gt;
    &lt;span class="platform"&gt;WPF&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in v25.1&lt;/span&gt;
&lt;/p&gt;&lt;p style="color:#333333;"&gt;To enhance document rendering and readability, our Word Processing library and Rich Text Editors will support CJK text wrapping and line breaking rules. This feature applies correct line breaks between characters for Chinese, Japanese, and Korean (CJK) text. Documents using these wrapping rules will be displayed, printed, and exported to PDF with appropriate formatting.&amp;nbsp;&lt;/p&gt;&lt;h3 id="RTL-Right-to-Left-Engine-Enhancements" style="font-weight:600;color:#333333;"&gt;RTL (Right-to-Left) Engine Enhancements&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;span class="platform"&gt;WinForms&lt;/span&gt;
    &lt;span class="platform"&gt;WPF&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in v25.1&lt;/span&gt;
&lt;/p&gt;
&lt;p style="color:#333333;"&gt;In our mid-year release v25.1, we will extend our RTL rendering engine for Rich Text components. This functionality will ensure correct rendering and PDF export for document paragraphs, tables and shapes containing bi-directional text&amp;nbsp;(mixed Right-to-Left and Left-to-Right text blocks).&lt;/p&gt;&lt;h3 id="Export-Word-Content-Controls-to-PDF-AcroForm-Fields" style="font-weight:600;color:#333333;"&gt;Export Word Content Controls to PDF AcroForm Fields&amp;nbsp;&lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278690/feature-discussion-export-word-content-controls-to-pdf-acroform-fields"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;span class="platform"&gt;WinForms&lt;/span&gt;
    &lt;span class="platform"&gt;WPF&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in v25.1&lt;/span&gt;
&lt;/p&gt;
&lt;p style="color:#333333;"&gt;We will enhance our Word-to-PDF export engine and support the conversion of Word content controls into PDF AcroForm fields. With this capability, you&amp;#39;ll be able to import or generate Word documents with content controls in our Rich Text document editing tools, export these documents to PDF, and automatically generate corresponding AcroForm fields in PDF output.&amp;nbsp;This feature will apply to the following content control types:&lt;/p&gt;&lt;ul style="color:#333333;"&gt;&lt;li&gt;Plain Text Boxes&lt;/li&gt;&lt;li&gt;Check Boxes&lt;/li&gt;&lt;li&gt;Popups&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="Compare-Word-Documents" style="font-weight:600;color:#333333;"&gt;Compare Word Documents&amp;nbsp;&lt;span style="text-decoration:underline;font-size:14px;"&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1278692/feature-discussion-compare-word-documents"&gt;(Discuss This Feature)&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;Office File API&lt;/span&gt;
    &lt;br&gt;
    &lt;span class="completed"&gt;Coming in v25.1&lt;/span&gt;
&lt;/p&gt;
&lt;p style="color:#333333;"&gt;We will introduce new APIs to compare Word documents. This capability will allow you to:&lt;/p&gt;&lt;ul style="color:#333333;"&gt;&lt;li&gt;Identify changes between two document versions.&lt;/li&gt;&lt;li&gt;Generate revision-based output highlighting.&lt;/li&gt;&lt;/ul&gt;&lt;p style="color:#333333;"&gt;&lt;strong&gt;Note&lt;/strong&gt;: These new APIs will focus on detecting changes and making revisions for the visible document content only.  &amp;nbsp;&lt;/p&gt;&lt;h2 id="Your-Feedback-Counts" style="font-weight:600;color:#333333;"&gt;Your Feedback Counts&lt;/h2&gt;&lt;p style="color:#333333;"&gt;We appreciate your continued support. As I mentioned at the beginning of this post, if you have Office/PDF File API-related suggestions or requests, please submit a support ticket via the DevExpress Support Center — we&amp;#39;ll be happy to review your feedback and follow up.&amp;nbsp;&lt;/p&gt;&lt;h2 id="v242---What’s-New" style="font-weight:600;color:#333333;"&gt;v24.2 - What’s New&lt;/h2&gt;&lt;p style="color:#333333;"&gt;If you have yet to review the features/capabilities introduced in our most recent major update, please visit the following webpage and let us know what you think of this release by responding to our online survey:&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/?utm_source=roadmap#officefileapi" target="_blank" rel="noopener" style="color:#337ab7;"&gt;Explore Our Newest Features (v24.2)&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 20 Feb 2025 21:00:00 Z</pubDate>
      <dc:creator>Maria Nikulina (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388205</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2024/10/14/spreadsheet-control-for-winforms-and-wpf-sort-and-filter-by-color-via-the-user-interface.aspx</link>
      <category domain="https://community.devexpress.com/Tags/Filter">Filter</category>
      <category domain="https://community.devexpress.com/Tags/Filter+by+Color">Filter by Color</category>
      <category domain="https://community.devexpress.com/Tags/Office+File+API">Office File API</category>
      <category domain="https://community.devexpress.com/Tags/Sort">Sort</category>
      <category domain="https://community.devexpress.com/Tags/Sort+by+Color">Sort by Color</category>
      <category domain="https://community.devexpress.com/Tags/Spreadsheet">Spreadsheet</category>
      <category domain="https://community.devexpress.com/Tags/UI">UI</category>
      <category domain="https://community.devexpress.com/Tags/User+Interface">User Interface</category>
      <category domain="https://community.devexpress.com/Tags/v24.1">v24.1</category>
      <category domain="https://community.devexpress.com/Tags/WinForms">WinForms</category>
      <category domain="https://community.devexpress.com/Tags/WPF">WPF</category>
      <title>Spreadsheet Control for WinForms and WPF – Sort and Filter by Color via the User Interface</title>
      <description>&lt;p&gt;In a recent minor update (v24.1.4), we introduced new UI elements for both our WinForms and WPF Spreadsheet component libraries. These enhancements allow users to sort and filter spreadsheet data by color.&lt;/p&gt;
&lt;p&gt;The following video showcases this new capability:&lt;/p&gt;
&lt;p&gt;&lt;iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/pl-hva4U1qE?si=gzrG5RNsqEuTjO-v" style="width:560px;" allowfullscreen="" referrerpolicy="strict-origin-when-cross-origin"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Should you encounter an&amp;nbsp;issue while using these new user interface elements, please submit a support ticket via the DevExpress Support Center. We&amp;#39;ll be happy to follow up.&lt;/p&gt;
&lt;div data-survey-id="aef7ee51-2376-4617-b154-12db2dc42527"&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 14 Oct 2024 00:20:00 Z</pubDate>
      <dc:creator>Polina Fedorova (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388174</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2024/08/28/pdf-layers-optional-content-groups-v24-1.aspx</link>
      <category domain="https://community.devexpress.com/Tags/2024">2024</category>
      <category domain="https://community.devexpress.com/Tags/Facade+API">Facade API</category>
      <category domain="https://community.devexpress.com/Tags/Office">Office</category>
      <category domain="https://community.devexpress.com/Tags/Office+File+API">Office File API</category>
      <category domain="https://community.devexpress.com/Tags/PDF">PDF</category>
      <category domain="https://community.devexpress.com/Tags/PDF+Document+API">PDF Document API</category>
      <category domain="https://community.devexpress.com/Tags/v24.1">v24.1</category>
      <category domain="https://community.devexpress.com/Tags/WinForms">WinForms</category>
      <category domain="https://community.devexpress.com/Tags/WPF">WPF</category>
      <title>PDF Document API — Using Layers (Optional Content Groups) to Control Visibility of PDF Graphics Objects (v24.1)</title>
      <description>&lt;p&gt;Complex PDF documents such as CAD drawings, technical construction plans, layered artwork, maps, or multi-language documents are  full of&amp;nbsp;visual information. PDF layers are often used to&amp;nbsp;simplify these documents and improve overall readability (layers&amp;nbsp;allow you to selectively view/hide  sections). &lt;/p&gt;


&lt;p&gt;In this blog post, I&amp;#39;ll introduce a couple of straightforward layer-related usage scenarios and show you how to use the&amp;nbsp;DevExpress PDF Viewer and &lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.Pdf.PdfDocumentProcessor" target="_blank"&gt;PdfDocumentProcessor&lt;/a&gt; (PDF Document APIs) to control layer visibility&amp;nbsp;in your DevExpress-powered app (&lt;span&gt;layer visibility support was introduced in v24.1).&lt;/span&gt;&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;Control Layer Visibility&lt;/h2&gt;

&lt;p&gt;You can set&amp;nbsp;PDF layer visibility&amp;nbsp;by using the &lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.Pdf.PdfOptionalContentGroupVisibility.Visible" target="_blank"&gt;PdfOptionalContentGroupVisibility.Visible&lt;/a&gt; property for the appropriate layer or within the Layers panel of the DevExpress PDF Viewer. To display a layer, click  its associated check box (visible layers are signified&amp;nbsp;with an &amp;quot;eye&amp;quot;&amp;nbsp;icon).&lt;/p&gt; 

&lt;img src="https://community.devexpress.com:443/blogs/office/v24.1/Layers/layersPanel@2x.png" alt="" class="small" style="width:243px;"&gt;

&lt;p&gt;You can also manage layer visibility through the&amp;nbsp;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.Pdf.PdfDocumentFacade.OptionalContentVisibility" target="_blank"&gt;Document Facade API&lt;/a&gt;. When a layer is added to a document, a user must specify the default configuration (layer settings based on state). For example, your configuration can specify that a given layer is hidden when viewed, but visible when printed. When you load a document, you can obtain the default layer configuration (&lt;code&gt;PdfOptionalContentProperties.DefaultConfiguration&lt;/code&gt; property value) and specify the category used to&amp;nbsp;enable layer settings:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;View - settings applied to the layer in a view state (when you display a document in a viewer).&lt;/li&gt;
    &lt;li&gt;Print - settings applied to the layer in print preview mode or when you print the document.&lt;/li&gt;
    &lt;li&gt;Export - settings applied to the layer when you export a document.&lt;/li&gt;
    &lt;li&gt;Zoom - settings applied to the layer based on&amp;nbsp;zoom level.&lt;/li&gt;
    &lt;li&gt;Language - language culture settings applied to the layer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; For example, if you set &lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.Pdf.PdfOptionalContentVisibility.ActiveUsages" target="_blank"&gt;ActiveUsages&lt;/a&gt; to &lt;code&gt;PdfOptionalContentUsageCategories.Print&lt;/code&gt;, only print settings from the default configuration are applied to layers when you print the document. Other default settings are automatically disabled. You can set &lt;code&gt;ActiveUsages&lt;/code&gt; to &lt;code&gt;none&lt;/code&gt; to disable all default settings and only apply current settings.&lt;/p&gt;

&lt;div class="Note"&gt;&lt;p&gt;IMPORTANT NOTE: A PDF document only stores  default  content configuration. This means that layer visibility is not preserved when you save the document. Visibility settings are applicable  when you preview the document in a PDF Viewer component,  print the document, or export it to an image.&lt;/p&gt;&lt;/div&gt;

&lt;h3&gt;Use Case 1: Analyze Report Data from Different Perspectives&lt;/h3&gt;

&lt;p&gt;In this example, a PDF report with sales metrics includes multiple&amp;nbsp;layers with comments for different people. You can control layer visibility within&amp;nbsp;the PDF viewer when viewing the document. This allows you to display appropriate&amp;nbsp;comments without increasing the number of report pages.&lt;/p&gt;

&lt;p&gt;
&lt;img src="https://community.devexpress.com:443/blogs/office/v24.1/Layers/salesLayers-part-2@2x.png" alt="Application template" data-before-src="https://community.devexpress.com:443/blogs/office/v24.1/Layers/salesLayers-part1@2x.png" data-label-before="Layer with marketing info" data-label-after="Layer with retail info" data-comparer-theme="dark"&gt;&lt;/p&gt;

&lt;h3&gt;Use Case 2: Display Details when Zooming&lt;/h3&gt;

&lt;p&gt;In this instance, a PDF file with a map uses  a different layer at&amp;nbsp;200% zoom (displays additional data).&lt;/p&gt;

 &lt;video width="950" height="500" controls="" style="width:950px;"&gt;
    &lt;source src="https://community.devexpress.com/blogs/office/v24.1/Layers/mapLayers@2x.mp4" type="video/mp4"&gt;&lt;/video&gt;

&lt;h3&gt;Use Case 3: Label Documents when Printing&lt;/h3&gt;

&lt;p&gt;&lt;/p&gt;&lt;p&gt;In this instance, the DevExpress logo is added to the printed document. The logo is placed on a separate layer and includes the following configuration settings: &lt;/p&gt;&lt;p&gt;it is hidden when you view the document but rendered when you print/export this document. &lt;/p&gt;&lt;p&gt;For this scenario, we enabled print usage for the configured layer:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-csharp"&gt;
using DevExpress.Pdf;
using System;
using System.Linq;
using DevExpress.Drawing;

static void Main(string[] args) {
    using (PdfDocumentProcessor processor = new PdfDocumentProcessor()) {
        processor.LoadDocument(&amp;quot;PdfLayers.pdf&amp;quot;);
        // Specify which settings from the default configuration will be applied for each layer contained in a document.
        processor.DocumentFacade.OptionalContentVisibility.ActiveUsages = PdfOptionalContentUsageCategories.Print;
        // Print the document.
        DXBitmap bitmap = processor.CreateDXBitmap(1, 1000);
        PdfPrinterSettings pdfPrinterSettings = new PdfPrinterSettings();
        processor.Print(pdfPrinterSettings);
    }
}
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;&lt;/p&gt;Output is as follows:&lt;p&gt;&lt;/p&gt;&lt;p&gt;

&lt;img src="https://community.devexpress.com:443/blogs/office/v24.1/Layers/InvoiceLayers@2x.png" alt=""&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;As I mentioned earlier, layer support was introduced in our v24.1 release cycle. Should you have any questions about this post or our PDF APIs/PDF Viewer components, please submit a support ticket via the DevExpress Support Center at your convenience.&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Wed, 28 Aug 2024 02:05:00 Z</pubDate>
      <dc:creator>Margarita (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388182</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2024/08/20/extending-excel-calculations-with-ai-implementing-user-defined-formulas-using-devexpress-winforms-spreadsheetcontrol.aspx</link>
      <category domain="https://community.devexpress.com/Tags/AI">AI</category>
      <category domain="https://community.devexpress.com/Tags/Formulas">Formulas</category>
      <category domain="https://community.devexpress.com/Tags/OpenAI">OpenAI</category>
      <category domain="https://community.devexpress.com/Tags/Spreadsheet">Spreadsheet</category>
      <category domain="https://community.devexpress.com/Tags/UDF">UDF</category>
      <category domain="https://community.devexpress.com/Tags/WinForms">WinForms</category>
      <title>Extending Excel Calculations with AI: Implementing User-Defined Formulas using the DevExpress WinForms Spreadsheet</title>
      <description>&lt;h2 id="Introduction" style="color:#333333;"&gt;Overview&lt;/h2&gt;&lt;p style="color:#333333;"&gt;Standard Excel formulas address a variety of business requirements. Of course, like anything else in life,&amp;nbsp;there are times when your enterprise will require additional capabilities to address a specific use case. &amp;nbsp;&lt;/p&gt;&lt;p style="color:#333333;"&gt;When it comes to spreadsheet calculations, user-defined formulas offer a variety of options for those who wish to introduce custom, task-specific calculations within&amp;nbsp;Excel documents. User-defined formulas&amp;nbsp;allow you to automate repetitive tasks, analyze data more efficiently, and execute&amp;nbsp;advanced calculations not possible with built-in functions.&lt;/p&gt;&lt;p style="color:#333333;"&gt;By integrating&amp;nbsp;AI services, we can take Excel formula calculations to a whole new level. We&amp;nbsp;can analyze large datasets more efficiently, incorporate pattern recognition, make&amp;nbsp;predictions, and so much more.&lt;/p&gt;&lt;p style="color:#333333;"&gt;In this blog post, I will incorporate&amp;nbsp;a user-defined formula using the DevExpress WinForms Spreadsheet Control&amp;nbsp;and illustrate how to utilize AI for advanced calculations.&lt;/p&gt;&lt;h2 id="Implementing-User-Defined-Formulas-in-DevExpress-WinForms-SpreadsheetControl" style="color:#333333;"&gt;Implementing User-Defined Formulas within the DevExpress WinForms Spreadsheet Control&lt;/h2&gt;&lt;p style="color:#333333;"&gt;In the following sections, I&amp;#39;ll create&amp;nbsp;a user-defined formula that uses AI services for&amp;nbsp;spreadsheet calculations. Feel free to use my example as a starting point and if you encounter issues, please submit a ticket via the DevExpress Support Center. We&amp;#39;ll be happy to follow up.&lt;/p&gt;&lt;div class="Note"&gt;Note: I will be using the OpenAI service in the example below. Before you incorporate this solution in your app, please be sure to read and understand OpenAI’s license agreement and terms of use.&lt;/div&gt;&lt;h4 id="Step-1-Setting-Up-the-DevExpress-WinForms-SpreadsheetControl" style="font-weight:600;color:#333333;"&gt;Step 1: Setting Up the DevExpress WinForms Spreadsheet Control&lt;/h4&gt;&lt;p style="color:#333333;"&gt;First, I&amp;#39;ll&amp;nbsp;need to add the DevExpress WinForms Spreadsheet Control to my&amp;nbsp;project. If you are new to our WinForms product line (or the Spreadsheet Control), please follow our&amp;nbsp;&lt;a href="https://docs.devexpress.com/WindowsForms/12071/controls-and-libraries/spreadsheet/getting-started" target="_blank" rel="noopener" style="color:#337ab7;"&gt;Spreadsheet: Getting Started&lt;/a&gt;&amp;nbsp;guide.&lt;/p&gt;&lt;h4 id="Step-2-Setting-Up-the-OpenAI-Client" style="font-weight:600;color:#333333;"&gt;Step 2: Setting Up the OpenAI Client&lt;/h4&gt;&lt;p style="color:#333333;"&gt;Once I&amp;#39;ve added the Spreadsheet Control to my project, I can install the &lt;a href="https://www.nuget.org/packages/Azure.AI.OpenAI/"&gt;Azure.AI.OpenAI&lt;/a&gt; NuGet package and create a class to register&amp;nbsp;&lt;code&gt;OpenAIClient&lt;/code&gt;. This client&amp;nbsp;will be used in the custom formula class (to send requests to the AI service).&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;public static class AIFormulaClient
{
    public static OpenAIClient Client;
    static AIFormulaClient() =&amp;gt; Client = new OpenAIClient(&amp;quot;your OpenAI key&amp;quot;);
}&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="Step-3-Creating-a-User-Defined-Function" style="font-weight:600;color:#333333;"&gt;Step 3: Creating a User-Defined Function&lt;/h4&gt;&lt;p style="color:#333333;"&gt;Next, I&amp;#39;ll create a&amp;nbsp;&lt;a href="https://docs.devexpress.com/WindowsForms/15447/controls-and-libraries/spreadsheet/formulas/functions/user-defined-functions-udf" target="_blank" rel="noopener" style="color:#337ab7;"&gt;user-defined function (UDF)&lt;/a&gt;&amp;nbsp;within my sample WinForms application. For purposes of this example, I&amp;#39;ll define a function called&amp;nbsp;&lt;strong&gt;AISummary.&lt;/strong&gt;&amp;nbsp;This function uses the AI service to generate a summary for a selected&amp;nbsp;cell range.&lt;/p&gt;&lt;p style="color:#333333;"&gt;The&amp;nbsp;&lt;code&gt;AISummaryFunction&lt;/code&gt;&amp;nbsp;class implements the custom function  and provides two parameters:&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li style="color:#333333;"&gt;the first is a required parameter (specifies&amp;nbsp;source cell range for the summary)&lt;/li&gt;&lt;li style="color:#333333;"&gt;the second is an optional parameter used to set  summary length in words.&lt;/li&gt;&lt;/ul&gt;&lt;p style="color:#333333;"&gt;&lt;br&gt;The&amp;nbsp;&lt;code&gt;IFunction.Evaluate&lt;/code&gt;&amp;nbsp;method retrieves  parameter values and sends  cell data (in CSV format) and the word count&amp;nbsp;to the&amp;nbsp;&lt;code&gt;GetSummary&lt;/code&gt;&amp;nbsp;method. This method generates a request using&amp;nbsp;&lt;code&gt;OpenAIClient&lt;/code&gt;&amp;nbsp;and returns the response. The returned value (AI-generated summary) is used as the result of the formula evaluation.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;public class AISummaryFunction : ICustomFunction
{
    const string functionName = &amp;quot;AISummary&amp;quot;;
    readonly ParameterInfo[] functionParameters;

    public AISummaryFunction()
    {
        this.functionParameters = new ParameterInfo[] { 
                new ParameterInfo(ParameterType.Reference, ParameterAttributes.Required), 
                new ParameterInfo(ParameterType.Value, ParameterAttributes.Optional) };
    }

    public string Name { get { return functionName; } }
    ParameterInfo[] IFunction.Parameters { get { return functionParameters; } }
    ParameterType IFunction.ReturnType { get { return ParameterType.Value; } }
    bool IFunction.Volatile { get { return false; } }

    ParameterValue IFunction.Evaluate(IList&amp;lt;ParameterValue&amp;gt; parameters, EvaluationContext context)
    {
        int wordCount = 40;
        if (parameters.Count &amp;gt; 1)
            wordCount = (int)parameters[1].NumericValue;
        IWorkbook workbook = context.Sheet.Workbook;
        workbook.Options.Export.Csv.Range = parameters[0].RangeValue.GetReferenceA1();
        byte[] cellDataBytes = workbook.SaveDocument(DocumentFormat.Csv);
        string value = GetSummary(Encoding.UTF8.GetString(cellDataBytes), wordCount);
        return value;
    }
    string GetSummary(string cellRangeData, int wordCount)
    {              
        ChatCompletionsOptions chatCompletionsOptions = new ChatCompletionsOptions()
        {
            DeploymentName = &amp;quot;gpt-4-vision-preview&amp;quot;,
            Messages =
        {
            new ChatRequestSystemMessage(&amp;quot;You are a helpful assistant.&amp;quot;),
            new ChatRequestUserMessage(
                new ChatMessageTextContentItem(string.Format(&amp;quot;Please create summary in {0} words for the following excel data&amp;quot;, wordCount)),
                new ChatMessageTextContentItem(cellRangeData))
        },
            MaxTokens = 300
        };

        Response&amp;lt;ChatCompletions&amp;gt; chatResponse = AIFormulaClient.Client.GetChatCompletions(chatCompletionsOptions);
        ChatChoice choice = chatResponse.Value.Choices[0];
        return choice.Message.Content;

    }
    string IFunction.GetName(CultureInfo culture)
    {
        return functionName;
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="Step-4-Registering-the-Custom-Function" style="font-weight:600;color:#333333;"&gt;Step 4: Registering the Custom Function&lt;/h4&gt;&lt;p style="color:#333333;"&gt;In this step, I&amp;#39;ll register the custom function.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;public Form1()
{
    InitializeComponent();

    AISummaryFunction aiSummaryFunction = new AISummaryFunction();
    var globalFunctions = spreadsheetControl.Document.Functions.GlobalCustomFunctions;
    if (!globalFunctions.Contains(aiSummaryFunction.Name))
        globalFunctions.Add(aiSummaryFunction);
}&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="Step-5-Using-the-Custom-Function-in-Spreadsheet" style="font-weight:600;color:#333333;"&gt;Step 5: Using the Custom Function within the Spreadsheet&lt;/h4&gt;&lt;p style="color:#333333;"&gt;I can now&amp;nbsp;use the AISummary function in my  spreadsheet (just like any other formula). I&amp;#39;ll load my Excel file in the WinForms Spreadsheet Control or I can enter data for the summary into a cell range then apply the AISummary function to obtain my&amp;nbsp;AI-generated summary.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;Worksheet worksheet = spreadsheetControl.ActiveWorksheet;
worksheet[&amp;quot;E2&amp;quot;].Formula = &amp;quot;AISummary(A2:D10, 50)&amp;quot;;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="Step-6-Testing" style="font-weight:600;color:#333333;"&gt;Step 6: Testing&lt;/h4&gt;&lt;p style="color:#333333;"&gt;Of course, we can&amp;#39;t forget testing...I&amp;#39;ll test my new user-defined formula and&amp;nbsp;ensure my AI integration/custom formulas work as expected.&lt;/p&gt;&lt;p style="color:#333333;"&gt;&lt;img src="https://community.devexpress.com:443/blogs/office/v24.1/spreadsheet_ai_udf.gif" alt="" style="width:1610px;height:895px;"&gt;&lt;br&gt;&lt;/p&gt;&lt;h3 id="Your-Feedback-Matters" style="font-weight:600;color:#333333;"&gt;Your Feedback Matters&lt;/h3&gt;&lt;p style="color:#333333;"&gt;As always, your feedback is very important. Please let us know whether additional AI-related samples/solutions are of interest to you and how you expect AI to change your development strategies in the next 12-months.&lt;/p&gt;&lt;div data-survey-id="250480b2-a10c-44e8-b657-28afff16d19f" data-survey-auth-required="false"&gt;&lt;/div&gt;</description>
      <pubDate>Tue, 20 Aug 2024 04:10:00 Z</pubDate>
      <dc:creator>Maria Nikulina (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388166</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2024/07/15/office-file-api-amp-office-inspired-desktop-ui-controls-2024-year-end-roadmap-v24-2.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.net">.net</category>
      <category domain="https://community.devexpress.com/Tags/AI">AI</category>
      <category domain="https://community.devexpress.com/Tags/barcode">barcode</category>
      <category domain="https://community.devexpress.com/Tags/Office">Office</category>
      <category domain="https://community.devexpress.com/Tags/Office+File+API">Office File API</category>
      <category domain="https://community.devexpress.com/Tags/office-inspired+controls">office-inspired controls</category>
      <category domain="https://community.devexpress.com/Tags/PDF">PDF</category>
      <category domain="https://community.devexpress.com/Tags/Roadmap">Roadmap</category>
      <category domain="https://community.devexpress.com/Tags/Spreadsheet">Spreadsheet</category>
      <category domain="https://community.devexpress.com/Tags/v24.2">v24.2</category>
      <category domain="https://community.devexpress.com/Tags/Word+Processing">Word Processing</category>
      <title>Office File API &amp; Office-Inspired Desktop UI Controls — Year-End Roadmap (v24.2)</title>
      <description>
&lt;p&gt;We thank you for your continued support and for sharing your document processing needs and requirements with us. If you’d like to discuss this roadmap in greater detail or share a business use case that our Office File API product does not address, feel free to send your feedback using the survey below or submit a Support Center ticket. We’ll be happy to follow up.&lt;/p&gt;&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.&lt;/div&gt;
&lt;h2 id="important-changes"&gt;Important Changes&lt;/h2&gt;
&lt;h3 id="net-framework-462-and-net-8-support"&gt;.NET Framework 4.6.2 and .NET 8 Support&lt;/h3&gt;&lt;p&gt;Our development plans are aligned with&amp;nbsp;&lt;a target="_blank" href="https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-and-net-core"&gt;Microsoft&amp;#39;s .NET Life Cycle&lt;/a&gt;&amp;nbsp;and as such,&amp;nbsp;we&amp;#39;ll be ending .NET 7 (ended in May 2024) and .NET 6 support (will end&amp;nbsp;November 2024) with our next major update (v24.2).&lt;/p&gt;&lt;p&gt;The minimal .NET Framework supported target will be v4.6.2, as it is the lowest framework version supported by Microsoft.&lt;/p&gt;&lt;p&gt;And finally, the oldest supported version of the Visual Studio IDE will be 2019 (our surveys indicate that 2019 and 2022 are used by the vast majority of our customers).&lt;/p&gt;&lt;p&gt;Please refer to the following announcement to learn more about this global change&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/news/archive/2024/07/08/net-net-8-and-net-framework-4-6-2-are-minimally-supported-target-frameworks-for-devexpress-libraries-in-v24-2.aspx" target="_blank"&gt;.NET — .NET 8 and .NET Framework 4.6.2 Are Minimally Supported Target Frameworks for DevExpress Libraries in v24.2.&lt;/a&gt;.&lt;/p&gt;&lt;h3 id="net-9-support"&gt;.NET 9 Support&lt;/h3&gt;&lt;p&gt;&lt;span&gt;We will support .NET 9 across our product line for v24.2 and v24.1  after November 2024.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="gdi-libgdiplus---end-of-support-in-non-windows-systems"&gt;GDI+ (Libgdiplus) — End Of Support on Non-Windows systems&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;span class="platform"&gt;non-Windows&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;As you may already know, GDI+ (System.Drawing library) APIs are now&amp;nbsp;marked for use in Windows-only environments (beginning with .NET 7). &lt;/p&gt;
&lt;p&gt;Based on plans to shift to .NET 8 this year and the release of our&amp;nbsp;&lt;a href="https://docs.devexpress.com/CoreLibraries/404247/devexpress-drawing-library"&gt;cross-platform SkiaSharp-based engine last year&lt;/a&gt;, we will refactor our source code to remove all method calls related to GDI+ for non Windows-based environments (libgdiplus). &lt;/p&gt;
&lt;h3 id="support-skia-for-windows-environment-and-prepare-to-deprecate-the-azurecompatibility-property"&gt;Support Skia for Windows Environment and Prepare to Deprecate the AzureCompatibility Property&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;span class="platform"&gt;Microsoft Azure&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;Multiple DevExpress products (specifically Reporting, Dashboards, and Office File API) ship with printing and export functionality for restricted environments such as Microsoft Azure, wherein certain GDI/GDI+ calls related to metafiles and font objects are unavailable. The &lt;a href="https://docs.devexpress.com/CoreLibraries/DevExpress.Utils.AzureCompatibility.Enable"&gt;AzureCompatibility.Enable&lt;/a&gt; property managed this capability. &lt;/p&gt;
&lt;p&gt;With v23.2, we ended support for functionality offered by this property toggle for non-Windows environments and in our next major update (v24.2) we will continue in this direction. To achieve this, we will support &lt;strong&gt;Skia&lt;/strong&gt; for non-visual Office File API libraries in &lt;em&gt;Windows-based environments&lt;/em&gt; as well. Once complete&amp;nbsp;we&amp;#39;ll be ready to phase out the AzureCompatibility toggle.&lt;/p&gt;
&lt;p&gt;This decision will help us focus&amp;nbsp;development and maintenance efforts in a single direction and allow customers to use the DevExpress&amp;nbsp;Office File API in cloud/restricted environments (for more information in this regard, refer to the following:&amp;nbsp;&lt;a href="https://docs.devexpress.com/CoreLibraries/404247/devexpress-drawing-library"&gt;Skia-based Cross-Platform Graphics Engine&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="new-ai-powered-enhancements"&gt;New AI-Powered Enhancements&lt;/h2&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;WinForms&lt;/span&gt;
&lt;span class="platform"&gt;WPF&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;We will integrate AI-Powered features into our WinForms and WPF Rich Text and Spreadsheet components. These enhancements will allow users to quickly understand the underlying essence of individual&amp;nbsp;documents via Generative AI summaries and translate documents to a&amp;nbsp;preferred language using AI-powered translations. In addition, we plan to give you the ability to describe images used within Office documents using  AI-powered APIs.&lt;/span&gt;&lt;/p&gt;&lt;p style="color:#000000;"&gt;&lt;span&gt;To access these features, you will need to&amp;nbsp;&lt;/span&gt;&lt;span style="font-weight:bold;"&gt;use your own&lt;/span&gt;&lt;span&gt;&amp;nbsp;Microsoft Azure Open AI API key or use local open-source models powered by Ollama and Onnx Runtime.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="spreadsheet-document-api-and-spreadsheet-ui-controls-for-winforms-and-wpf"&gt;Spreadsheet Document API and Spreadsheet UI Controls for WinForms and WPF&lt;/h2&gt;
&lt;h3 id="dynamic-array-functions"&gt;Dynamic Array Formulas&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;WinForms&lt;/span&gt;
&lt;span class="platform"&gt;WPF&lt;/span&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;Dynamic arrays are a modern and powerful way to work with Excel document formulas. Unlike standard&amp;nbsp;array formulas, which return a single value for each cell with a formula, dynamic array functions return a dynamic array of values (this&amp;nbsp;array of values automatically spills into neighboring cells). Dynamic arrays&amp;nbsp;offer&amp;nbsp;many advantages, including new functions (XLOOKUP, XMATCH, Sort, etc.).&amp;nbsp;&lt;/p&gt;&lt;p&gt;We expect to&amp;nbsp;enhance our formula calculation engine and integrate  dynamic arrays&amp;nbsp;into relevant DevExpress Spreadsheet-processing tools. Core functionality will include the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dynamic array calculations (formulas) and Spill Range support.&lt;/li&gt;
&lt;li&gt;New formula error type (#SPILL!).&lt;/li&gt;
&lt;li&gt;Spill range reference (# symbol).&lt;/li&gt;
&lt;li&gt;Implicit intersection operator (@ symbol) to return a single formula value instead of an array.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="embed-images-in-cells"&gt;Embed Images in Cells&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;WinForms&lt;/span&gt;
&lt;span class="platform"&gt;WPF&lt;/span&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;Modern versions of Microsoft Excel  support a new  locate image feature&amp;nbsp;- &amp;quot;Place in Cell&amp;quot; (available from the Insert-&amp;gt;Picture menu). This option&amp;nbsp;gives you the ability to embed an image directly into a cell instead of placing it over  worksheet content.
&lt;/p&gt;&lt;p&gt;With v24.2, our Spreadsheet Document API library and desktop Spreadsheet UI controls (WinForms &amp;amp; WPF) will ship with &amp;quot;Place in Cell&amp;quot; image placement support. As you would expect, this new feature will allow you to import documents with images embedded in worksheet cells and save these documents to  supported Excel formats without the content loss. Embedded cell images will be correctly displayed when you preview workbooks  using our&amp;nbsp;desktop Spreadsheet editors (WinForms &amp;amp; WPF) and when you&amp;nbsp;print/export documents to PDF (and of course, we&amp;#39;ll offer new APIs to manage embedded images in&amp;nbsp;code).&lt;/p&gt;
&lt;h2 id="pdf-document-api-and-pdf-viewer-for-winforms"&gt;PDF Document API and PDF Viewer for WinForms&lt;/h2&gt;
&lt;h3 id="accessibility-enhancemens"&gt;Accessibility Enhancements&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;WinForms&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;We will continue to enhance  accessibility&amp;nbsp;support for our desktop document viewers. In our next release cycle, we will introduce screen reader support for the DevExpress WinForms PDF Viewer. With this enhancement, you will be able to read  contents in Accessible PDF documents (based on  tagged structure).&lt;/p&gt;
&lt;h3 id="signature-validation-enhancements"&gt;Signature Validation Enhancements&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;v24.2 will ship with enhanced PDF Signature Validation APIs. New capabilities will include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;APIs to verify  certificate revocation based on Online Certificate Status Protocol (OCSP) responses.&lt;/li&gt;
&lt;li&gt;APIs to verify  certificate revocation based on Certificate Revocation List (CRL). &lt;/li&gt;
&lt;li&gt;APIs to validate Long Term Validation (LTV) signatures.&lt;/li&gt;
&lt;li&gt;APIs to validate Document Level Timestamps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="export-pdf-documents-to-svg"&gt;Export PDF Documents to SVG&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;Cross-Platform&lt;/span&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;We will finalize  &amp;quot;SVG Export&amp;quot; options for our Office File API libraries and extend  existing image export APIs for the PDF Document Processor library (to convert PDF file pages to SVG images). This enhancement will&amp;nbsp;allow you to generate vector document previews from PDF files in both Windows and non-Windows environments.&lt;/p&gt;
&lt;h3 id="image-extraction-api"&gt;Image Extraction API&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;To improve user experiences when extracting PDF content&amp;nbsp;and analyzing document structure, we plan to enhance our&amp;nbsp;image extraction APIs for the PDF Document API library. With our new APIs, you will be able to obtain additional information about  PDF page images and determine  image size and location on a page.&lt;/p&gt;
&lt;h2 id="word-processing-document-api-and-rich-text-editors-for-winforms-and-wpf"&gt;Word Processing Document API and Rich Text Editors for WinForms and WPF&lt;/h2&gt;
&lt;h3 id="page-borders"&gt;Page Borders&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;WinForms&lt;/span&gt;
&lt;span class="platform"&gt;WPF&lt;/span&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;Our Word-processing components will support Page Borders within Word documents. You will be able to import and save documents with page borders to supported Word formats without content loss. Page borders will be properly displayed when you preview the document, print it, or export it to the PDF. 
 APIs to manage page borders in code will be also available.&lt;/p&gt;
&lt;h3 id="small-caps-formatting-support"&gt;Small Caps Formatting Support&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;WinForms&lt;/span&gt;
&lt;span class="platform"&gt;WPF&lt;/span&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;With v24.2, our Word processing tools will support  Small Caps character formatting. 
 Small Caps formatting will be applied when you preview the document inside the UI control and when you print/export to PDF. We will also introduce&amp;nbsp;API settings to manage Small Caps formatting in code (and enhance the Font dialog for our desktop Rich Text Editors (WinForms &amp;amp; WPF)&amp;nbsp;to apply  formatting via the UI).&amp;nbsp;&lt;/p&gt;
&lt;h2 id="barcode-generation-api"&gt;Barcode Generation API&lt;/h2&gt;
&lt;h3 id="new-barcode-types--aztec--micro-qr-code"&gt;New Barcode Types — Aztec &amp;amp; Micro QR Code&lt;/h3&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;Cross-Platform&lt;/span&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;v24.2 will allow you to&amp;nbsp;generate two new barcode types: &lt;strong&gt;Aztec&lt;/strong&gt; and &lt;strong&gt;Micro QR Code&lt;/strong&gt;. &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Aztec_Code"&gt;Aztec&lt;/a&gt; barcodes provide a compact and efficient way to encode large amounts of data&amp;nbsp;without requiring a quiet zone, making them ideal for space-constrained documents. &lt;/p&gt;
&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/QR_code"&gt;Micro QR Codes&lt;/a&gt; offer a smaller alternative to traditional QR Codes, suitable for scenarios where space is limited and only small amounts of data need encoding.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Libraries -&amp;nbsp;Resolve Missing Fonts&lt;/h2&gt;
&lt;p class="tags"&gt;
&lt;span class="platform"&gt;Cross-Platform&lt;/span&gt;
&lt;span class="platform"&gt;Office File API&lt;/span&gt;
&lt;br&gt;
&lt;span class="completed"&gt;Completed&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;We plan to introduce a new API that will detect fonts used in documents but are missing in your application’s hosting environment (such as various Docker images, Azure App Service, etc.).&amp;nbsp;This feature will allow you to identify and resolve missing fonts by adding them to the&amp;nbsp;&lt;code style="color:#303030;"&gt;DXFontRepository&lt;/code&gt;&amp;nbsp;before document generation begins. With this enhancement, you will be able to identify and address document appearance issues, ensuring that your documents appear as designed, regardless of the hosting platform.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:&amp;#39;Open Sans Condensed&amp;#39;, HelveticaNeue-CondensedBold, Helvetica, &amp;#39;Arial Narrow&amp;#39;, Calibri, Arial, &amp;#39;Lucida Grande&amp;#39;, sans-serif;font-size:30px;"&gt;Your Feedback Matters&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We thank you for taking the time to review our year-end Roadmap. Please take a moment to answer the following survey question and let us know  your thoughts on our plans for v24.2.&amp;nbsp;&lt;/p&gt;&lt;div data-survey-id="d15ba217-a855-4ef9-b545-0962f3473c42" data-survey-auth-required="false"&gt;&lt;/div&gt;

&lt;h2 id="v241---whats-new"&gt;v24.1 - What&amp;#39;s New&lt;/h2&gt;
&lt;p&gt;If you have yet to review the features/capabilities introduced in our most recent major update, please visit the following webpage and let us know what you think of this release by responding to our online survey: &lt;a href="https://www.devexpress.com/subscriptions/whats-new/?utm_source=roadmap#officefileapi"&gt;Explore Our Newest Features (v24.1)&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 15 Jul 2024 00:30:00 Z</pubDate>
      <dc:creator>Maria Nikulina (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388154</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2024/07/01/word-processing-document-api-rich-text-editors-winforms-and-wpf-reducing-document-file-size-best-practices.aspx</link>
      <category domain="https://community.devexpress.com/Tags/2024">2024</category>
      <category domain="https://community.devexpress.com/Tags/Fields">Fields</category>
      <category domain="https://community.devexpress.com/Tags/File+Optimization">File Optimization</category>
      <category domain="https://community.devexpress.com/Tags/Office">Office</category>
      <category domain="https://community.devexpress.com/Tags/Shapes">Shapes</category>
      <category domain="https://community.devexpress.com/Tags/Tips+%26+Tricks">Tips &amp; Tricks</category>
      <category domain="https://community.devexpress.com/Tags/Word+Processing">Word Processing</category>
      <title>Word Processing Document API, Rich Text Editors (WinForms and WPF) — Reducing Document File Size (Best Practices)</title>
      <description>&lt;p&gt;Reducing document file size can improve document import/processing related operations. It can also help minimize file storage requirements in databases and cloud servers. In this blog post, I will describe different strategies to reduce Microsoft Word document&amp;nbsp;file size&amp;nbsp;using our Word Processing APIs.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;IMPORTANT NOTE: The strategies outlined below involve the removal of document content. Deleted content cannot be restored.&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;Simplify Your Documents&lt;/h2&gt;

&lt;p&gt;While obvious, document simplification is the best way to reduce/optimize file size. Simplification strategies include:&amp;nbsp;&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;Where possible, use a limited set of styles to format document content.&lt;/li&gt;
        &lt;li&gt;Convert the document from DOCM to DOCX format to eliminate macros. You can also use our&amp;nbsp;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.XtraRichEdit.DocumentCapabilitiesOptions.Macros" target="_blank"&gt;RichEditDocumentServer.Options.DocumentCapabilities.Macros&lt;/a&gt; option to disable macros.&lt;/li&gt;
        &lt;li&gt;Disable Track Changes before saving the document. RichEditDocumentServer includes a&amp;nbsp;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.XtraRichEdit.DocumentCapabilitiesOptions.TrackChanges" target="_blank"&gt;RichEditDocumentServer.Options.DocumentCapabilities.TrackChanges&lt;/a&gt; property designed to&amp;nbsp;disable tracking.&lt;/li&gt;
        &lt;li&gt;Reduce graphics content.&lt;/li&gt;
        &lt;li&gt;Use linked OLE objects instead of embedded OLE objects. If you are unable to use linked OLE objects, you can reduce embedded OLE object size&amp;nbsp;or remove it before saving. Refer to the following article for additional information on OLE object support: &lt;a href="https://docs.devexpress.com/OfficeFileAPI/402311/word-processing-document-api/word-processing-document/ole-objects" target="_blank"&gt;OLE Objects in Word Documents&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;Reduce the use of fields and content controls. Unlink or remove fields before saving&amp;nbsp;(see&amp;nbsp;&lt;a href="https://docs.devexpress.com/OfficeFileAPI/15280/word-processing-document-api/fields#replace-fields-with-field-values" target="_blank"&gt;Replace Fields with Field Values&lt;/a&gt;&amp;nbsp;to learn more).&lt;/li&gt;
        &lt;li&gt;Replace charts with compressed images. &lt;/li&gt;
        &lt;li&gt;Remove  additional metadata (XML data, document properties, comments, RTF theme data).&lt;/li&gt;
        &lt;li&gt;Divide long tables into multiple short tables. In most instances, long tables do not affect file size but slow document rendering and layout calculation.&lt;/li&gt;
    &lt;/ul&gt;   


&lt;h2&gt;Use the OpenXML Format&amp;nbsp;Instead of Legacy Formats&lt;/h2&gt;
&lt;p&gt;The OpenXML format (DOCX) is modern, open, and compatible across multiple platforms. While more efficient in certain scenarios, legacy formats (such as DOC, RTF) are proprietary and&amp;nbsp;less flexible. OpenXML files are essentially ZIP archives with XML files and additional resources (like images and styles). As such, DOCX files are easier to store in a database. You can use our &lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.XtraRichEdit.RichEditDocumentServer.SaveDocument.overloads"&gt;RichEditDocumentServer.Save&lt;/a&gt; method to convert documents into the desired file format.&lt;/p&gt;

&lt;h2&gt;Do Not Embed Fonts&lt;/h2&gt;
&lt;p&gt;The DevExpress Word Processing Document API allows you to embed fonts into your document. While documents with embedded fonts maintain&amp;nbsp;appearance characteristics across different computing devices,&amp;nbsp;these documents are much larger in size. If your solution displays documents in a controlled/managed environment, we recommend the&amp;nbsp;use of the DevExpress DXFontRepository class. Please refer to the following help topic for additional information: &lt;a href="https://docs.devexpress.com/OfficeFileAPI/403512/load-and-use-custom-fonts-in-office-file-api" target="_blank"&gt;Load and Use Custom Fonts Without Installation on the System&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Reduce Image Size&lt;/h2&gt;
&lt;p&gt;You can use a&amp;nbsp;third-party app to compress document images. Once compressed, simply call the &lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.XtraRichEdit.API.Native.PictureFormat.SetPicture.overloads" target="_blank"&gt;PictureFormat.SetPicture&lt;/a&gt; method to replace the original image(s) with its compressed equivalent(s). &lt;/p&gt;

&lt;p&gt;The following code snippet replaces the original image with its compressed equivalent:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-csharp"&gt;using (RichEditDocumentServer wordProcessor = new RichEditDocumentServer()) {
    wordProcessor.LoadDocument(&amp;quot;doc_with_images.docx&amp;quot;);
    Document document = wordProcessor.Document;
    Shape shape = document.Shapes[0];
    DXImage sourceImage = shape.PictureFormat.Picture.DXImage;
    MemoryStream imageStream  = new MemoryStream();
    sourceImage.Save(stream);
    //Compress the image saved in the stream
    //...
    DXImage compressedImage = DXImage.FromStream(updatedImageStream);
    shape.PictureFormat.SetPicture(compressedImage);
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Another tip is not to crop images. Use a saved pre-cropped version&amp;nbsp;instead. You can use the &lt;a href="https://docs.devexpress.com/OfficeFileAPI/DevExpress.XtraRichEdit.API.Native.PictureFormat.SourceRect" target="_blank"&gt;PictureFormat.SourceRect&lt;/a&gt; property to crop the image in code and then save the output. The &lt;code&gt;PictureFormat.SetPicture&lt;/code&gt; method allows you to replace the image with its cropped version. &lt;/p&gt;

&lt;p&gt;The following code snippet crops an image, saves it, and then replaces the original image with its cropped &lt;span&gt;equivalent&lt;/span&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-csharp"&gt;using (RichEditDocumentServer wordProcessor = new RichEditDocumentServer()) {
  wordProcessor.LoadDocument(&amp;quot;CroppedImages.docx&amp;quot;);
  Document document = wordProcessor.Document;
  Shape shape = document.Shapes[0];
      if (shape.PictureFormat != null) { 
        DXBitmap image = shape.PictureFormat.Picture.DXImage as DXBitmap;
        var rectOffset = shape.PictureFormat.SourceRect;
        RectangleF imageRect = new RectangleF(image.Width * rectOffset.LeftOffset, 
            image.Height * rectOffset.TopOffset, 
              image.Width - image.Width * rectOffset.LeftOffset - image.Width * rectOffset.RightOffset, 
                image.Height - image.Height * rectOffset.TopOffset - image.Height * rectOffset.BottomOffset);
        MemoryStream imageStream = new MemoryStream();
        image.Crop(imageRect).Save(imageStream, image.ImageFormat);
        DocumentImageSource source = DocumentImageSource.FromStream(imageStream);
        shape.PictureFormat.SetPicture(source);
        shape.PictureFormat.SourceRect = new RectangleOffset();
    }
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If large image use is necessary and app architecture allows you to store images separately, you can employ the following workaround. Iterate the document&amp;#39;s shape collection and save all images to a database with unique identifiers. Once complete, replace original document images with empty images, or &lt;a href="https://docs.devexpress.com/OfficeFileAPI/15291/word-processing-document-api/fields/field-codes/docvariable" target="_blank"&gt;DOCVARIABLE&lt;/a&gt; fields (for dynamic image replacement), or remove images and mark their position in the document with bookmarks. By using this strategy, you will be able to save a lightweight version of the document and restore original document images when necessary:&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;Document document = wordProcessor.Document;
// iterate through document images, save them to the database 
// and replace original images with an empty image
int imageID = 1; // generate an image ID as you require
DocumentImageSource emptyImageSource = DocumentImageSource.FromImage(new DXBitmap(1, 1));
for (int i = document.Shapes.Count - 1; i &amp;gt;= 0; i--)
{
    Shape shape = document.Shapes[i];
    if (shape.PictureFormat != null)
    {
        DXBitmap image = shape.PictureFormat.Picture.DXImage as DXBitmap;
        using (MemoryStream imageStream = new MemoryStream()) {
            image.Save(imageStream, image.ImageFormat);
            byte[] imageBytes = imageStream.ToArray();
            // save image bytes to the database with the specified image ID
            // ...
            // change the image name (if required) to identify it later
            shape.Name = &amp;quot;Image &amp;quot; + imageID.ToString();
            // replace the current image with the empty image
            shape.PictureFormat.SetPicture(emptyImageSource);
        }
        imageID++;
    }
}
// save the document with dummy images
using (MemoryStream documentStream = new MemoryStream())
    document.SaveDocument(documentStream, DocumentFormat.OpenXml);
 
//...
// restore document images
richEditControl.LoadDocument(documentStream, DocumentFormat.OpenXml);
Document document = richEditControl.Document;
for (int i = document.Shapes.Count - 1; i &amp;gt;= 0; i--)
{
    Shape shape = document.Shapes[i];
    if (shape.PictureFormat != null)
    {
        string imageName = shape.Name;
        // extract the required image from the database by name
        byte[] imageBytes = ...;
        using(MemoryStream imageStream = new MemoryStream(imageBytes))
        {
            // replace the empty image with the original image
            DocumentImageSource imageSource = DocumentImageSource.FromStream(imageStream);
            shape.PictureFormat.SetPicture(imageSource);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;
Your Feedback Counts&lt;/h3&gt;&lt;p&gt;
Help us shape the future of our Office/PDF File API libraries. Please take a moment to respond to the following survey questions:
&lt;/p&gt;&lt;div data-survey-id="710c1548-b076-4944-86ab-5be371863586" data-survey-auth-required="false"&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 01 Jul 2024 01:05:00 Z</pubDate>
      <dc:creator>Polina Fedorova (DevExpress)</dc:creator>
    </item>
  </channel>
</rss>