GleamTech.DocumentUltimate 8.1.0

dotnet add package GleamTech.DocumentUltimate --version 8.1.0
                    
NuGet\Install-Package GleamTech.DocumentUltimate -Version 8.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="GleamTech.DocumentUltimate" Version="8.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GleamTech.DocumentUltimate" Version="8.1.0" />
                    
Directory.Packages.props
<PackageReference Include="GleamTech.DocumentUltimate" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add GleamTech.DocumentUltimate --version 8.1.0
                    
#r "nuget: GleamTech.DocumentUltimate, 8.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package GleamTech.DocumentUltimate@8.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=GleamTech.DocumentUltimate&version=8.1.0
                    
Install as a Cake Addin
#tool nuget:?package=GleamTech.DocumentUltimate&version=8.1.0
                    
Install as a Cake Tool

DocumentUltimate is an ASP.NET Document Viewer and a .NET Document Converter
which supports ASP.NET Core 5.0+, ASP.NET Core 2.1+, ASP.NET MVC 3.0+ and ASP.NET WebForms 4.7.2+ web applications/web sites.
DocumentUltimate can also be used for conversion between several document formats
with .NET 5.0+ or .NET Core 3.1 and .NET Framework 4.7.2+ console/desktop applications.


Features:

- Universal web document viewer which works on both desktop and mobile browsers.

- Crystal-clear zooming. High resolution rendering, preserving text and graphics (no rasterization) exactly as they are in the original.

- Fast document loading, the whole document is not loaded at once, document pages are loaded as you are about to view them.

- Search text within document. Navigate with bookmarks/outlines.

- Change page layout modes (e.g. single page or facing pages), rotate pages and view on full screen.

- Print, download original or download as PDF inside the viewer.

- Secure document viewing, copy protection (DRM). Viewed documents are encrypted so they are copy-protected out of the box. Ability to disable downloading the original document or replicating it via printing or selecting and copying text.

- Watermark document pages with text or image. Customize the watermarks with wide range of options e.g. position, size, rotation, opacity, color.

- Pre-higlight keywords in the document, e.g. if you launch the document viewer from a search results page, you can higlight the searched keywords.

- Self-contained conversion engine, no external dependencies, e.g. you don't need to install Microsoft Office on your server.

- Single managed DLL which works both on 32-bit and 64-bit for hassle-free development and deployment.

- Supports being used in desktop or console applications for converting between document formats. Only the document viewer is dependant on web applications.

Supported Formats:
- Portable Formats(.pdf, .xps, .oxps, .xpz)
- Word Processing Formats(.docx, .docm, .dotx, .dotm, .doc, .dot, .rtf, .odt, .ott)
- Spreadsheet Formats(.xlsx, .xlsm, .xltx, .xltm, .xlam, .xlsb, .xls, .xlt, .xml, .csv, .tsv, .dif, .ods, .ots)
- Presentation Formats(.pptx, .pptm, .potx, .potm, .ppsx, .ppsm, .ppt, .pps, .odp, .otp)
- Diagram Formats(.vsdx, .vsdm, .vstx, .vstm, .vssx, .vssm, .vdx, .vsx, .vtx, .vsd, .vss, .vst, .vdw)
- Project Management Formats(.mpp, .mpt, .mpx)
- Email Formats(.msg, .eml, .emlx)
- Ebook Formats(.epub, .mobi)
- Markup Formats(.html, .htm, .mht, .mhtml, .web)
- Text Formats(.txt)
- Cad Formats(.dwg, .dxf)
- Scanner Image Formats(.tif, .tiff, .djvu, .dcm)
- Vector Image Formats(.ps, .svg, .emf, .xaml)
- Raster Image Formats(.psd, .jpg, .jpeg, .jpe, .jfif, .jp2, .jpf, .jpx, .j2k, .j2c, .jpc, .jxr, .wdp, .hdp, .png, .gif, .webp, .bmp, .wmf, .dib)

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on GleamTech.DocumentUltimate:

Package Downloads
GleamTech.FileUltimate

