GleamTech.DocumentUltimate
8.1.0
dotnet add package GleamTech.DocumentUltimate --version 8.1.0
NuGet\Install-Package GleamTech.DocumentUltimate -Version 8.1.0
<PackageReference Include="GleamTech.DocumentUltimate" Version="8.1.0" />
<PackageVersion Include="GleamTech.DocumentUltimate" Version="8.1.0" />
<PackageReference Include="GleamTech.DocumentUltimate" />
paket add GleamTech.DocumentUltimate --version 8.1.0
#r "nuget: GleamTech.DocumentUltimate, 8.1.0"
#:package GleamTech.DocumentUltimate@8.1.0
#addin nuget:?package=GleamTech.DocumentUltimate&version=8.1.0
#tool nuget:?package=GleamTech.DocumentUltimate&version=8.1.0
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 | Versions 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. |
-
.NETFramework 4.7.2
- GleamTech.Common (>= 7.1.0)
-
.NETStandard 2.0
- GleamTech.Common (>= 7.1.0)
- System.Drawing.Common (>= 6.0.0)
- System.Security.Cryptography.Xml (>= 6.0.2)
- System.Text.Encoding.CodePages (>= 6.0.1)
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 |
## 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.