What's New in Document Solutions v8.2
We’re excited to share the new releases in Document Solutions v8.2! This update introduces new enhancements across our API products, along with the ability to apply AI to PDF processing programmatically. Additionally, DsPdfViewer has been updated with improved user interfaces, and DsImageViewer has a new text and object tool to quickly apply shapes to your images. Explore the highlights for each product below:
- Document Solutions for PDF (DsPdf)
- Document Solutions PDF Viewer (DsPdfViewer)
- Document Solutions for Excel (DsExcel)
- Document Solutions for Word (DsWord)
- Document Solutions for Image Viewer (DsImageViewer)
Ready to check out the release? Download Document Solutions today!
Document Solutions for PDF (DsPdf)
AI-Powered PDF Processing
The v8.2 release introduces a powerful new package, DsPdfAI, designed to showcase how Document Solutions for PDF can integrate with AI services to enhance PDF document workflows. This feature allows developers to leverage OpenAI or Azure OpenAI to generate summaries, create outline trees, and extract structured tables data directly from PDFs.
Supported Scenarios
Currently, DsPdfAI supports the following three AI-driven PDF processing capabilities:
- Generate a Document Summary - Quickly produce short or long summaries of any PDF document.
- Build a Document Outline Tree - Automatically generate a structured table of contents, complete with nested outline levels.
- Extract Tables from a Document - Use natural language prompts to identify and extract tabular data from a PDF.
These features are built on top of the OpenAI Chat API, with options to connect either via the official OpenAI .NET client library or the Azure OpenAI service.
API Overview
The new package introduces two main classes, both inheriting from a shared base class for core functionality:
- OpenAIDocumentAssistant - Connects to the OpenAI REST API using the official .NET client library.
- AzureOpenAIDocumentAssistant - Connects to Azure OpenAI services using the Azure.AI.OpenAI package.
Both derive from OpenAIDocumentAssistantBase, which implements the logic for extracting text via Page.GetText()
and sending content to the AI service for processing. The pageRange
parameter allows developers to limit requests to specific sections of a PDF.
Check out the code below to see how to implement the AI-powered features in DsPdf:
//
// --- Using OpenAI ---
//
var doc = new GcPdfDocument();
using var fs = File.OpenRead("myDocument.pdf");
doc.Load(fs);
var openAiToken = @"myToken";
var a = new OpenAIDocumentAssistant(openAiToken);
// Get the abstract for a PDF:
string @abstract = await a.GetAbstract(doc);
// Get the summary:
string summary = await a.GetSummary(doc);
// Build outlines:
await a.BuildOutlines(doc);
dos.Save("myDocumentWithOutlines.pdf");
// Get a GrapeCity.Documents.Pdf.AI.Table object from the PDF
// (2nd argument is the verbal request to AI describing the table to get):
var t = await a.GetTable(doc, "Get the \"Orders\" table from the document.");
Platforms Supported
- OpenAI REST API (via the official .NET client)
- Azure OpenAI Service (via the Azure.AI.OpenAI package)
Document Solutions PDF Viewer (DsPdfViewer)
DsPdfViewer.wasm Now Supports Export to SVG
In the v8.2 release, the WebAssembly implementation of DsPdfViewer now supports saving and exporting a loaded-in PDF file to SVG format, which will be included within a .zip file after exporting to SVG format.
Redesigned Toolbar and Navigation for Better Usability
With the v8.2 release, DsPdfViewer introduces a redesigned toolbar and navigation system to improve usability, consistency, and customization across viewing and editing modes. These changes ensure that the most frequently used actions are easier to access, while still allowing backward compatibility for users who prefer the legacy layout.
Toolbar Layout Improvements
The toolbar has been restructured to prioritize commonly used actions and streamline the interface. If the old layout/behavior is desired, it can be restored by following the commands shown in the CHANGELOG.md file included with the release.
- New Default Order
- View mode: Open → Save → Print → Search (moved Open to the front for faster access)
- Edit mode: Added Open before Save
- Removed from Default Toolbar
- Full Screen
- Themes
- Extract Table (moved to the side panel)
- Form Filler Button
- Now appears only in the mobile toolbar by default.
- Optimized for smaller screens like tablets and phones, where form-filling is common.
New Toolbar |
![]() |
Old Toolbar |
![]() |
Side Panel Enhancements
The side panel has been updated for a more intuitive workflow, with a new default order and icon updates.
- New Default Order:
Document List → Shared Documents → Search → Thumbnails → Outline → Structure Tree → Articles → Layers → Attachments → Extract Table - Updated Extract Table Icon - Now displays a table with a right-pointing arrow for clarity.
New Side Panel | Old Side Panel |
![]() |
![]() |
Navigation Controls & Keyboard Support
Navigation is now more compact, customizable, and accessible.
- Visual Updates
- Compact page navigation input
- First/Last page buttons hidden by default
- Improved page counter display logic
- Keyboard Shortcuts (when page input is focused):
- ← / → : Navigate pages (context-aware)
- ↑ / ↓ : Force page navigation
- PageUp / PageDown : Jump to previous/next page
- Home / End : Jump to first/last page
- Enter : Submit manual entry
- Escape : Cancel input
- Ctrl + Click on page arrows : Jump to first/last page
- New Semantic CSS Classes
.gc-btn.go-to-first .gc-btn.go-to-last .current-page-input .gcv-page-input__text
Overlapping Annotations Handling (Editor Mode)
When multiple annotations overlap, users now get clearer and more precise control:
- Primary Context Menu shows actions for the topmost annotation.
- Additional Annotations Section lists other overlapping annotations below a separator.
- Clicking any listed annotation switches focus for editing.
Context Menu & UI Standardization
To ensure consistency and professionalism, the interface now follows standardized formatting for all text elements:
- Buttons / Menu Items / Headers: Title Case
- Tooltips: Sentence case
- Labels: Title Case
- Descriptions / Status Text: Sentence case
- Placeholders: Sentence case
- Technical Terms: Original case (e.g., PDF, URL, iOS)
- Dynamic Values:
- In Actions: Title Case → “Add {{count}} Files”
- In Descriptions: Original case → “{{count}} files processed”
API Enhancements
Developers can customize navigation more precisely with new configuration options:
navigation: {
showFirstButton: false,
showLastButton: false,
showPageInput: true,
pageCounterFormat: "Page {{current}} of {{total}}",
emptyPageCounterFormat: "-- No Document --",
pageInputWidth: 100,
buttonSizing: "compact", // Options: 'standard', 'custom'
}
Help | Migration Guide to Old Layout | Release Notes (List of changes in the layout) | Demo
Document Solutions for Excel (DsExcel)
- Performance Optimizations
- Support the FitSelection option setting in Zoom for chart sheets
- AcceptErrors option in Custom Function
- Get or set alternative text for Shapes
- Eta-reduced lambda - a simplified way to use Lambda functions
- New Excel functions - GROUPBY, PIVOTBY, PERCENTOF, TRIMRANGE
- Add more options to ShapeType enum.
- Get sheet count and name of SpreadJS Worksheet tabs
- Evaluate2 function to return spilled values
- Support for Logging system in DsExcel Java
- SpreadJS integration features
Document Solutions for Word (DsWord)
Update TOA and TA Fields
DsWord now provides APIs to work with TOA (Table of Authorities) and TA (Table of Authorities Entry) fields, making it easier to build and manage legal or reference-heavy documents programmatically.
The new ToaFieldOptions
class enables developers to read and modify TOA field options, while the ToaPageNumberOptions
class controls how page numbers are displayed. A CitationCategoryMap
class has also been added to retrieve citation category names for more accurate categorization.
For TA fields, the new TaFieldOptions
class allows reading and writing of TA field options, which define the text and page numbers or ranges for individual TOA entries. Together, these enhancements give developers full control to generate, update, and customize TOA and TA fields in Word documents.
The following code shows how to update TOA and TA fields programmatically:
// create a table of authorities entry options
TaFieldOptions ta = new TaFieldOptions(doc);
// set the category for the table of authorities entry
ta.Category = 1;
ta.LongCitation.Text = "Anderson v. United States, 612 F.2d 1112 (9th Cir.1980)";
// create the invisible table of authorities entry field with specified options
p.AddComplexField(ta);
// add visible text to the same paragraph
p.AddRun(" Anderson v. United States");
// do the same for the other entries
ta.LongCitation.Text = "Duff v. Wilson, 69 Pa. 316 (Pa. 1871)";
p.AddComplexField(ta);
p.AddRun(", Duff v. Wilson");
ta.LongCitation.Text = "Sandstrom v. Larsen, 59 Haw. 491, 583 P.2d 971 (1978)";
p.AddComplexField(ta);
p.AddRun(" and Sandstrom v. Larsen.");
// create paragraph for the table of authorities field
p = doc.Body.AddParagraph();
// create options for the table of authorities field
ToaFieldOptions toa = new ToaFieldOptions(doc);
// set the category to include table of authorities entries
toa.EntriesCategory = 1;
// create table of authorities field with specified options
ComplexField field = p.AddComplexField(toa);
// build the table of authorities
field.Update();
Easily generate and customize legal references in Word documents with the new TOA and TA field APIs.
Get List of Template Tags Defined in the Document
DsWord now provides a new API to retrieve all template tags (placeholders such as {{CustomerName}}
) defined in a Data Template. Using the DataTemplate.GetTemplateTagInfos()
method, developers can obtain a list of TemplateTagInfo
objects that provide details such as the tag’s name, type, range, and text. This makes it easy to analyze or store placeholder information for reporting, data validation, or role-based permissions.
The following code showcases the new GetTemplateTagInfos()
method in the DataTemplateclass
:
// New method on the DataTemplate class:
public class DataTemplate
{
// Gets the list of templates in the current document.
List<TemplateTagInfo> GetTemplateTagInfos();
}
Quickly retrieve template tags to integrate with back-end systems or data workflows.
Access Template Tags and Locations in the Exported PDF
When exporting a DsWord document to PDF, you can now mark template tag locations for accessibility, validation, or review. By setting WordLayoutSettings.MarkTemplateTagAreas = true
, DsWord records the positions of template tags during layout. Developers can then use the PdfOutputSettings.MarkupTemplateTags
delegate to add custom markup, such as PDF annotations, to highlight these tags on each page.
The code below showcases how to accomplish such a scenario:
// To use the API when exporting the DOCX:
// - Set MarkTemplateTagAreas to true in WordLayoutSettings, and
// - Specify your custom MarkupTemplateTags method in PdfOutputSettings.
public class MarkTagsInPDF
{
public GcWordDocument CreateDocx()
{
var doc = new GcWordDocument();
doc.Load(Path.Combine("Resources", "WordDocs", "House_Rental_Template.docx"));
return doc;
}
public static WordLayoutSettings GetWordLayoutSettings()
{
return new WordLayoutSettings()
{
MarkTemplateTagAreas = true
};
}
// Custom PDF output settings include a MarkupTemplateTags method
// that adds markup annotations over Report/Data Template tags
// present in the original DOCX.
public static PdfOutputSettings GetPdfOutputSettings()
{
var settings = new PdfOutputSettings()
{
MarkupTemplateTags = (page, tags) =>
{
foreach (var tag in tags)
{
foreach (var rect in tag.Areas)
{
var hilight = new TextMarkupAnnotation
{
Area = [rect],
Color = Color.YellowGreen,
MarkupType = TextMarkupType.Highlight,
Opacity = 0.4f,
RichText = $"Tag Info:<br>Name: <b>{tag?.Info?.Name}</b><br>Text: <b>{tag?.Info?.Text}</b>",
};
page.Annotations.Add(hilight);
}
}
}
};
return settings;
}
}
Easily identify and highlight template tags in exported PDFs to support accessibility and review workflows.
Document Solutions Image Viewer (DsImageViewer)
Text and Object Tool
DsImageViewer now includes a new Text and Object tool on the main toolbar, enabling users to quickly insert and customize predefined objects such as shapes, text, and images. When selected, it opens a secondary toolbar for choosing object types and a properties panel where users can adjust settings for the selected object.
The secondary toolbar supports inserting Text boxes, Rectangles, Lines, Arrows, Ellipses, Brackets, and Images. Each object includes configurable properties such as font, size, color, opacity, line styles, rotation, and more. For example, lines support start and end cap styles like arrows, circles, diamonds, and stars, while images allow options such as border radius, fill color, and aspect ratio control.
The following code shows how to override the default layout of the objectTools
toolbar by specifying a custom set and order of tools:
viewer.addPlugin(new PaintToolsPlugin({ toolbarLayout: {
objectTools: ["Ellipse", "Rectangle", "Apply", "Cancel"]
}}));
Quickly add and customize visual elements in images using the new Text and Object tool in DsImageViewer.
Ready to check out the release? Download Document Solutions today!