Skip to content

Releases: GleamTech/DocumentUltimate

DocumentUltimate v7.8.7

23 Dec 23:00

Choose a tag to compare

Version 7.8.7 - December 23, 2025

  • Fixed: Attempt to fix bfcache (back-forward cache) issues on iOS Safari (and others) and apps using WebView.
    Reload iframe (recreate iframe) to prevent possible issues when restoring from bfcache.

  • Fixed: Loading bar position was not accurate on mobile mode (was shown in the middle of the toolbar)
    or when toolbarAtBottom option was used.

  • Improved: When DebugMode property set to true, do not display alert dialog
    for "same and repeating" global unhandled errors and unhandled promise rejections in browser window.
    For example "ResizeObserver loop..." errors can spam the alert dialog and make page unusable, so
    display error only if it's changed.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.8.5

23 Dec 22:48

Choose a tag to compare

Version 7.8.5 - December 18, 2025

  • Improved: Updated PDF.js library to 5.4.449 for stability and performance.

  • Fixed: Error when DocumentViewer is put into a cross-domain iframe:
    Uncaught (in promise) SecurityError: Failed to read a named property 'matchMedia' from 'Window'
    Also avoid Blocked autofocusing on a <button> element in a cross-origin subframe. browser warning
    by not using autofocus attribute.

  • Fixed: Comments sidebar and signature menus should use the same font-family and
    font-size should be relative to the UI e.g. when using large UI sizing.

  • Fixed: When converting/viewing Word Processing formats show Header/Footer even if page content is empty.

  • Added: New permission DocumentViewerPermissions.RunScripts which is included in default permission DocumentViewerPermissions.All.
    For security purpose, you can now disable execution of active content (JavaScript) by PDF files.

  • Fixed: CacheTrim.log was being deleted too often as file creation date was not reset and thus it was considered expired.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.8.0

21 Oct 10:47

Choose a tag to compare

Version 7.8.0 - October 20, 2025

  • Improved: Updated PDF.js library to 5.4.296 for stability and performance.

  • Added: Ability to add, edit, view comments in the document.
    New permission DocumentViewerPermissions.EditComments which is included in default permission DocumentViewerPermissions.All.

  • Improved: Ensure toolbar menus are clamped to the viewer window
    and repositioned when viewer window is scrolled, resized or menu is resized.

  • Improved: Ensure top toolbar menus are always over vertical toolbar menus.

  • Fixed: When creating multiple instances of viewer in the same page
    webviewerloaded event was being registered multiple times thus causing errors.
    This may be the root cause of unreplicated error: The `container` must be absolutely positioned..
    The viewer id was being unnecessarily incremented even if it did not exist in the document.
    Track viewer id internally as user may re-assign the window global variable.

  • Improved: Set minimum value limits for DocumentCache settings to prevent unnecessary Document cache info is not found
    errors due to user misconfiguration (e.g. thinking they can disable cache by setting zero
    or low values but cache is required for correct operation of DocumentViewer).
    The error happened due to very early trimming of the cache especially when multiple users.

    • MaxAge -> The minimum value is 10 minutes.
    • WaitTimeout -> The minimum value is 2 minutes.
    • AutoTrimInterval -> The minimum value is 5 minutes. The default value is now changed from 20 minutes to 15 minutes
      mainly because IIS AppPool default idle-timeout setting is 20 minutes so we ensure the auto-trim is run before app shutdown.
  • Improved: Overwrite existing CacheTrim.log if it was created before DocumentCache.MaxAge to avoid very large log files.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.7.6

02 Oct 14:37

Choose a tag to compare

Version 7.7.6 - October 2, 2025

  • Improved: AuthenticatedUser.Windows and AuthenticatedUser.Claims used for PhysicalLocation will now also work on
    ASP.NET Core (previously only worked on ASP.NET Classic).
    Also the enum members AuthenticatedUser.Windows and AuthenticatedUser.Claims are made obsolete.
    Use AuthenticatedUser.WebServer and AuthenticatedUser.ClaimsUpn instead.
    These new enum member names are more explanatory for their purpose.

  • Improved: Prevent log file name conflicts when multiple Apps sharing App_Data
    For example try file names GleamTech.log, GleamTech-AppName.log, GleamTech-AppName-z0yxh40r.log.
    Also provide environment details (app name, location, os) in GleamTech.log just like AssemblyResolver.log
    when initializing GleamTechConfiguration.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.7.5

