Skip to main content Skip to footer

What's New in Document Solutions v7

We are thrilled to unveil the latest milestone in the evolution of our document management capabilities: the Document Solutions v7 releases. This transformative update comes with a host of innovative features designed to elevate your document processing experience. Let's explore the key highlights that define this release.

Important Information: A Shift from ‘GrapeCity Documents’ to Document Solutions

In tandem with our commitment to continuous improvement, GrapeCity Documents has rebranded to Document Solutions. This change extends to the APIs and controls within the Document Solutions suite. Below, you'll find the updated nomenclature:

We've made it easy to upgrade your existing packages to the new packages using the Documents Migration tool. This tool is included in the trial Downloads zip file found on the above product links. For the v7.0 release cycle, packages with the previous product and/or company names will be provided separately, ensuring access to the same v7 new feature updates. This approach is designed to facilitate a seamless transition for users.

It's important to emphasize that despite adopting new package names, only the package names are altered. The namespace and type names remain unchanged, eliminating the need for any immediate modifications in your C#/VB user codes.

Legacy packages can still be accessed on the follow pages or by contacting our support team:

Now, let's delve into the new features of the v7 release.

Ready to Check Out the Release? Download Document Solutions Today!

Key Highlights of v7 Release

Document Solutions for PDF (DsPdf)

New Caret Annotation

Introducing the Caret Annotation in DsPdf, a powerful tool for reviewing PDF documents. The CaretAnnotation class enables precise pointing out of missing content or necessary changes programmatically. This is especially required if you need to add a CaretAnnotation at several places in the document programmatically.

Example: The following code finds a particular text and adds a CaretAnnotation after the text.

using (FileStream fs = new FileStream(@"Wetlands.pdf", FileMode.Open, FileAccess.Read))
{
        GcPdfDocument doc = new GcPdfDocument();
        doc.Load(fs);

        var page = doc.Pages[0];
        var tm = page.GetTextMap();
        // insert the CaretAnnotation after "The Importance" text
        tm.FindText(new FindTextParams("The Importance", false, true), (fp_) =>
        {
                // r - bounds of the found text
                var r = fp_.Bounds[0].ToRect();
                // create the CaretAnnotation and add it to the page
                CaretAnnotation ca = new CaretAnnotation();
                ca.Page = page;
                // in this code annotation size is hardcoded, you can make a code
                // which will adjust size of the annotation depending on height of the found text fragment
                ca.Rect = new System.Drawing.RectangleF(r.Right - 4, r.Bottom - 8, 8, 8);
         });

         doc.Save(@"doc.pdf");
}

Caret Annotation in .NET PDF API

 Help | Demo

Custom Time-Stamps

In certain scenarios, a service may not be able to connect and return a required timestamp from the client due to security reasons. In these scenarios, a customized timestamp service may be required to send a valid timestamp token back to the client. The client then utilizes the timestamp token to sign the PDF file, ensuring compliance with various PAdES B-T/B-LT/B-LTA levels. In short, the requirement is to customize the generation of time-stamp tokens while signing a PDF document using the PDF API. You can now accomplish the same using DsPdf in v7. The new ITimeStampGenerator interface empowers users to generate personalized time-stamp tokens seamlessly by assigning them to the TimeStamp property of SignatureProperties and TimeStampProperties classes.

Example: The following code helps generate a signature with a customized time-stamp token.

// generate the signature with time-stamp token
X509Certificate2 crt = new X509Certificate2(@"User.pfx", "**");
using (FileStream fs = new FileStream(@"EmployeeTimeSheet.pdf", FileMode.Open))
{
        GcPdfDocument doc = new GcPdfDocument();
        doc.Load(fs);

        SignatureProperties sp = new SignatureProperties();
        sp.SignatureBuilder = new Pkcs7SignatureBuilder()
        {
                    CertificateChain = new X509Certificate2[] { crt },
        };
        sp.TimeStamp = new TimeStampGenerator()
        {
              ServerUrl = @"http://ts.ssl.com",
        };
        sp.SignatureField = doc.AcroForm.Fields[0];
        doc.Sign(sp, "signed.pdf");
}

Custom Time-stamps signatures in PDFs using .NET API

 Help

Document Solutions for Word (DsWord)

Picture Effects

In the ever-evolving landscape of document creation, the need for dynamic and visually appealing content is paramount. In response to the demand for versatile and customizable document elements, DsWord v7 introduces a robust set of features that allow users to apply a diverse range of effects to pictures. This expansion not only enhances the visual appeal of documents but also streamlines the process of incorporating Microsoft Word-supported picture effects through code. Using these effects, you can perform the following programmatically on images -

  • Change picture brightness and contrast
  • Recolor with preset
  • Change image color
  • Set transparent color
  • Overlay a specific color tint onto a picture
  • And much more

