﻿<?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:388302</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2026/09/07/devexpress-office-amp-pdf-file-api-for-java-generate-pdfs-powerpoint-presentations-and-barcodes-in-java-apps.aspx</link>
      <category domain="https://community.devexpress.com/Tags/barcode">barcode</category>
      <category domain="https://community.devexpress.com/Tags/CTP">CTP</category>
      <category domain="https://community.devexpress.com/Tags/featured">featured</category>
      <category domain="https://community.devexpress.com/Tags/java">java</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/v26.2">v26.2</category>
      <title>DevExpress Office &amp; PDF File API for Java — Generate PDFs, PowerPoint Presentations, and Barcodes in Java Apps </title>
      <description>&lt;p&gt;Building document-processing solutions on the JVM often means combining specialized libraries for different document formats and workflows.&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;&lt;a href="https://www.devexpress.com/products/java/office-pdf-file-api/"&gt;DevExpress Office &amp;amp; PDF File API for Java&lt;/a&gt;&lt;/strong&gt; gives Java developers API libraries for PDF and PowerPoint file processing and barcode generation. You can create, modify, and export documents directly in Java applications without Microsoft Office or Adobe Acrobat.&lt;/p&gt;
    
    &lt;p&gt;The product is available as a Community Technology Preview (CTP). Its API libraries are uploaded on &lt;a href="https://central.sonatype.com/namespace/com.devexpress"&gt;Maven Central&lt;/a&gt; and support Maven and Gradle projects.&lt;/p&gt;  

&lt;p&gt;
   In this post, I’ll introduce the CTP, explain its cross-platform architecture, and write a sample Java application. I&amp;#39;ll also examine an important architectural difference from many Java document libraries: DevExpress libraries use their own drawing primitives instead of &lt;code&gt;java.awt&lt;/code&gt; and rely on a Skia-based rendering engine instead of the Java graphics stack. 
&lt;/p&gt;

	&lt;div class="Note"&gt;
			&lt;strong&gt;DevExpress Office &amp;amp; PDF File API for Java&lt;/strong&gt; is available today as a free Community Technology Preview (CTP). Register to receive technical support throughout the CTP period: &lt;strong&gt;
				&lt;a href="https://www.devexpress.com/products/java/office-pdf-file-api/"&gt;Register Online&lt;/a&gt;&lt;/strong&gt;. The commercial release (set for 2027) will be available as a separate subscription. It will &lt;strong&gt;not&lt;/strong&gt; be included in the Office &amp;amp; PDF File API for .NET or Universal subscription.
&lt;/div&gt;


&lt;h2&gt;What&amp;#39;s Included in the CTP&lt;/h2&gt;

&lt;p&gt;Our CTP includes three API libraries:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;
        &lt;strong&gt;PDF Document API&lt;/strong&gt;: &lt;code&gt;devexpress-docs-pdf&lt;/code&gt; &lt;br&gt; 
        Create, modify, secure, and export PDF documents.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;PowerPoint Presentation API&lt;/strong&gt;: &lt;code&gt;devexpress-docs-presentation&lt;/code&gt; &lt;br&gt; 
        Create, modify, and export PPTX presentations.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Barcode Generation API&lt;/strong&gt;: &lt;code&gt;devexpress-docs-barcode&lt;/code&gt; &lt;br&gt;
        Generate 1D and 2D barcodes and export them as images or PDF.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All libraries share a consistent API design and cross-platform drawing types. You can use APIs independently or combine them in the same Java application.&lt;/p&gt;

&lt;img src="https://community.devexpress.com/blogs/office/v26.2/pdf_java_1_1500.png" alt="DevExpress Office and PDF File API for Java"&gt;

&lt;h2&gt;Built for Cross-Platform Java Development&lt;/h2&gt;

&lt;p&gt;All three libraries are cross-platform and run across the following operating systems and deployment environments:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Operating systems&lt;/strong&gt; — Windows x64, Linux x64, and macOS ARM64.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Containers&lt;/strong&gt; — Docker images based on supported platforms.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Cloud&lt;/strong&gt; — Microsoft Azure and Amazon Web Services (AWS).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rendering stack does not depend on standard Java graphics APIs. DevExpress libraries use the Skia graphics engine, with ICU (International Components for Unicode) for text processing. Skia ships as a separate platform-specific dependency and allows you to deploy the same application across supported Windows, Linux, or macOS environments.&lt;/p&gt;

&lt;p&gt;Our API libraries use their own cross-platform drawing types instead of &lt;code&gt;java.awt&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;code&gt;com.devexpress.system.drawing&lt;/code&gt; — drawing primitives such as &lt;code&gt;Color&lt;/code&gt;, &lt;code&gt;PointF&lt;/code&gt;, &lt;code&gt;SizeF&lt;/code&gt;, and &lt;code&gt;RectangleF&lt;/code&gt;.&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;com.devexpress.drawing&lt;/code&gt; — imaging types such as &lt;code&gt;DXImage&lt;/code&gt; and &lt;code&gt;DXImageFormat&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The shared drawing model provides a consistent API across supported platforms, while the Skia-based rendering stack performs underlying graphics operations. This separation allows the same document-processing code to run in a desktop application, a headless Linux container, or a cloud service.&lt;/p&gt;

&lt;p&gt;DevExpress resource-owning types (such as &lt;code&gt;DXImage&lt;/code&gt;, &lt;code&gt;PdfDocument&lt;/code&gt;, &lt;code&gt;Presentation&lt;/code&gt;, and &lt;code&gt;BarcodeGenerator&lt;/code&gt;) implement Java&amp;#39;s &lt;code&gt;Closeable&lt;/code&gt;. Use these objects with &lt;code&gt;try-with-resources&lt;/code&gt; when your application no longer needs them:&lt;/p&gt;

&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-java"&gt;import com.devexpress.system.drawing.*; 
import com.devexpress.drawing.*;        