FileUltimate is an ASP.NET File Manager and Uploader which supports ASP.NET Core 5.0+, ASP.NET Core 2.1+, ASP.NET MVC 3.0+ and ASP.NET WebForms 4.7.2+ web applications/web sites. Integrate a file manager into your ASP.NET application or site rapidly. - Browse and manage files with access control. - Accept files with the advanced upload functionality. - Offer a structured and neat download area. - Preview documents (70+ file formats, including PDF © Microsoft Office), images, audios and videos. Note: This package contains a fully working version of the product, however without a license key it will run in trial mode.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
8.1.0 81 4/24/2026
8.0.0 314 4/7/2026
7.8.7 2,678 12/23/2025
7.8.5 815 12/18/2025
7.8.0 2,811 10/21/2025
7.7.6 1,302 10/2/2025
7.7.5 1,006 9/26/2025
7.7.2 4,552 9/11/2025
7.7.1 1,157 9/1/2025
7.7.0 1,031 8/27/2025
7.6.6 7,266 7/3/2025
7.6.5 6,925 5/6/2025
7.6.1 5,257 4/25/2025
7.6.0 5,781 4/18/2025
7.5.9 5,322 4/15/2025
7.5.8 5,304 4/12/2025
7.5.6 8,078 4/2/2025
7.5.5 8,969 3/30/2025
7.5.0 5,060 3/17/2025
7.4.0 8,140 3/8/2025
Loading failed

## Version 8.1.0 - April 24, 2026

 - **Fixed:** The fix back in `Version 7.5.8 - April 11, 2025` for parsing `Referer` http header was not sufficient.
   This warning was occasionally recorded in server's Event Log:
   `This operation is not supported for a relative URI.`

 - **Improved:** Ensured stability of cookieless session feature for iframe with a cross-domain URL.
   This feature (`GleamTechWebConfiguration.AutoCookielessSessionEnabled`) was first added in `Version 5.8.1 - November 23, 2020`.

 - **Added:** `GleamTechWebConfiguration.PathBaseForSessionEnabled` property that specifies whether
   to use request PathBase (correct cased application virtual path) for session cookie and not default path `/`.
   The default value is `true` so it's active by default.

   The problem with ASP.NET Core session is, if for example you have 2 app instances on the same domain:
   1. First visit to `/MyApp1`, the session cookie is created and set (with cookie path `/`).
   2. Then visit to `/MyApp2`, the session cookie exists (with cookie path `/`)
      but this app cannot decrypt it because their key ring is not shared.
      This causes unnecessary `Error unprotecting the session cookie` warnings in server's Event Log.
      A new session cookie is still created but the problem is the logging in `CookieProtection.Unprotect()` on exception.
 
   In ASP.NET classic, session cookie path also defaults to `/` and not to the application virtual path,
   though this does not cause a warning/error, but you get a new empty session with the existing session cookie.

   So, the best solution is to use correct cased application virtual path as session cookie path when available
   and not the default path `/`, to isolate session of all app instances on the same domain, for example:

   ```
   ApplicationVirtualPath:      /DocumentUltimate/AspNetWebFormsCS               ❌ (IIS canonical casing)
   Request.Path:                /documentultimate/aspNetWebFormsCS/Page.aspx     ✔ (actual request casing)
   PathBase (correct cased):    /documentultimate/aspNetWebFormsCS
   ```

   Cookie paths are case-sensitive so when not using the default path `/`,
   we ensure PathBase used for cookie path is correct cased (cased same as the one user typed in address bar).

   However, if you want to share the session cookie across all app instances on the same domain,
   set this to `false` (default ASP.NET Session behavior).

 - **Improved:** Normally, to have Session cookie work properly for an ASP.NET Core app hosted in IIS,
   "Load User Profile" property should be set to true for application pool used for that app.
   However for convenience, we will now use `Keys` subfolder under `GleamTechConfiguration.TemporaryFolder`
   by default in `AddGleamTech()` if `KeyManagementOptions.XmlRepository` is not explicitly set
   and if app is not hosted in Azure Apps.
   This is because if keys can not be persisted to a writable directory, they are stored in-memory
   and when the process shuts down (or application pool is recycled), all generated keys are lost.
   As a result, these unnecessary warnings are recorded in server's Event Log:

   ```
   No XML encryptor configured. Key {guid} may be persisted to storage in unencrypted form.
 
   Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
 
   Using an in-memory repository. Keys will not be persisted to storage.

   The antiforgery token could not be decrypted.

   Error unprotecting the session cookie.

   The key {guid} was not found in the key ring.
   ```

   This way even if "Load User Profile" property is set to false, we will fix default ASP.NET behavior
   and avoid warnings spamming server's Event Log.