[]
Document Solutions Image Viewer - v8.0.0 / GcImageViewer
Document Solutions Image Viewer is a fast JavaScript based client-side Image Viewer that runs in all major browsers.
Note that DsImageViewer is the new name for GcImageViewer, with the same API.
During this transition period we are publishing both versions, but it is recommended that you switch to using DsImageViewer when possible.
Example
var viewer = new DsImageViewer("#root");
ReportViewer
↳ GcImageViewer
▸ Static
findControl(selector
): undefined
| GcImageViewer
Gets the viewer instance using the host element or host element selector
Example
var viewer = DsImageViewer.findControl("#root");
Name | Type |
---|---|
selector |
string | HTMLElement |
undefined
| GcImageViewer
▸ executeTask(task
, settings?
): Promise
<void
>
Starts long-running operation and displays progress window while operation is running.
Name | Type |
---|---|
task |
(callbacks : TaskCallbacks ) => Promise <void > |
settings? |
TaskSettings |
Promise
<void
>
ReportViewer.executeTask
▸ showPanel(panelKey
, visible?
): void
Updates the panel visibility.
Name | Type |
---|---|
panelKey |
PanelHandle |
visible? |
boolean |
void
ReportViewer.showPanel
▸ updatePanel(panelKey
, settings
): void
Updates panel settings such as visibility, label or "enabled" status.
Name | Type |
---|---|
panelKey |
PanelHandle |
settings |
Partial <PanelSettings > |
void
ReportViewer.updatePanel
▸ getPanelState(panelKey
): null
| PanelSettings
Gets the current panel state.
Name | Type |
---|---|
panelKey |
PanelHandle |
null
| PanelSettings
ReportViewer.getPanelState
▸ layoutPanels(layout
): void
Orders and filters panel items. '*' indicates "the rest of panels". 'sep'/'separator' indicated menu separator.
Name | Type |
---|---|
layout |
string [] |
void
ReportViewer.layoutPanels
▸ bringPanelToFront(panelKey
): void
Deprecated
use expandPanel() instead
Name | Type |
---|---|
panelKey |
PanelHandle |
void
ReportViewer.bringPanelToFront
▸ setActiveTopPanel(id
): void
Updates activeTopPanelId for to show/hide panel with setting.location = 'top' (id = null to hide panel)
Name | Type |
---|---|
id |
null | string |
void
ReportViewer.setActiveTopPanel
▸ setActiveBottomPanel(id
): void
Updates activeBottomPanelId for to show/hide panel with setting.location = 'bottom' (id = null to hide panel)
Name | Type |
---|---|
id |
null | string |
void
ReportViewer.setActiveBottomPanel
▸ resetDocument(): Promise
<void
>
Resets report and cancel current session if any.
Promise
<void
>
ReportViewer.resetDocument
▸ load(moniker
, token?
): Promise
<LoadResult
>
Loads the report (no UI), so caller has to process load result and report error if any.
Name | Type |
---|---|
moniker |
DocumentMoniker |
token? |
CancellationToken |
Promise
<LoadResult
>
ReportViewer.load
▸ toggleFullscreen(fullscreen?
): void
Toggle full screen mode.
Name | Type |
---|---|
fullscreen? |
boolean |
void
ReportViewer.toggleFullscreen
▸ toggleToolbar(show?
): void
Toggle toolbar visibility.
Name | Type |
---|---|
show? |
boolean |
void
ReportViewer.toggleToolbar
▸ ensurePaintLayer(): IImageLayer
Create at least one image layer which will be used for painting.
▸ removeLayer(layerOrIndex
): void
Remove and dispose image layer given by argument layerOrIndex.
Name | Type | Description |
---|---|---|
layerOrIndex |
string | number | IImageLayer |
Image layer or image layer index or image layer name. |
void
▸ removeLayers(): void
Remove and dispose all image layers.
void
▸ applyOptions(): void
Call this method in order to apply changed options.
Example
viewer.applyOptions();
void
▸ applyToolbarLayout(): void
Call this method in order to apply changes in @see:toolbarLayout.
Example
viewer.toolbarLayout.viewer.default = ["open", "save"];
viewer.applyToolbarLayout();
Example
var viewer = new DsImageViewer(document.querySelector("#viewer"));
var toolbar = viewer.toolbar;
var toolbarLayout = viewer.toolbarLayout;
toolbar.addItem({
key: 'custom-action',
icon: { type: "svg", content: '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path style="fill: #205F78;" d="M20.25 12l-2.25 2.25 2.25 2.25-3.75 3.75-2.25-2.25-2.25 2.25-2.25-2.25-2.25 2.25-3.75-3.75 2.25-2.25-2.25-2.25 2.25-2.25-2.25-2.25 3.75-3.75 2.25 2.25 2.25-2.25 2.25 2.25 2.25-2.25 3.75 3.75-2.25 2.25 2.25 2.25z"></path></svg>' },
title: 'Custom action',
checked: false, enabled: false,
action: function () {
alert("Implement your action here.");
},
onUpdate: function (args) {
return {
enabled: true,
checked: false,
title: 'Custom action title'
}
}
});
toolbarLayout.viewer.default.splice(0, 0, "custom-action");
viewer.applyToolbarLayout();
void
IImageViewer.applyToolbarLayout
▸ addPlugin(plugin
): boolean
Add plug-in instance which is used to add new functionality to the DsImageViewer.
Example
var viewer = new DsImageViewer("#root");
var rotationPlugin = new RotationPlugin();
viewer.addPlugin(rotationPlugin);
Name | Type |
---|---|
plugin |
IViewerPlugin |
boolean
▸ addKeyboardListener(uniqueKey
, handler
): void
Add window keyboard listener.
Name | Type |
---|---|
uniqueKey |
string |
handler |
WindowKeyboardListener |
void
IImageViewer.addKeyboardListener
▸ removeKeyboardListener(uniqueKey
): void
Remove window keyboard listener.
Name | Type |
---|---|
uniqueKey |
string |
void
IImageViewer.removeKeyboardListener
▸ configurePluginMainToolbar(pos
, buttonsToInsert
): void
Used preliminarily by the plugin developers to configure the main toolbar layout.
Example
// Apply a custom layout to insert "zoomIn" and "zoomOut" buttons at position 2 for the "PaintTools" plugin.
viewer.configurePluginMainToolbar(2, ["zoomIn", "zoomOut"]);
Name | Type | Description |
---|---|---|
pos |
undefined | number | boolean |
The position where the buttons should be inserted. Use false or -1 to skip insertion. Undefined means the position will be determined automatically. |
buttonsToInsert |
string [] |
An array of button keys to be inserted. |
void
void
IImageViewer.configurePluginMainToolbar
▸ getEventCanvasPoint(event
): PointLocation
Retrieves the point location from the pointer event provided by the 'event' parameter. The returned point is relative to the active canvas element
Name | Type | Description |
---|---|---|
event |
PointerEvent | MouseEvent |
DOM Pointer or Mouse event object. |
IImageViewer.getEventCanvasPoint
▸ dataUrlToImageData(dataUrl
, destinationSize?
): Promise
<ImageData
>
Load image data using given data url.
Name | Type |
---|---|
dataUrl |
string |
destinationSize? |
Object |
destinationSize.width |
number |
destinationSize.height |
number |
Promise
<ImageData
>
IImageViewer.dataUrlToImageData
▸ confirm(confirmationText?
, level?
, title?
, buttons?
): Promise
<boolean
| ConfirmButton
>
Display confirmation dialog.
Example
const confirmResult = await viewer.confirm("Apply changes?", "info", "Confirm action", ["Yes", "No", "Cancel"]);
if (confirmResult === "Yes") {
// put your code here
} else if (confirmResult === "No") {
// put your code here
} else {
// put your code here
}
Name | Type |
---|---|
confirmationText? |
string | Element |
level? |
"error" | "info" | "warning" |
title? |
string |
buttons? |
ConfirmButton [] |
Promise
<boolean
| ConfirmButton
>
▸ removePlugin(pluginId
): void
Remove plug-in instance from the DsImageViewer.
Example
var viewer = new DsImageViewer("#root");
var rotationPlugin = new RotationPlugin();
viewer.addPlugin(rotationPlugin);
viewer.removePlugin(rotationPlugin.id);
Name | Type | Description |
---|---|---|
pluginId |
string | IViewerPlugin |
Plugin id or plugin instance. |
void
▸ showAbout(): void
Show about dialog.
void
▸ findPlugin(pluginId
): null
| IViewerPlugin
Finds a viewer plugin by its id.
Example
// find imageFilters plugin:
var imageFilters = viewer.findPlugin("imageFilters");
// find pageTools plugin:
var pageTools = viewer.findPlugin("pageTools");
Name | Type |
---|---|
pluginId |
string |
null
| IViewerPlugin
▸ removePlugins(): void
Remove all plug-ins.
Example
viewer.removePlugins();
void
▸ clearUndo(): void
Clear undo storage.
void
▸ executeCommand(command
): Promise
<void
>
Execute a new command.
Name | Type | Description |
---|---|---|
command |
UndoCommandSupport |
Instance of a CommandBase. |
Promise
<void
>
▸ newImage(options?
): Promise
<any
>
Create new empty image.
Example
await viewer.newImage({ width: 300, height: 300, fileName: "myImage.png" });
Name | Type |
---|---|
options? |
{ width? : number ; height? : number } & OpenParameters |
Promise
<any
>
▸ open(file?
, openParameters?
): Promise
<any
>
Open Image document.
Example
viewer.open("Images/HelloWorld.png");
Name | Type | Description |
---|---|---|
file? |
any |
URL to Image document(string) or binary data(Typed array - Uint8Array). |
openParameters? |
ImageFormatCode | ImageFormatName | OpenParameters |
Loading parameters object. |
Promise
<any
>
ReportViewer.open
▸ dispose(): void
Use this method to close and release resources occupied by the DsImageViewer.
void
ReportViewer.dispose
▸ showActivitySpinner(container?
): void
Show activity spinner.
Example
viewer.showActivitySpinner();
Name | Type |
---|---|
container? |
HTMLElement |
void
IImageViewer.showActivitySpinner
▸ hideActivitySpinner(): void
Hide activity spinner.
Example
viewer.hideActivitySpinner();
void
IImageViewer.hideActivitySpinner
▸ startAnimation(): void
Start GIF animation.
Example
DsImageViewer.findControl("#root").startAnimation();
void
▸ stopAnimation(): void
Stop GIF animation. *
Example
void
▸ toggleAnimation(): void
Toggle GIF animation.
Example
DsImageViewer.findControl("#root").toggleAnimation();
void
▸ undo(): Promise
<void
>
Undo changes.
Example
if(viewer.hasUndo) {
viewer.undo();
}
Promise
<void
>
▸ redo(): Promise
<void
>
Redo changes.
Example
if(viewer.hasRedo) {
viewer.redo();
}
Promise
<void
>
▸ getEvent(eventName
): EventFan
<any
>
Get event object.
Example
viewer.getEvent("CustomEvent").register(function(args) {
console.log(args);
});
Name | Type |
---|---|
eventName |
EventName |
EventFan
<any
>
▸ triggerEvent(eventName
, args?
): void
Trigger event.
Example
// Listen CustomEvent:
viewer.getEvent("CustomEvent").register(function(args) {
console.log(args);
});
// Trigger CustomEvent:
viewer.triggerEvent("CustomEvent", { arg1: 1, arg2: 2});
Name | Type |
---|---|
eventName |
EventName |
args? |
any |
void
▸ getOriginalImageDataUrl(): string
Get unmodified current image data url.
string
IImageViewer.getOriginalImageDataUrl
▸ getImageDataUrl(): string
Get current image data url.
string
▸ setImageDataUrl(dataUrl
): Promise
<void
>
Modify current image data url.
Name | Type |
---|---|
dataUrl |
any |
Promise
<void
>
▸ showSecondToolbar(toolbarKey
): Promise
<void
>
Displays a second toolbar specified by the toolbarKey argument.
Example
// Show the page tools toolbar
viewer.showSecondToolbar("page-tools");
Name | Type | Description |
---|---|---|
toolbarKey |
SecondToolbarType |
The key identifying the specific second toolbar to show. |
Promise
<void
>
IImageViewer.showSecondToolbar
▸ hideSecondToolbar(toolbarKey?
): Promise
<void
>
Hides the second toolbar. This method deactivates any active editor mode associated with the second toolbar and then hides the toolbar itself.
Example
// Hide the second toolbar
viewer.hideSecondToolbar();
Example
// Hide a specific second toolbar by passing its key
viewer.hideSecondToolbar("page-tools");
Name | Type | Description |
---|---|---|
toolbarKey? |
SecondToolbarType |
Optional. The key identifying the specific second toolbar to hide. If provided, only hides the specified toolbar if it exists. |
Promise
<void
>
A Promise that resolves once the second toolbar is successfully hidden.
IImageViewer.hideSecondToolbar
▸ openLocalFile(): any
Show the file open dialog where the user can select the Image file.
Example
viewer.openLocalFile();
any
▸ download(fileName?
, original?
): void
Downloads the Image document loaded in the Viewer to the local disk.
Deprecated
Deprecated since v1.2.0-a6 in favor of the save
method.
Name | Type | Description |
---|---|---|
fileName? |
string |
the destination file name. |
original? |
boolean |
Flag indicating whether to use the original image for save. Defaults to false . |
void
▸ save(options?
, original?
): void
Saves the Image document loaded in the Viewer to the local disk.
Example
// Example: Save the modified image without using specific options.
const viewer = DsImageViewer.findControl("#root");
viewer.save();
Example
// Example: Save the modified image as "image.png".
const viewer = DsImageViewer.findControl("#root");
viewer.save({ fileName: "image.png" });
Example
// Example: Download the original version of the image as "original_image.jpg".
const viewer = DsImageViewer.findControl("#root");
viewer.save({ fileName: "original_image.jpg", original: true });
Example
// Example: Save the modified image in PNG format.
const viewer = DsImageViewer.findControl("#root");
viewer.save({ convertToFormat: "image/png" });
Example
// Example: Save the modified image with a custom file name and in JPEG format.
const viewer = DsImageViewer.findControl("#root");
viewer.save({ fileName: "custom_name", convertToFormat: "image/jpeg" });
Name | Type | Description |
---|---|---|
options? |
string | SaveOptions |
The save options, including the destination file name and other settings. |
original? |
boolean |
Flag indicating whether to use the initial version of the image for save. Defaults to false . |
void
▸ showMessage(message
, details?
, severity?
): void
Shows the message for the user.
Name | Type | Default value |
---|---|---|
message |
string |
undefined |
details |
string |
"" |
severity |
"error" | "warn" | "info" | "debug" |
"info" |
void
• get
hostElement(): Element
Gets the main window's host element
Element
IImageViewer.hostElement
ReportViewer.hostElement
• get
errorHandler(): ErrorHandler
Gets or sets callback that is invoked when an error occurs in the process of displaying the report
ErrorHandler
ReportViewer.errorHandler
• get
onViewerStateChange(): EventFan
<ChangedEventArgs
>
Indicates the viewer state was changed.
EventFan
<ChangedEventArgs
>
ReportViewer.onViewerStateChange
• get
toolbar(): Toolbar
Gets toolbar API
Toolbar
IImageViewer.toolbar
ReportViewer.toolbar
• get
viewerState(): Model
Gets currently viewed document state
Model
IImageViewer.viewerState
ReportViewer.viewerState
• get
zoom(): ZoomSettings
Zoom settings.
Example
// Set zoom to 50%.
viewer.zoom = { mode: 0, factor: 0.5 };
Example
// Zoom mode - fit image width
viewer.zoom = { mode: 1 };
Example
// Zoom mode - fit whole image
viewer.zoom = { mode: 2 };
ZoomSettings
ReportViewer.zoom
• get
backgroundColor(): string
Gets or sets viewer background color, default value = 'transparent'
string
ReportViewer.backgroundColor
• get
pageDecoration(): PageDecoration
Gets or sets page view decoration mode.
PageDecoration
ReportViewer.pageDecoration
• get
isFullscreen(): boolean
Gets a value indicating full screen mode.
boolean
IImageViewer.isFullscreen
ReportViewer.isFullscreen
• get
isToolbarHidden(): boolean
Gets a value indicating whether the toolbar is hidden.
boolean
IImageViewer.isToolbarHidden
ReportViewer.isToolbarHidden
• get
imageFormat(): ImageFormatCode
Gets a format type of the opened image.
IImageViewer.imageFormat
• get
hasImage(): boolean
Indicates whether the viewer has opened the image.
Example
var hasImageFlag = viewer.hasImage;
boolean
IImageViewer.hasImage
• get
adaptiveNaturalSize(): Object
Gets the active image DPI adaptive natural size. This is the image size that will be used to display the image at 100%. The adaptiveNaturalSize property is used for the actual size calculations.
Object
Name | Type |
---|---|
width |
number |
height |
number |
• get
actualSize(): Object
Gets the actual display size of the active image, including the active zoom value.
Object
Name | Type |
---|---|
width |
number |
height |
number |
• get
language(): string
language - A property that retrieves the standardized language key based on the provided language option.
The language key is determined by the options.language
setting.
string
Standardized language key (e.g., 'en', 'ja').
• get
layers(): IImageLayer
[]
Image layers. Used for painting.
IImageViewer.layers
• get
naturalSize(): Object
Gets the active image natural size. The natural size is the image's width/height if drawn with nothing constraining its width/height, this is the number of CSS pixels wide the image will be.
Object
Name | Type |
---|---|
width |
number |
height |
number |
IImageViewer.naturalSize
• get
openParameters(): undefined
| OpenParameters
The Open parameters that were used to open an image.
undefined
| OpenParameters
• get
options(): Partial
<ViewerOptions
>
Viewer options
Partial
<ViewerOptions
>
• get
toolbarLayout(): ImageToolbarLayout
Defines the layout of the toolbar.
Description
The full list of the viewer specific toolbar items:
'open', '$navigation', 'navigation-auto', '$split', 'zoom', '$fullscreen', 'save', 'about'
Example
// Customize the toolbar layout:
viewer.toolbarLayout.viewer.default = ["open", "$zoom", "$fullscreen", "save", "print", "about"];
viewer.applyToolbarLayout();
• get
undoStorage(): UndoStorage
Command based undo state storage.
Example
const isUndoInProgress = viewer.undoStorage.undoInProgress;
IImageViewer.undoStorage
• get
hasUndo(): boolean
Gets a value indicating whether the image viewer can undo changes.
Example
if(viewer.hasUndo) {
viewer.undo();
}
boolean
• get
hasRedo(): boolean
Gets a value indicating whether the image viewer can redo changes.
Example
if(viewer.hasRedo) {
viewer.redo();
}
boolean
• get
undoIndex(): number
Gets current undo level index.
Example
alert("The current Undo level index is " + viewer.undoIndex);
number
• get
undoCount(): number
Gets total undo levels count.
Example
alert("Undo levels count is " + viewer.undoCount);
number
• get
version(): string
Returns the current version of the DS Image viewer.
Example
alert("The DsImageViewer version is " + viewer.version);
string
• get
frameIndex(): number
Gets or sets the active frame index. This is applicable for multi-frame images such as TIFF and ICO.
When setting this value, it will also be used as the initial frame index when opening a new image.
Example
var viewer = new DsImageViewer('#root');
viewer.frameIndex = 9;
viewer.open('Test.ico');
number
• get
framesCount(): number
Gets total frames count for the active image. Applicable for TIFF, ICO images.
Example
var viewer = new DsImageViewer('#root');
viewer.onAfterOpen.register(function() {
alert("The image opened. Total number of frames: " + viewer.framesCount);
});
viewer.open('Test.png');
number
• get
eventBus(): IEventBus
Image viewer event bus.
Example
viewer.eventBus.on("after-open", function(args) {
console.log("Image opened.", args);
});
viewer.open('Test.png');
IImageViewer.eventBus
• get
onAfterOpen(): EventFan
<EventArgs
>
The event raised when the user changes the viewer theme.
Example
var viewer = new DsImageViewer('#root');
viewer.onAfterOpen.register(function() {
alert("The image opened.");
});
viewer.open('Test.png');
EventFan
<EventArgs
>
• get
onBeforeOpen(): EventFan
<BeforeOpenEventArgs
>
Occurs immediately before the document opens.
Example
var viewer = new DsImageViewer('#root');
viewer.onBeforeOpen.register(function(args) {
alert("A new image will be opened,\n payload type(binary or URL): " + args.type +",\n payload(bytes or string): " + args.payload);
});
viewer.open('Test.png');
EventFan
<BeforeOpenEventArgs
>
• get
onError(): EventFan
<ErrorEventArgs
>
The event indicating error.
Example
function handleError(args) {
console.error(args);
}
var viewer = new DsImageViewer('#root');
viewer.onError.register(handleError);
viewer.open('Test.png');
EventFan
<ErrorEventArgs
>
• get
onImagePaint(): EventFan
<ImagePaintEventArgs
>
The event raised when appearance image element changed.
EventFan
<ImagePaintEventArgs
>
• get
isAnimationStarted(): boolean
Gets a value indicating whether the image animation has started.
Example
// Toggle image animation:
const viewer = DsImageViewer.findControl("#root");
if(viewer.isAnimationStarted) {
viewer.stopAnimation();
} else {
viewer.startAnimation();
}
boolean
• toggleSidebar: (show?
: boolean
) => void
▸ (show?
): void
Sets of toggles sidebar's panels visibility
Name | Type |
---|---|
show? |
boolean |
void
ReportViewer.toggleSidebar
• new GcImageViewer(element
, options?
)
DsImageViewer constructor.
Name | Type | Description |
---|---|---|
element |
string | HTMLElement |
Required. HTML element or CSS selector. |
options |
Partial <ViewerOptions > |
Optional. Viewer options. |
ReportViewer.constructor