try (PdfDocument document = new PdfDocument();
     DXImage image = DXImage.fromStream(inputStream)) {
    // Work with the document and image...
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;h2&gt;Get Started&lt;/h2&gt;
&lt;p&gt;For complete project setup, including all required dependencies and complete PDF, PowerPoint, and Barcode generation examples, please review the following: &lt;a href="https://docs.devexpress.com/OfficeFileApiJava/406104/quick-start"&gt;Get Started documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Prerequisites&lt;/h3&gt;

&lt;ul&gt;
	&lt;li&gt;JDK 21 or later&lt;/li&gt;
	&lt;li&gt;Maven 3.9+ or Gradle 8.14+&lt;/li&gt;
	&lt;li&gt;IntelliJ IDEA, Eclipse, or VS Code with the Extension Pack for Java&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Confirm your toolchain before you create a project. The following command displays the installed version of Java:&lt;/p&gt;

&lt;div&gt;
    &lt;pre&gt;&lt;code class="language-powershell"&gt;java -version&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;Add DevExpress Dependencies&lt;/h3&gt;

&lt;p&gt;
    &lt;a href="https://central.sonatype.com/namespace/com.devexpress"&gt;Maven Central&lt;/a&gt; hosts all libraries under the &lt;code&gt;com.devexpress&lt;/code&gt; group. Add each necessary dependency to your build file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maven&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-xml"&gt;&amp;lt;dependencies&amp;gt;
    &amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;com.devexpress&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;devexpress-docs-pdf&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;26.2.1&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;com.devexpress&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;devexpress-docs-presentation&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;26.2.1&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;com.devexpress&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;devexpress-docs-barcode&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;26.2.1&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
&amp;lt;/dependencies&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Gradle&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-groovy"&gt;dependencies {
    implementation(&amp;quot;com.devexpress:devexpress-docs-pdf:26.2.1&amp;quot;)
    implementation(&amp;quot;com.devexpress:devexpress-docs-presentation:26.2.1&amp;quot;)
    implementation(&amp;quot;com.devexpress:devexpress-docs-barcode:26.2.1&amp;quot;)
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;Add Native Dependencies&lt;/h3&gt;
&lt;p&gt;To resolve the platform-specific native libraries transitively, add the following native dependencies to your project:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Skija&lt;/li&gt;
	&lt;li&gt;LWJGL&lt;/li&gt;
	&lt;li&gt;LWJGL HarfBuzz&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The following configuration targets Linux x64. For a platform-specific list of required artifacts, refer to our &lt;a href="https://docs.devexpress.com/OfficeFileApiJava/406104/quick-start#add-platform-specific-runtime-dependencies"&gt;documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maven&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-xml"&gt;&amp;lt;dependencies&amp;gt;
    &amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;com.devexpress&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;devexpress-docs-pdf&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;26.2.1&amp;lt;/version&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;io.github.humbleui&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;skija-linux-x64&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;0.119.6&amp;lt;/version&amp;gt;
        &amp;lt;scope&amp;gt;runtime&amp;lt;/scope&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;org.lwjgl&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;lwjgl&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;3.4.2&amp;lt;/version&amp;gt;
        &amp;lt;classifier&amp;gt;natives-linux&amp;lt;/classifier&amp;gt;
        &amp;lt;scope&amp;gt;runtime&amp;lt;/scope&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
        &amp;lt;groupId&amp;gt;org.lwjgl&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;lwjgl-harfbuzz&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;3.4.2&amp;lt;/version&amp;gt;
        &amp;lt;classifier&amp;gt;natives-linux&amp;lt;/classifier&amp;gt;
        &amp;lt;scope&amp;gt;runtime&amp;lt;/scope&amp;gt;
    &amp;lt;/dependency&amp;gt;
&amp;lt;/dependencies&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Gradle&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-groovy"&gt;dependencies {
    implementation &amp;#39;com.devexpress:devexpress-docs-pdf:26.2.1&amp;#39;

    runtimeOnly &amp;#39;io.github.humbleui:skija-linux-x64:0.119.6&amp;#39;
    runtimeOnly &amp;#39;org.lwjgl:lwjgl:3.4.2:natives-linux&amp;#39;
    runtimeOnly &amp;#39;org.lwjgl:lwjgl-harfbuzz:3.4.2:natives-linux&amp;#39;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;Code Example — Generate Your First PDF&lt;/h3&gt;
&lt;p&gt;The following console application creates a Letter&amp;nbsp;page, places a title and a paragraph, and writes the result to disk. It captures core PDF workflows: creates a &lt;code&gt;PdfDocument&lt;/code&gt;, adds a page, adds text fragments, and saves the result.&lt;/p&gt;
&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-java"&gt;import com.devexpress.docs.pdf.*;
import com.devexpress.drawing.*;
import com.devexpress.system.drawing.*;
import com.devexpress.drawing.printing.*;

import java.io.*;
import java.nio.file.*;
import java.nio.channels.*;

public class CreatePdfDocument {
    public static void main(String[] args) throws Exception {
        try (PdfDocument pdfDocument = new PdfDocument()) {

            // Add a Letter page to the document.
            Page page = pdfDocument.getPages().add(DXPaperKind.LETTER);

            // Add a title to the document.
            TextFragment textFragment = new TextFragment();
            textFragment.setText(&amp;quot;Quarterly Sales Report&amp;quot;);
            textFragment.setLocation(new PointF(50, 770));
            textFragment.setFont(new TextFont(&amp;quot;DejaVu Sans&amp;quot;, TextFontStyle.BOLD));
            textFragment.setFontSize(24);
            page.addFragment(textFragment);

            // Add a paragraph to the document.
            ParagraphFragment paragraphFragment = new ParagraphFragment();
            paragraphFragment.setText(&amp;quot;This report summarizes sales data for Q1 2026.&amp;quot;);
            paragraphFragment.setLocation(new PointF(50, 730));
            paragraphFragment.setWidth(200);
            paragraphFragment.setFont(new TextFont(&amp;quot;DejaVu Sans&amp;quot;));
            paragraphFragment.setFontSize(12);
            page.addFragment(paragraphFragment);

            // Save the document to a PDF file.
            try (WritableByteChannel writableByteChannel =
                    FileChannel.open(Path.of(&amp;quot;Result.pdf&amp;quot;),
                        StandardOpenOption.CREATE,
                        StandardOpenOption.WRITE,
                        StandardOpenOption.TRUNCATE_EXISTING)) {

                pdfDocument.save(writableByteChannel);
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The example saves the document to disk, but file I/O is optional. Each library reads and writes through &lt;code&gt;java.io&lt;/code&gt; streams, NIO channels, or a &lt;code&gt;byte[]&lt;/code&gt;. As a result, integration into web applications and services is straightforward:&lt;/p&gt;

&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-java"&gt;try (PdfDocument document = new PdfDocument(request.getInputStream())) {
    // Edit the document...
    document.save(response.getOutputStream());
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;PDF Document API for Java&lt;/h2&gt;
&lt;p&gt;Our PDF Document API is the most extensive library in the CTP. It supports the entire PDF lifecycle. You can create documents from scratch, edit existing PDFs, secure and annotate files, work with interactive forms, and export pages to images. Everything runs in code. As a result, the library suits batch processing, report generation, and web services equally well.&lt;/p&gt;

&lt;h3&gt;Create Documents from Scratch&lt;/h3&gt;

&lt;p&gt;Create a &lt;code&gt;PdfDocument&lt;/code&gt;, add pages, and populate them with content &lt;strong&gt;fragments&lt;/strong&gt; — self-contained objects positioned with explicit coordinates. A page can contain:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Text with font and style formatting&lt;/li&gt;
	&lt;li&gt;Raster and vector images&lt;/li&gt;
	&lt;li&gt;Geometric shapes and paths&lt;/li&gt;
	&lt;li&gt;Embedded file attachments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For recurring layouts (such as invoices, certificates, or reports), create a reusable page template and apply it throughout the document.&lt;/p&gt;

&lt;p&gt;One implementation detail is worth noting: PDF uses a coordinate system with its origin at the &lt;strong&gt;bottom-left&lt;/strong&gt; corner of the page. PDF measures coordinates in &lt;strong&gt;points&lt;/strong&gt; (72 points per inch), so larger Y values move content toward the top of the page.&lt;/p&gt;

&lt;h3&gt;Edit Existing PDFs&lt;/h3&gt;

&lt;p&gt;Load an existing PDF from a stream, channel, or byte array (optionally with a password) and modify contents. The API allows you to:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Merge multiple PDF documents into a single file or split a document across multiple files.&lt;/li&gt;
	&lt;li&gt;Search and replace text (configure search options).&lt;/li&gt;
	&lt;li&gt;Move or scale existing page content.&lt;/li&gt;
	&lt;li&gt;Read and edit bookmarks, form fields, attachments, annotations, comments, and the document structure tree.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Additional Capabilities&lt;/h3&gt;

&lt;p&gt;Beyond document creation and editing, the library includes APIs for:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Page management&lt;/strong&gt; — insert, remove, duplicate, reorder, rotate, and resize pages.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Interactive forms (AcroForms)&lt;/strong&gt; — create and edit form fields, organize and fill forms, and import or export form data.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Annotations&lt;/strong&gt; — add text markup, links, drawings, file attachments, watermarks, and stamps.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Security&lt;/strong&gt; — encrypt documents, apply user and owner passwords, and restrict printing, copying, or editing.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Accessibility &amp;amp; compliance&lt;/strong&gt; — generate tagged accessible PDFs (both PDF/UA-1 and PDF/UA-2 compatible) and create ZUGFeRD-compliant invoices for electronic invoicing workflows.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Metadata &amp;amp; export&lt;/strong&gt; — read and write document metadata and render PDF pages to images.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;PowerPoint Presentation API for Java&lt;/h2&gt;
&lt;p&gt;Our PowerPoint Presentation API is a cross-platform library that creates, loads, modifies, saves, and exports presentations without an installed copy of PowerPoint. It reads and writes PPTX, PPTM, POTX, and POTM files.&lt;/p&gt;

&lt;p&gt;The following example loads a presentation, adds a title slide, sets title text, and saves the file while preserving PowerPoint compatibility:&lt;/p&gt;

&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-java"&gt;import com.devexpress.docs.presentation.*;

import java.nio.file.*;
import java.nio.channels.*;

public class UpdatePresentation {
    public static void main(String[] args) throws Exception {
        Path path = Path.of(&amp;quot;presentation.pptx&amp;quot;);
        try (Presentation presentation = new Presentation(Files.readAllBytes(path))) {

            Slide slide = new Slide(SlideLayoutType.TITLE);
            for (ShapeBase shapeBase : slide.getShapes()) {
                if (shapeBase instanceof Shape shape
                        &amp;amp;&amp;amp; shape.getPlaceholderSettings().getType() == PlaceholderType.CENTERED_TITLE) {
                    shape.getTextArea().setText(&amp;quot;DevExpress Presentation API for Java&amp;quot;);
                }
            }
            presentation.getSlides().add(slide);

            try (WritableByteChannel channel = FileChannel.open(path,
                    StandardOpenOption.WRITE,
                    StandardOpenOption.TRUNCATE_EXISTING)) {
                presentation.saveDocument(channel);
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The presentation object model gives you programmatic access to the complete document tree:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Presentations&lt;/strong&gt; — create, load from a stream or byte array, and merge multiple files into one.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Masters and layouts&lt;/strong&gt; — apply predefined layouts or define your own for consistent slide structure.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Slides&lt;/strong&gt; — add, reorder, duplicate, and remove slides.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Shapes and tables&lt;/strong&gt; — add, remove, and modify presentation text boxes, images, geometric shapes, and tables with cell merge and split.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Themes and formatting&lt;/strong&gt; — control colors, fonts, effects, sizes, and other appearance settings for all presentation elements.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Headers, footers, and notes&lt;/strong&gt; — metadata, slide numbers, and presenter-only notes.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Export&lt;/strong&gt; — render a presentation to PDF or export to per-slide images.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Barcode Generation API for Java&lt;/h2&gt;

&lt;p&gt;Our Barcode Generation API produces print-ready 1D and 2D barcodes. It supports common 1D symbologies (EAN, UPC, Code 128) and 2D symbologies (QR Code, DataMatrix, PDF417, Aztec), and exports to PNG, JPEG, SVG, or PDF.&lt;/p&gt;

&lt;p&gt;The workflow is consistent across symbologies. Choose a barcode type, configure common settings (colors, DPI, module size), and then apply symbology-specific settings. Export to a stream or file as PNG, JPEG, SVG, or PDF. You can also call &lt;code&gt;exportToImage()&lt;/code&gt; to generate a &lt;code&gt;DXImage&lt;/code&gt; and embed the barcode directly into a PDF page or a slide. Fluent API builders configure everything with chained calls.&lt;/p&gt;

&lt;div&gt;
	&lt;pre&gt;&lt;code class="language-java"&gt;import com.devexpress.drawing.*;
import com.devexpress.docs.barcode.*;

import java.io.*;
import java.nio.file.*;

public class GenerateBarcode {
    public static void main(String[] args) throws Exception {

        byte[] logoBytes = Files.readAllBytes(Path.of(&amp;quot;images/devexpress-logo.png&amp;quot;));
        try (DXImage logo = DXImage.fromStream(new ByteArrayInputStream(logoBytes))) {
            QRCodeOptions options = new QRCodeOptionsBuilder()
                .withCompactionMode(QRCodeCompactionMode.BYTE)
                .withVersion(QRCodeVersion.VERSION_10)
                .withErrorCorrectionLevel(QRCodeErrorCorrectionLevel.H)
                .withModuleSize(10)
                .withShowText(false)
                .withIncludeQuietZone(true)
                .withLogo(logo)
                .build();

            try (FileOutputStream pngStream = new FileOutputStream(
                    Path.of(&amp;quot;qr-code.png&amp;quot;).toFile());
                 BarcodeGenerator generator = new BarcodeGenerator(options)) {
                // Export the QR Code to a PNG image.
                generator.export(&amp;quot;https://www.devexpress.com&amp;quot;, pngStream, DXImageFormat.getPng());
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;Evaluate the CTP&lt;/h2&gt;

&lt;p&gt;During the CTP period, all three DevExpress libraries are available on &lt;a href="https://central.sonatype.com/namespace/com.devexpress"&gt;Maven Central&lt;/a&gt;. Add  dependencies to a test project and evaluate our APIs against your app requirements.&lt;/p&gt;

&lt;p&gt;The CTP also includes DevExpress &lt;strong&gt;technical support&lt;/strong&gt;. Visit the &lt;a href="https://www.devexpress.com/products/java/office-pdf-file-api/"&gt;product page&lt;/a&gt; and follow links to the CTP license registration form. Once registered, you can submit tickets through the &lt;a href="https://supportcenter.devexpress.com/ticket/list"&gt;DevExpress Support Center&lt;/a&gt;. Select &lt;strong&gt;Office &amp;amp; PDF File API for Java&lt;/strong&gt; as the platform, then select the relevant product: Barcode Generation API, PDF Document API, or Presentation API.&lt;/p&gt;

&lt;p&gt;Registration also gives you access to a ZIP package with all library JAR files through the &lt;strong&gt;DevExpress Download Manager&lt;/strong&gt;. This option suits environments that use local dependencies instead of Maven Central.&lt;/p&gt;

&lt;p&gt;To get started, add DevExpress packages to a new project, run the three examples above, and see whether the model fits your pipeline.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Product page &amp;amp; CTP license registration: &lt;a href="https://www.devexpress.com/products/java/office-pdf-file-api/"&gt;DevExpress Office &amp;amp; PDF File API for Java&lt;/a&gt;
	&lt;/li&gt;
	&lt;li&gt;Documentation: &lt;a href="https://docs.devexpress.com/OfficeFileApiJava/405691/office-file-api"&gt;Get Started with Office &amp;amp; PDF File API for Java&lt;/a&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Demo projects: &lt;a href="https://github.com/DevExpress/demos-office-and-pdf-file-api-java"&gt;Demo repository on GitHub&lt;/a&gt;
	&lt;/li&gt;
&lt;/ul&gt;

&lt;div&gt;
	&lt;div class="Note"&gt;After our official commercial release, you can continue using the CTP version in existing projects at no cost. However, the CTP version will no longer be updated. To access official releases, annual updates, and technical support, you will have to upgrade to a commercial subscription (official release is set for 2027 - pricing has not been set). Should you have questions about the CTP, feel free to submit a support ticket via the DevExpress Support Center.&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;What&amp;#39;s Next&lt;/h2&gt;

&lt;p&gt;Our Office &amp;amp; PDF File API for Java CTP is just the first step. We are working towards feature parity with our File API libraries for .NET. &lt;/p&gt;

&lt;h3&gt;
   More Document APIs 
&lt;/h3&gt; 

&lt;p&gt;
    We expect to ship the following API libraries in future release cycles:
&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;&lt;strong&gt;Word Document API&lt;/strong&gt;: Create, edit, and export Word (DOCX) documents.&lt;/li&gt;
   &lt;li&gt;&lt;strong&gt;Spreadsheet API&lt;/strong&gt;: Read, calculate, and write Excel (XLSX) workbooks.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
    Extended PDF and PowerPoint Support
&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;PowerPoint Presentation API&lt;/strong&gt;: Chart API is in active development. With the Chart API, you will be able to create and modify native PowerPoint charts, update chart data, and preserve chart editability in Microsoft PowerPoint without conversion to images.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;PDF Document API&lt;/strong&gt;: We plan to add digital signature support (for PDF signing and electronic signature workflows).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
    Our plans, priorities, and timelines can change. Your feedback during the CTP will help us define future development objectives. Follow our &lt;a href="https://community.devexpress.com/Blogs/office/archive/2026/09/03/devexpress-office-amp-pdf-file-api-year-end-roadmap-v26-2.aspx"&gt;blog&lt;/a&gt; for roadmap updates and upcoming milestones.
&lt;/p&gt;</description>
      <pubDate>Mon, 07 Sep 2026 00:00:00 Z</pubDate>
      <dc:creator>Maria Nikulina (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388299</guid>
      <link>https://community.devexpress.com/Blogs/office/archive/2026/09/03/devexpress-office-amp-pdf-file-api-year-end-roadmap-v26-2.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.net">.net</category>
      <category domain="https://community.devexpress.com/Tags/Accessibility">Accessibility</category>
      <category domain="https://community.devexpress.com/Tags/java">java</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.2">v26.2</category>
      <category domain="https://community.devexpress.com/Tags/Word+Document+API">Word Document API</category>
      <title>DevExpress Office &amp; PDF File API — Year-End Roadmap (v26.2)</title>
      <description>&lt;p&gt;In this blog post, I&amp;#39;ll outline the &lt;a href="https://www.devexpress.com/products/net/office-file-api/"&gt;DevExpress Office &amp;amp; PDF File API&lt;/a&gt;&amp;nbsp;features and capabilities we expect to ship in our year-end release (v26.2 — December 2026). To discuss this roadmap in greater detail, or to share a business use case we have&amp;nbsp;yet to address, please submit your feedback through the DevExpress Support Center. We are 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.2&lt;/span&gt; — Will be available in our first v26.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 v26.2&lt;/span&gt; — Will be included in the final v26.2 release.&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
		&lt;p class="tags"&gt;
			&lt;span class="completed"&gt;Released in v26.2&lt;/span&gt; — Fully implemented and available.&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;h2 id="-net-11-support"&gt;.NET 11 Support&lt;/h2&gt;
&lt;p&gt;DevExpress Office &amp;amp; PDF File API libraries&amp;nbsp;will support .NET 11 (both v26.1 and v26.2)&amp;nbsp;following Microsoft&amp;#39;s official release.&lt;/p&gt;
&lt;h2&gt;Minimum Supported .NET and Visual Studio Versions&lt;/h2&gt;
&lt;div&gt;As you may know, .NET 8 and .NET 9 will&amp;nbsp;&lt;a href="https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core" target="_blank"&gt;reach end of support&lt;/a&gt; on November 10, 2026. We will therefore raise our minimum supported .NET version to .NET 10 once we release v26.2 in December.&amp;nbsp;The minimum .NET Framework version will remain 4.6.2.&lt;/div&gt;
&lt;div&gt;Visual Studio 2022 will be the minimum supported IDE version when v26.2 ships.&lt;/div&gt;
&lt;h3 id="project-converter"&gt;Automatically Re-target DevExpress-based Projects to .NET 10 and Update 3rd Party NuGet Packages&lt;/h3&gt;
&lt;p&gt;For .NET/.NET Core, we recommend using the &lt;a href="https://docs.devexpress.com/GeneralInformation/2529/updates/project-converter" target="_blank"&gt;DevExpress Project Converter&lt;/a&gt; to update all DevExpress-related and third-party project references, packages, and configurations automatically. See also a related &lt;a href="https://supportcenter.devexpress.com/ticket/details/t1333921/net-10-and-visual-studio-2026-are-now-minimum-supported-versions-for-net-net-core-based" target="_blank"&gt;Breaking Change&lt;/a&gt; notice.&lt;/p&gt;
&lt;img src="https://community.devexpress.com/blogs/xaf/PC_UpdateTFM2.png" alt="" style="width:854px;height:555px;"&gt;
&lt;h3&gt;Separate NuGet Packages for Different .NET Versions (.NET 10, .NET 11, etc.)&lt;/h3&gt;
&lt;p&gt;Today, third-party dependencies are automatically patched after a detected vulnerability (for example, a vulnerability in&amp;nbsp;&lt;a href="https://community.devexpress.com/Blogs/news/archive/2026/04/28/application-security-project-dependency-version-bumps-demystified-modern-security-realities-in-net-nuget-ecosystem.aspx" target="_blank"&gt;System.Security.Cryptography.Xml&lt;/a&gt;) only for the minimally supported .NET version (today it&amp;#39;s .NET 8). Today (with v26.1, v25.2, v25.1, v24.2), manual version pinning (&lt;a href="https://community.devexpress.com/Blogs/news/archive/2026/04/28/application-security-project-dependency-version-bumps-demystified-modern-security-realities-in-net-nuget-ecosystem.aspx" target="_blank"&gt;Solutions #1 or #2 from this article&lt;/a&gt;) may still be required for&amp;nbsp;.NET 9/10-based projects depending on their exact&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/dotnet/core/project-sdk/overview" target="_blank"&gt;TFM and project SDK&lt;/a&gt;.&amp;nbsp;We will&amp;nbsp;provide&amp;nbsp;.NET-specific dependency groups in DevExpress NuGet packages, which will simplify use of v26.2.&lt;/p&gt;
&lt;h2 style="color:#242424;"&gt;
	&lt;span&gt;Security — SBOMs and CRA Readiness&lt;/span&gt;
&lt;/h2&gt;
&lt;p&gt;
	&lt;span&gt;If you deliver software in the EU, the&amp;nbsp;&lt;/span&gt;
	&lt;a href="https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act" target="_blank"&gt;Cyber Resilience Act&lt;/a&gt; (CRA) will require a Software Bill of Materials (SBOM – an inventory of every component inside your solution) as part of your conformity documentation. The CRA and its associated regulatory regime will go into effect on December 2027. Each software application/solution manufacturer must fulfil SBOM-related obligations. DevExpress-authored SBOMs will help customers document/inventory DevExpress libraries used within a DevExpress-powered app.&lt;/p&gt;
&lt;div&gt;Most dependency scanners and SBOM generation tools read what a NuGet package declares (its dependencies on other NuGet packages) and stop there, which leaves two gaps we fill:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Components embedded inside a package&lt;/strong&gt;. Some DevExpress NuGet packages bundle fonts and third-party JavaScript libraries. Package metadata has no way to declare them, so a scanner never reports them — even though their licenses and vulnerabilities are as real as those of any declared dependency.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Developer dependencies&lt;/strong&gt;. Libraries we use to build our products never reach users, so we mark them with &lt;code class="language-cmdline"&gt;scope: &amp;quot;excluded&amp;quot;&lt;/code&gt;. We list these libraries regardless, because all vulnerabilities should be documented.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;We released a preview version of DevExpress-authored SBOMs in May 2026 (for our .NET NuGet packages). &lt;a href="https://community.devexpress.com/Blogs/news/archive/2026/05/07/sboms-for-cra-compliance-in-devexpress-based-apps-preview-now-open.aspx" target="_blank"&gt;SBOMs for CRA Compliance in DevExpress-powered Apps&lt;/a&gt; describes what the files contain and how to feed them into tools such as Dependency-Track, Trivy, and Grype. With v26.2, we expect to extend coverage to NPM packages and DevExpress VCL libraries, take our SBOMs out of preview and make them available to every customer.&lt;/div&gt;
&lt;h3&gt;WCF Dependency Will Be Removed from XPO and Printing Core Libraries&lt;/h3&gt;
&lt;p&gt;These core libraries currently include references to WCF (Windows Communication Foundation), a standard library with a well-documented history of vulnerability disclosures in its dependencies (&amp;quot;&lt;a href="https://community.devexpress.com/Blogs/news/archive/2026/04/28/application-security-project-dependency-version-bumps-demystified-modern-security-realities-in-net-nuget-ecosystem.aspx" target="_blank"&gt;thanks&amp;quot; to System.Security.Cryptography.Xml&lt;/a&gt;). We will remove these WCF references from DevExpress.Xpo core and DevExpress.Printing.Core libraries in v26.2. .NET Framework users will use the new &lt;strong&gt;DevExpress.Xpo.Services&lt;/strong&gt; and &lt;strong&gt;DevExpress.Printing.Remote&lt;/strong&gt; libraries instead (if you need this advanced and rarely used WCF functionality). The Project Converter will update project references automatically, so you should not encounter upgrade-related issues.&lt;/p&gt;
&lt;h2&gt;Product-Tailored AI Skill Updates&lt;/h2&gt;
&lt;p&gt;We expect to extend and update the &lt;a href="https://github.com/DevExpress/agent-skills" target="_blank"&gt;DevExpress AI Agent Skills repository&lt;/a&gt; based on user feedback (for multiple implementation tasks and AI coding assistants, such as GitHub Copilot, Claude Code, Cursor, and JetBrains AI Assistant).&lt;/p&gt;
&lt;p&gt;The repository includes folders for different DevExpress products. Navigate to the &lt;a href="https://github.com/DevExpress/agent-skills/tree/main/plugins/dx-office-file-api" target="_blank"&gt;dx-office-file-api&lt;/a&gt; directory to locate &lt;a href="https://docs.devexpress.com/OfficeFileAPI/406033/ai-assisted-development/ai-agent-skills" target="_blank"&gt;AI Agent Skills for Office/PDF File API&lt;/a&gt; coding assistants with built-in knowledge of Office/PDF File API libraries, their capabilities, related APIs, best practices, and code examples.&lt;/p&gt;
&lt;h2&gt;New Document Processing Libraries for .NET and Java&lt;/h2&gt;
&lt;p&gt;As you may already know, our new PDF and Presentation APIs are&amp;nbsp;object-based document processing libraries. In upcoming release cycles, we will extend the same object-based approach to our Word Processing and Spreadsheet&amp;nbsp;APIs. Both APIs will share the same design objectives: a modern, idiomatic object model built upon concrete, cloneable objects, with a consistent developer experience for both .NET and Java. Moving forward, we expect to design future APIs from&amp;nbsp;ground up for both platforms, so developers can use the same concepts and document workflows regardless of their technology stack.&lt;/p&gt;
&lt;h3&gt;New Word Processing Document API&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;.NET — In Development&lt;/span&gt;
    &lt;span class="not-started"&gt;Java — Planned&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;The new Word Processing Document API will replace the current interface-based API with a concrete, tree-like object model. You will work directly with document objects that can be created, configured, and composed before they are added to a document. Built upon&amp;nbsp;&lt;code&gt;DevExpress.RichEdit.Core&lt;/code&gt;, it will be backend-oriented and run cross-platform on .NET 10+.&lt;/div&gt;
&lt;div&gt;For the &lt;strong&gt;CTP&lt;/strong&gt; (Community Technology Preview) version, we plan to address core document-generation and editing workflows:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Generate a complete document (an invoice, report, technical documentation) from scratch&lt;/li&gt;
	&lt;li&gt;Examine and edit the document object tree, including text runs, paragraphs, shapes, fields, and other elements&lt;/li&gt;
	&lt;li&gt;Apply styles and formatting&lt;/li&gt;
	&lt;li&gt;Insert tables and images&lt;/li&gt;
	&lt;li&gt;Replace placeholders, calculate fields, and initiate mail merge&lt;/li&gt;
	&lt;li&gt;Search, edit, and format document elements using an advanced range-based API&lt;/li&gt;
	&lt;li&gt;Convert documents across different Word-like formats, including HTML&lt;/li&gt;
	&lt;li&gt;Export documents to PDF&lt;/li&gt;
	&lt;li&gt;Encrypt or protect a document&lt;/li&gt;
	&lt;li&gt;And more&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;We expect to deliver the same feature set for our Java-based APIs. The new library will ship as a dedicated NuGet/JAR package — independent of &lt;a href="https://www.nuget.org/packages/DevExpress.Document.Processor/"&gt;DevExpress.Document.Processor&lt;/a&gt;.&lt;/div&gt;
&lt;h3&gt;New Spreadsheet Document API&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;.NET — In Development&lt;/span&gt;
    &lt;span class="not-started"&gt;Java — Planned&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;The new Spreadsheet Document API will offer the same object-based design for workbook processing, built on the existing &lt;code&gt;DevExpress.Spreadsheet&lt;/code&gt; engine and calculation infrastructure. You will work with concrete objects through a clean, range-based model. The same API and feature set will be available across both .NET and Java.&lt;/div&gt;
&lt;div&gt;For the first release, we expect to support the following workbook usage scenarios:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Generate a workbook from scratch&lt;/li&gt;
	&lt;li&gt;Convert workbooks across formats, and split and merge workbooks&lt;/li&gt;
	&lt;li&gt;Edit worksheets, rows, columns, and cells&lt;/li&gt;
	&lt;li&gt;Apply styles and formatting&lt;/li&gt;
	&lt;li&gt;Insert tables, charts, and shapes&lt;/li&gt;
	&lt;li&gt;Read, write, and calculate formulas&lt;/li&gt;
	&lt;li&gt;Sort and filter data&lt;/li&gt;
	&lt;li&gt;Export to PDF&lt;/li&gt;
	&lt;li&gt;Encrypt or protect a workbook&lt;/li&gt;
	&lt;li&gt;And more&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Like our new Word Processing&amp;nbsp;API, this library will ship as a dedicated package.&lt;/div&gt;
&lt;h2&gt;Safer Document Processing API&lt;/h2&gt;
&lt;div&gt;&lt;span&gt;Server-based applications increasingly process documents from untrusted sources, be they user uploads, email attachments, or third-party integrations. To help mitigate these risks, we are adding Safer Document Processing APIs to our PDF and Presentation libraries so you can protect your application against malicious input before processing begins. Both APIs will follow the same model: enforce loading limits, strip active or dangerous content on import, and sanitize sensitive data on demand.&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;PDF Document API — Secure Loading and Sanitization&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Planned&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;The DevExpress PDF Document API will add a secure loading and sanitization layer for untrusted documents with three lines of defense:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Secure loading&lt;/strong&gt;&amp;nbsp;— reject dangerous documents before or during parsing. You will be able to set limits for file size, indirect-object count, and page count, and activate a strict loading mode that disables heuristic recovery for malformed PDFs.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Active content sanitization&lt;/strong&gt;&amp;nbsp;— remove executable and interactive content, including embedded JavaScript, document actions (&lt;code&gt;JavaScript&lt;/code&gt;, &lt;code&gt;Launch&lt;/code&gt;, &lt;code&gt;URI&lt;/code&gt;, &lt;code&gt;GoTo&lt;/code&gt;, and &lt;code&gt;SubmitForm&lt;/code&gt;), and embedded files or attachments.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Privacy and data-leakage prevention&lt;/strong&gt;&amp;nbsp;— sanitize external links and annotations, strip document metadata, and inspect document content before removal, so sanitization remains under your control.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Presentation API — Security and Privacy&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Coming in EAP v26.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;Our Presentation API will add its own Safer Document Processing API with three lines of defense against malicious or oversharing presentations:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Security loading limits&lt;/strong&gt;&amp;nbsp;— enforced during import to guard against decompression and resource-exhaustion attacks. You will be able to cap the slide count and the number of shapes per slide, along with file size and XML element count/nesting depth. When a limit is exceeded, the API will allow you to handle, log, or throw an error, based on your configuration.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Dangerous content removal&lt;/strong&gt;&amp;nbsp;— applied during import, before content is loaded into the document model. You will be able to strip external images, links, and chart-data references (removing these prevents tracking and IP leakage), macros, OLE objects, ActiveX controls, and custom XML parts.&lt;/li&gt;
	&lt;li&gt;
        &lt;strong&gt;Privacy sanitization&lt;/strong&gt;&amp;nbsp;— an &lt;code&gt;Inspect&lt;/code&gt;/&lt;code&gt;Sanitize&lt;/code&gt; API applied on demand to a loaded document. &lt;code&gt;Inspect&lt;/code&gt; detects sensitive content; &lt;code&gt;Sanitize&lt;/code&gt; removes or neutralizes it, covering document metadata (author, organization, description), hidden slides, unrecognizable text, speaker notes, and embedded objects.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;New PDF Document API&lt;/h2&gt;
&lt;div&gt;We continue to expand our new, dedicated PDF Document API (&lt;a href="https://docs.devexpress.com/OfficeFileAPI/405907/pdf-document-api-new/overview"&gt;DevExpress.Docs.Pdf&lt;/a&gt;) with the following features:&lt;/div&gt;
&lt;h3&gt;Bookmark API&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Coming in EAP v26.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;Our PDF Document API will introduce a Bookmark API for the document outline. You will be able to create, read, and modify the bookmark tree that forms a document&amp;#39;s navigation pane. Readers can then jump directly to sections in long or generated PDFs.&lt;/div&gt;
&lt;h3&gt;Incremental Updates &lt;span style="color:#404040;"&gt;—&amp;nbsp;&lt;/span&gt;Research Stage&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Progress&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We are researching broader incremental update support for the PDF Document API. Our goal is to save supported changes as revisions, without rewriting the entire file. We expect this approach to append only modified PDF objects and preserve the original bytes whenever possible.&lt;/div&gt;
&lt;div&gt;Our current research focuses on change tracking for PDF objects and collections, and we plan to expand coverage in phases. The following changes are in scope:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Update document metadata&lt;/li&gt;
	&lt;li&gt;Apply digital signatures&lt;/li&gt;
	&lt;li&gt;Change page size, boxes, or rotation&lt;/li&gt;
	&lt;li&gt;Add, modify, or remove attachments&lt;/li&gt;
	&lt;li&gt;Insert pages or overlay content on existing pages&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Final capabilities will depend on our ongoing research. If a particular change cannot be  written as an incremental update, the API will fall back to the standard full-save workflow.&lt;/div&gt;
&lt;h3&gt;Digital Signature API&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Development&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;Our PDF Document API will allow you to digitally sign PDF documents natively using your own certificates. The API will cover the full signature-related workflow:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Create&lt;/strong&gt;&amp;nbsp;signature fields and customize associated appearance, including signer name, reason, location, date, labels, fonts, colors, and images.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Sign&lt;/strong&gt;&amp;nbsp;documents with a digital signature and associated metadata such as reason, location, contact information, and signing time, together with a certification level and change permissions.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Inspect&lt;/strong&gt;&amp;nbsp;existing signatures, including the signer, reason, location, signing time, certification level, and permitted document changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;The API will choose the appropriate save mode automatically. When adding signatures, it will use incremental updates to preserve existing signatures whenever possible; otherwise, it will fall back to the standard full-save workflow.&lt;/div&gt;&lt;div&gt;You will also be able to add multiple signatures to a document, stored in their own signature field, and reuse the same certificate across signatures. A single signature field displayed on multiple pages will produce one signature that remains visible throughout the document.&lt;/div&gt;
&lt;h3&gt;Form Field and Annotation Flattening&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Coming in EAP v26.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;You will be able to flatten interactive form fields and annotations. Flattening renders associated visual appearance directly into page content. Values remain visible but are no longer editable — useful when you finalize a completed form for distribution or archival.&lt;/div&gt;
&lt;h3&gt;PDF/A and PDF/UA Compliant API&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Planned&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;Organizations subject to archival (PDF/A) or accessibility (PDF/UA) requirements will be able to produce compliant documents through a single, built-in API. We plan to address three compliance scenarios:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;strong&gt;Generate&lt;/strong&gt;&amp;nbsp;PDF/A- and PDF/UA-compliant documents directly during document generation.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Convert&lt;/strong&gt;&amp;nbsp;loaded or newly generated documents to a target compliance standard.&lt;/li&gt;
	&lt;li&gt;
		&lt;strong&gt;Validate&lt;/strong&gt;&amp;nbsp;compliance before distributing a document.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;OCR API&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 introduce a built-in OCR (Optical Character Recognition) for the PDF Document API so you can turn scanned documents and raster page content into searchable, extractable, and AI-ready text. Our scope centers on the core recognition workflow:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;Recognize text in scanned pages, page regions, and multi-page documents.&lt;/li&gt;
	&lt;li&gt;Generate a searchable PDF text layer while preserving original page graphics.&lt;/li&gt;
	&lt;li&gt;Extract recognized text as a structured model of blocks, lines, and words, each with its own text, bounds, and confidence level.&lt;/li&gt;
	&lt;li&gt;Preserve page reading order and text positioning.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Our API will allow you to build a recognition pipeline that feeds directly into existing PDF text, search, and accessibility workflows.&lt;/div&gt;
&lt;h2&gt;Presentation API&lt;/h2&gt;
&lt;h3&gt;Hyperlink Support&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="not-started"&gt;Planned&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;Our Presentation API will support hyperlinks for full compatibility with presentations created in Microsoft PowerPoint. You will be able to create, inspect, modify, and remove hyperlinks on both individual text runs and entire shapes (images, charts, text boxes, and more).&lt;/div&gt;
&lt;div&gt;Hyperlinks will support the following targets:&lt;/div&gt;
&lt;ul&gt;
	&lt;li&gt;External web URLs&lt;/li&gt;
	&lt;li&gt;Email addresses (&lt;code&gt;mailto:&lt;/code&gt;)&lt;/li&gt;
	&lt;li&gt;Local files&lt;/li&gt;
	&lt;li&gt;Other slides within the same presentation&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Existing hyperlinks will round-trip on import and export, and you will be able to inspect and edit every related property, including display text, target URI, and tooltips.&lt;/div&gt;
&lt;h2&gt;Word Document Processing&lt;/h2&gt;
&lt;h3&gt;PDF Export / Rendering — Floating-Point Layout Calculation&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Development&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;The document layout engine will calculate positions using floating-point coordinates (&lt;code&gt;System.Single&lt;/code&gt;, &lt;code&gt;RectangleF&lt;/code&gt;, &lt;code&gt;PointF&lt;/code&gt;, and &lt;code&gt;SizeF&lt;/code&gt;) instead of integers. The change will start with font metrics and extend to the layout model. This shift will enhance positioning precision and fidelity for rendered and exported documents (PDF and image formats). You can expect more precise text and object positioning, improved table and paragraph accuracy, and closer compatibility with Microsoft Word&amp;#39;s rendering engine.&lt;/div&gt;
&lt;div&gt;A feature toggle will allow you to switch between float-based and integer-based rendering, so existing output that relies on integer layout continues to work as expected.&lt;/div&gt;
&lt;h3&gt;PDF/UA-2 Export — PDF Structure Destinations &amp;amp; Field Tagging&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="completed"&gt;Coming in EAP v26.2&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We will enhance the accessibility and navigation throughb PDF/UA-2 files generated from Word documents. Our Word Processing tools will resolve navigational targets to PDF structure destinations. Supported targets include those that map to bookmarks — explicit bookmarks, Table of Contents entries, and cross-reference fields. As a result, links and navigation in the exported PDF will point to the correct structural location rather than a raw page coordinate. The export will also tag AcroForm fields for PDF/UA-2, so Word documents that use content controls will convert to accessible PDF forms.&lt;/div&gt;
&lt;h2&gt;Spreadsheet Processing&lt;/h2&gt;
&lt;h3&gt;ODS Format Support &lt;span style="color:#404040;"&gt;—&amp;nbsp;&lt;/span&gt;Research Stage&lt;/h3&gt;
&lt;p class="tags"&gt;
	&lt;span class="development"&gt;In Progress&lt;/span&gt;
&lt;/p&gt;
&lt;div&gt;We are working towards OpenDocument Spreadsheet (ODS) format support and investigating available opportunities.&amp;nbsp;Demand for OpenDocument Format (ODF) interoperability is rising sharply across the public sector. In March 2026, &lt;a href="https://blog.documentfoundation.org/blog/2026/03/20/big-news-germany-has-just-made-odf-mandatory/"&gt;Germany&amp;#39;s Deutschland-Stack mandated ODF&lt;/a&gt;&amp;nbsp;— alongside PDF/UA — as a standard document format for federal public administration at every level of government. Implementation is planned by 2028, and suppliers to the German public sector will need ODF support. Other EU member states building compatible infrastructure may follow.&lt;/div&gt;
&lt;div&gt;We are currently at the research stage, but we will evaluate how to load and save ODS documents while preserving worksheet structure, cell values and formulas, formatting, merged cells, named ranges, and document settings. We will prioritize complete implementation separately, based on the research results.&lt;/div&gt;
&lt;h2&gt;Your Feedback Counts&lt;/h2&gt;
&lt;div&gt;Have questions or suggestions about our year end DevExpress Office &amp;amp; PDF File API (.NET or Java)&amp;nbsp;roadmap? Please share your thoughts in the survey below&amp;nbsp;or submit a ticket through the DevExpress Support Center. Your feedback is always welcome.&lt;/div&gt;&lt;div data-survey-id="282dbb2d-2d06-4fd6-9737-29e5f34eff37" data-survey-auth-required="false"&gt;&lt;/div&gt;
&lt;h2 id="v242---What’s-New" style="color:#333333;font-weight:600;"&gt;v26.1&amp;nbsp;- What’s New&lt;/h2&gt;
&lt;p style="color:#333333;"&gt;And before I let you go - 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 our June release by responding to our online survey:&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#officefileapi" target="_blank" rel="noopener" style="color:#337ab7;"&gt;Explore Our Newest Features (v26.1)&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 03 Sep 2026 00:00:00 Z</pubDate>
      <dc:creator>Maria Nikulina (DevExpress)</dc:creator>
    </item>
    <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="completed"&gt;Released in v26.1&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="completed"&gt;Released in v26.2 (CTP)&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="completed"&gt;Released&amp;nbsp;in v26.1 (CTP)&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="completed"&gt;Released&amp;nbsp;in v26.1&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;Postponed&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="completed"&gt;Released&amp;nbsp;in v26.1&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="completed"&gt;Released&amp;nbsp;in 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;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="completed"&gt;Released&amp;nbsp;in v26.1&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;Released&amp;nbsp;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>
  </channel>
</rss>