26 Sep 22:30

Choose a tag to compare

Version 7.7.5 - September 26, 2025

  • Improved: The default value for GleamTechConfiguration.TemporaryFolder will now be [AppData Temporary Folder]
    if current user has read/write access, if not it will be [System Temporary Folder].

    This change is done so that developer is only concerned about write permissions to [AppData Temporary Folder]
    when publishing to production and not system temporary folders such as C:\Windows\Temp.
    This way, everything will be on the table i.e. all generated files (AssemblyResolver files, cache files, log files) will be in a single place.
    Files from old system temporary folder will be migrated/moved to this new location on application startup (if has write access).

    [AppData Temporary Folder] can be different for different environments:

    • For ASP.NET Core apps, the resolved result of ~/App_Data:
      • [AppBase]\wwwroot\App_Data\Temporary
    • For ASP.NET Classic apps, the resolved result of ~/App_Data:
      • [AppBase]\App_Data\Temporary
    • For Console or other non-web apps:
      • [AppBase]\AppData\Temporary

    [System Temporary Folder] can be different for different environments:

    • For ASP.NET Core apps, the result of Path.GetTempPath() which
      depends on "TMP", "TEMP" and "USERPROFILE" environment variables:
      • %WINDIR%\Temp\GleamTech\[AppName]-[AppHash]
      • %LOCALAPPDATA%\Temp\GleamTech\[AppName]-[AppHash]
        (if "Load User Profile" is enabled for AppPool in IIS)
    • For ASP.NET Classic apps:
      • %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\[AppName]\[AppHash]\GleamTech
      • %WINDIR%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\[AppName]\[AppHash]\GleamTech
        (if 32-bit AppPool)
      • %LOCALAPPDATA%\Temp\Temporary ASP.NET Files\vs\[AppHash]\GleamTech
        (when debugging in Visual Studio)
    • For Console or other non-web apps, the result of Path.GetTempPath() which
      depends on "TMP", "TEMP" and "USERPROFILE" environment variables:
      • %LOCALAPPDATA%\Temp\GleamTech\[AppName]-[AppHash]
      • %WINDIR%\Temp\GleamTech\[AppName]-[AppHash]
    • For apps running on unix-like platforms:
      • /tmp/GleamTech/[AppName]-[AppHash]
  • Improved: ImpersonationContext is improved to support multi-threads and async threads.
    Ensured ImpersonationInfo and LogonCredential do not lose access tokens (re-cache when necessary).

  • Improved: TemporaryFolder, FileCache and DbProvider will now do two tries for access, if first one fails,
    will try again by reverting possible impersonation.

  • Changed: Removed legacy GleamTechConfiguration.AlphaFileSystemEnabled property.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.7.2

11 Sep 00:39

Choose a tag to compare

Version 7.7.2 - September 10, 2025

  • Improved: Updated PDF.js library to 5.4.149 for stability and performance.

  • Improved: Created toggle-able sub-menus for scrollMode and spreadMode buttons
    to reduce crowdedness of the vertical toolbar.

  • Improved: Stability of Loader and some page events.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.7.1

01 Sep 22:57

Choose a tag to compare

Version 7.7.1 - September 1, 2025

  • Fixed: Enlarged toolbar height in older browsers like before Chrome 115 (2023).

  • Fixed: Wrong theme colors in older browsers (before Chrome 123 and iOS Safari 17.5).

  • Improved: Toolbar and Find dialog size on phones.
    Zoom buttons and selection are unnecessary on phones (user can pinch to zoom),
    especially for mobile mode (large UI sizing) so hide them to fix toolbar overflowing.
    Fixed Find dialog size on phones, the dialog contents should wrap.

  • Improved: Made Loader responsive so that components can be viewed better on phones and tablets
    (set width to 100 percent automatically on non-desktop devices).

  • Improved: Updated demo pages to use full viewport on non-desktop browser sizes (i.e. phone and tablet sizes).

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.7.0

27 Aug 00:30

Choose a tag to compare