Following new API has been introduced -

  • RecolorType enum - Specifies the type of an image color change.
  • ImageEffectType enum - Specifies the image effect type.
  • UserColor class - Represents an extended color.
  • WebVideoProperties class - Represents the properties for displaying an online video to the user.
  • ImageEffect class - Represents a base class for image effects.
  • AlphaBiLevel class - Represents an Alpha bi-level effect.
  • AlphaCeiling class - Represents an alpha ceiling effect.
  • AlphaFloor class - Represents an alpha floor effect.
  • AlphaInverse class - Represents an alpha inverse effect.
  • AlphaModulation class - Represents an alpha modulate fixed effect.
  • AlphaModulationComplex class - Represents an alpha modulate complex effect.
  • AlphaReplace class - Represents an alpha replace effect.
  • BiLevel class - Represents a bi-level (black/white) effect.
  • ColorChange class - Represents a color change effect.
  • ColorReplacement class - Represents a solid color replacement effect.
  • Duotone class - Represents a duotone effect.
  • Grayscale class - Represents a gray scale effect.
  • HslEffect class - Represents a hue/saturation/luminance effect.
  • Luminance class - Represents a luminance effect.
  • Tint class - Represents a tint effect.
  • ImageEffectList class - Represents a list of image effects.
  • EmbeddedImageData class - Represents the embedded image data.
  • PicturePreset enum addition - Picture, slightly rotated counterclockwise, with white border.
  • New API additions and changes to -
    • ImageData class
    • Blur class
    • FillOverlay class

In the following example, an image is added to a Word document and is recolored to Grayscale using DsWord API’s Picture.ImageData.RecolorType enum.

 Programmatically Apply Picture effects in Word Docx using .NET API

Please have a look at the following resources to find more samples of applying the new effects on pictures.

Help | Demo

New CanAdd.. methods in content objects, sections, and Body classes

In the v7 release, you can also now use ‘CanAdd’ CanAdd(ContentObjectType) and CanAddContentControl(ContentControlType) for ContentObject, Section, and Body classes to check whether a content object can be added to the end of another content object without raising an exception. It makes it easier to determine this earlier while coding with DsWord so that the process of adding content objects at the right locations becomes easy without causing errors later.

Example: The following code checks whether a string needs to be added to a RichText control as a paragraph or as a run.

var doc = new GcWordDocument();
var p = doc.Body.Paragraphs.Add();
var cc = p.AddContentControl(ContentControlType.RichText).Content;
if (cc.CanAdd(typeof(Paragraph))) // returns false since the content control was created on inline level
   cc.AddParagraph("Rich text");
else
   cc.AddRun("Rich text");

Help 

Document Solutions PDF Viewer (DsPdfViewer)

Floating Search Bar

DsPdfViewer, included with Document Solutions for PDF, has been supporting many advanced features to work with PDF documents, including advanced search. Searching long documents with specific search terms or patterns is made easier with DsPdfViewer. DsPdfViewer’s search panel has many advanced search options and helps narrow down the scope of a search query.

In this release, DsPdfViewer introduces a Floating Text Search Bar, enhancing the search capabilities of the viewer. This feature allows users to search through documents seamlessly, providing a dynamic and user-friendly search experience. The Search icon is available by default in the toolbar of DsPdfViewer. Floating Text Search Bar is available by default in the toolbar of DsPdfViewer.

Usage:

  • Press Ctrl+F to open the floating text search bar.
  • Begin typing to initiate the search, with results displayed

Note: As you start typing, the search mechanism will automatically begin searching for matches within the document, highlighting or displaying results in real time as you type. This dynamic search process allows for immediate feedback and helps you quickly locate the relevant content you are looking for.

Floating Search Bar in JavaScript PDF Viewer Control

  • Navigate search results using the 'Previous' and 'Next' buttons.

 JS PDF Viewer Search Bar Buttons

  • Customize Search Preferences Note: Click on the 'Settings' button to open the search settings menu to customize and fine-tune your search preferences.

 JS PDF Viewer Search preferences

  • Close the floating search bar by either clicking the close button or pressing the ESC key when the search input is focused.

 Close Floating Search Bar in JS PDF Viewer Control

  • Apply through code

A new option, useFloatingSearchBar, has been introduced. When ‘true’, it enables the use of a floating search bar in place of the sidebar search panel. To use the sidebar search panel instead of the floating search bar, set the useFloatingSearchBar option to ‘false’.

Here is how you can disable the floating search bar option (revert to using the docked search panel):  

var viewer = new DsPdfViewer("#root", { useFloatingSearchBar: false });

 Help | Demo

Document Solutions for Excel (DsExcel)

We introduce the following new features with the v7 release. The features work in both .NET and Java with full parity.

  1. Enhancements - DsExcel Templates
    1. Maintain Image aspect ratio in DsExcel Templates
    2. Expand shape and pictures in pagination mode
  2. Export Excel to HTML with CSS Inline option
  3. Set the first page number to 'Auto' in the Page setup
  4. Support for async user-defined functions
  5. Enhancement for OptionButton controls grouping
  6. Support formatting of trendline equation in Charts (and on export)
  7. Export to PDF
    1. Support chart trendline equation 
    2. Support interactive Form controls
    3. Support exporting of Funnel Charts
  1. Export to CSV
    1. Specify columns to quote on exporting to CSV
  1. SpreadJS compatibility features
    1. Support for cell.altText property - Help .NET | Help Java | Demo .NET | Demo Java
    2. Support for IRange defaultValue - Help .NET | Help Java | Demo .NET | Demo Java
    3. Support for Mask style - Help .NET | Help Java | Demo .NET | Demo Java
    4. Support for the password in the protected sheet - Help .NET | Help Java | Demo .NET | Demo Java

View the full blog for more details

Document Solutions Image Viewer (DsImageViewer)

Select parts of the image, cut, copy, and paste

Experience a new level of precision in image editing with DsImageViewer's latest update, featuring an array of selection tools and the ability to cut, copy, and paste from images. This enhancement is designed to streamline the image editing process, making it both easier and faster to select specific regions and focus on particular elements within an image to perform detailed analyses.

Select areas of an image to cut, copy, and paste using a JavaScript Image Editor/Viewer

The Selection tool dropdown has been added to the secondary toolbar of the ‘Paint tools’ plugin.

Here are the following Selection tools added to the editor -

  1. Rectangular Marque Tool:
    • Ideal for making square and rectangular selections, this tool ensures accuracy in defining specific areas within the image.

 Rectangular Marque Tool in JS Image Viewer

  1. Lasso Tool (Free Selection):
    • Empowering creativity, the Lasso Tool allows you to draw freehand selections, giving you the flexibility to highlight intricate details or irregular shapes.

 Laso Tool in the JS Image Viewer

  1. Elliptical Marque Tool:
    • Perfect for creating round and elliptical selections, this tool adds a touch of sophistication to your editing capabilities.

 Circle Selection Tool JS Image Viewer/Editor control

  1. Polygonal Lasso Tool:
    • For more intricate selections, the Polygonal Lasso Tool lets you draw polygonal and jagged outlines, providing precise control over the chosen area.

 Polygonal Lasso Tool

Effortless Editing Workflow

Following the selection process, DsImageViewer equips you with a set of intuitive commands for seamless editing:

  1. Cut, Copy, and Paste:
    • Execute these fundamental actions within the editor using standard keyboard shortcuts: Ctrl + X, Ctrl + C, and Ctrl + V (or Cmd + X, Cmd + C, and Cmd + V on macOS). This functionality allows you to effortlessly move and duplicate selected portions of the image.
  2. Painting Inside a Selected Part:
    • Customize your brush settings, including size, hardness, and opacity, and select your preferred color to paint within the selected part of the image.

Help | Demo

Add brightness and contrast to your images

Image filters have become indispensable tools for elevating your photos and delivering a comprehensive editing experience. From social media feeds to news articles, magazines, and books, filtered images have become ubiquitous, enriching visual content across various platforms. In its latest iteration, DsImageViewer, included with Document Solutions for Imaging, introduces two powerful additions to its repertoire of filters: Brightness and Contrast. These filters help users enhance images, allowing for precise adjustments to highlight specific features and achieve the desired visual impact.

Brightness Filter: The Brightness filter is a versatile tool designed to modify the luminosity of an image by fine-tuning the intensity of each pixel's color channels. Operating within an 'Intensity' range from -100 to 100, this filter provides users with unparalleled control over their images. Setting the 'Intensity' to 0 preserves the image's original brightness, while positive values elevate brightness, imparting a lighter and more illuminated quality. Conversely, negative values dim the brightness, creating a captivating, darker aesthetic.

Contrast Filter: Complementing the Brightness filter, the Contrast filter is a game-changer in image editing. This filter enhances or diminishes the distinction between light and dark areas, infusing depth and impact into every element. The adjustment of contrast with a specified 'Intensity' level transforms the image's tonal range. Bright areas become more vibrant, while dark areas acquire a heightened intensity. Leveraging the 'Intensity' slider within a range of -100 to 100, users can tailor their contrast adjustments to achieve subtle enhancements or make pronounced alterations, aligning with their unique creative vision.

The Contrast filter operates by adjusting pixel values' intensity, fostering clearer separation between elements within the image. This sophisticated process ensures a refined and polished final result, regardless of whether you're aiming for nuanced enhancements or bold visual statements.

Refer to: How to add Image Filters plugin panel

Apply Filter

Help | Demo

Ready to Check Out the Release? Download Document Solutions Today!

Tags:

comments powered by Disqus