Version 7.7.0 - August 26, 2025

  • Improved: Updated PDF.js library to 5.4.54 for stability and performance.

  • Fixed: Avoid The `container` must be absolutely positioned. error in revisited Viewer pages on iOS Safari.

  • Improved: Scrollbar colors are beautified and made consistent for all themes.

image image image
  • Fixed: Setting a specific theme like "classic-light" or "classic-dark" was no longer overriding user OS preference.

  • Improved: Stability and performance of Portable formats.

  • Improved: For text watermarks, if the text has any CJK characters (Chinese, Japanese, Korean) and no font is specified
    then by default use a CJK font instead of Helvetica font, so that the text watermark is displayed correctly, out of the box.

  • Improved: When using DocumentViewerMatchOptions.MatchAnyWord, now the quotation marks can be used to specify phrases
    inside a query that is set via DocumentViewerSearchOptions.Term.
    For example;

    • red "four wheels" petrol will match red or four wheels or petrol or red four wheels petrol
    • red ""four wheels"" petrol will match red or "four wheels" or petrol or red "four wheels" petrol

    documentViewer.SearchOptions.Term = "red \"four wheels\" petrol";
    documentViewer.SearchOptions.MatchOptions = MatchOptions.MatchAnyWord;
    
    //If you have an array of phrases, you can surround them with quotation marks 
    //and then join them with spaces to form a query:
    var phrases = new[] { "red", "four wheels", "petrol" };
    var query = string.Join(" ", phrases.Select(p => $"\"{p}\""));
    documentViewer.SearchOptions.Term = query;
    documentViewer.SearchOptions.MatchOptions = MatchOptions.MatchAnyWord;

    Note that two consecutive quotation marks "" can be used to escape, i.e. to search for a quotation mark literally as ".
    The same feature can also be used in the Viewer's Find dialog.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.6.6

04 Jul 07:11

Choose a tag to compare

Version 7.6.6 - July 3, 2025

  • Fixed: Conversion and viewing of some TIFF files. The output image was corrupted or had wrong colors especially for files with
    RGB Photometric and LZW compression. This happened because of mistreating BitsPerSample tag and for some files re-using Predictor tag.

    We will also try to add PageNumber, SubfileType, ImageDescription tags when outputting multi-paged TIFF files (PDF to TIFF).
    Currently seems to work for first page only but will revisit this in future release as it should work for all pages.

    When loading a TIFF file and then saving as a TIFF file, if the input compression format is not supported for encoding,
    Lzw compression will be used instead of no compression. For example, OldJpeg (Jpeg6, legacy) can be decoded but
    it can't be encoded so it will be encoded with Lzw.

  • Improved: Avoid memory pressure and errors for TIFF to PDF conversions (e.g. 100 pages TIFF file).
    For all image to PDF conversions, restrict image size to A4 paper bounds, to avoid unnecessary large PDF files,
    to have good enough size for printing.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

DocumentUltimate v7.6.5

06 May 22:01

Choose a tag to compare

Version 7.6.5 - May 6, 2025

  • Improved: Updated PDF.js library to 5.2.133 for stability and performance.

  • Improved: Viewer's progress bar below toolbar for download progress was not showing since DocumentUltimate v7.2.0
    (should be shown after preparing document is completed).
    Also fixed progress bar position when ToolbarAtBottom property is set, in that case progress bar should be above toolbar.

  • Improved: When ToolbarAtBottom property is set, prevent collapsing of viewer container (toolbar shifts up) when document is loading or closed.

  • Fixed: When DocumentViewerPermissions.OpenLocalPdf is denied, drag & drop of PDF files to the viewer should also be disabled.

  • Improved: Stability and performance of Portable formats.

  • Improved: Stability and performance of DICOM formats.

  • Added: DocumentViewerPermissions.EditAnnotations permission for ability to edit annotations of the document.
    So now, viewing and editing annotation permissions are separated, this is mainly done because
    ViewAnnotations permission can also effect displaying of the signatures in the document so most of the time you will want to keep it enabled.
    However now you can disable EditAnnotations without effecting display of the signatures and existing annotations.

    EditAnnotations will enable/disable tools like Add Signature, Highlight, Draw, Add Image (buttons on the vertical toolbar).
    If no ViewAnnotations permission but EditAnnotations permission, then you can add new annotations but not view and edit existing ones.
    EditAnnotations is included in default permission DocumentViewerPermissions.All.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+