[]
Document Solutions Image Viewer - v8.0.0 / DsImageViewer
Document Solutions Image Viewer (DsImageViewer) is a fast JavaScript based client-side Image Viewer that runs in all major browsers.
Example
var viewer = new DsImageViewer("#root");
↳ DsImageViewer
▸ 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
>
▸ showPanel(panelKey
, visible?
): void
Updates the panel visibility.
Name | Type |
---|---|
panelKey |
PanelHandle |
visible? |
boolean |
void
▸ updatePanel(panelKey
, settings
): void
Updates panel settings such as visibility, label or "enabled" status.
Name | Type |
---|---|
panelKey |
PanelHandle |
settings |
Partial <PanelSettings > |
void
▸ getPanelState(panelKey
): null
| PanelSettings
Gets the current panel state.
Name | Type |
---|---|
panelKey |
PanelHandle |
null
| PanelSettings
▸ layoutPanels(layout
): void
Orders and filters panel items. '*' indicates "the rest of panels". 'sep'/'separator' indicated menu separator.
Name | Type |
---|---|
layout |
string [] |
void
▸ bringPanelToFront(panelKey
): void
Deprecated
use expandPanel() instead
Name | Type |
---|---|
panelKey |
PanelHandle |
void
GcImageViewer.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
GcImageViewer.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
GcImageViewer.setActiveBottomPanel
▸ resetDocument(): Promise
<void
>
Resets report and cancel current session if any.
Promise
<void
>
▸ 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
>
▸ toggleFullscreen(fullscreen?
): void
Toggle full screen mode.
Name | Type |
---|---|
fullscreen? |
boolean |
void
GcImageViewer.toggleFullscreen
▸ toggleToolbar(show?
): void
Toggle toolbar visibility.
Name | Type |
---|---|
show? |
boolean |
void
▸ ensurePaintLayer(): IImageLayer
Create at least one image layer which will be used for painting.
GcImageViewer.ensurePaintLayer
▸ 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
GcImageViewer.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
GcImageViewer.addKeyboardListener
▸ removeKeyboardListener(uniqueKey
): void
Remove window keyboard listener.
Name | Type |
---|---|
uniqueKey |
string |
void
GcImageViewer.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
GcImageViewer.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. |
GcImageViewer.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
>
GcImageViewer.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
>
▸ dispose(): void
Use this method to close and release resources occupied by the DsImageViewer.
void
▸ showActivitySpinner(container?
): void
Show activity spinner.
Example
viewer.showActivitySpinner();
Name | Type |
---|---|
container? |
HTMLElement |
void
GcImageViewer.showActivitySpinner
▸ hideActivitySpinner(): void
Hide activity spinner.
Example
viewer.hideActivitySpinner();
void
GcImageViewer.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
GcImageViewer.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
>
GcImageViewer.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.
GcImageViewer.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
GcImageViewer.hostElement
• get
errorHandler(): ErrorHandler
Gets or sets callback that is invoked when an error occurs in the process of displaying the report
ErrorHandler
GcImageViewer.errorHandler
• get
onViewerStateChange(): EventFan
<ChangedEventArgs
>
Indicates the viewer state was changed.
EventFan
<ChangedEventArgs
>
GcImageViewer.onViewerStateChange
• get
toolbar(): Toolbar
Gets toolbar API
Toolbar
GcImageViewer.toolbar
• get
viewerState(): Model
Gets currently viewed document state
Model
GcImageViewer.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
GcImageViewer.zoom
• get
backgroundColor(): string
Gets or sets viewer background color, default value = 'transparent'
string
GcImageViewer.backgroundColor
• get
pageDecoration(): PageDecoration
Gets or sets page view decoration mode.
PageDecoration
GcImageViewer.pageDecoration
• get
isFullscreen(): boolean
Gets a value indicating full screen mode.
boolean
GcImageViewer.isFullscreen
• get
isToolbarHidden(): boolean
Gets a value indicating whether the toolbar is hidden.
boolean
GcImageViewer.isToolbarHidden
• get
imageFormat(): ImageFormatCode
Gets a format type of the opened image.
GcImageViewer.imageFormat
• get
hasImage(): boolean
Indicates whether the viewer has opened the image.
Example
var hasImageFlag = viewer.hasImage;
boolean
GcImageViewer.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 |
GcImageViewer.adaptiveNaturalSize
• get
actualSize(): Object
Gets the actual display size of the active image, including the active zoom value.
Object
Name | Type |
---|---|
width |
number |
height |
number |
GcImageViewer.actualSize
• 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').
GcImageViewer.language
• get
layers(): IImageLayer
[]
Image layers. Used for painting.
GcImageViewer.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 |
GcImageViewer.naturalSize
• get
openParameters(): undefined
| OpenParameters
The Open parameters that were used to open an image.
undefined
| OpenParameters
GcImageViewer.openParameters
• get
options(): Partial
<ViewerOptions
>
Viewer options
Partial
<ViewerOptions
>
GcImageViewer.options
• 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();
GcImageViewer.toolbarLayout
• get
undoStorage(): UndoStorage
Command based undo state storage.
Example
const isUndoInProgress = viewer.undoStorage.undoInProgress;
GcImageViewer.undoStorage
• get
hasUndo(): boolean
Gets a value indicating whether the image viewer can undo changes.
Example
if(viewer.hasUndo) {
viewer.undo();
}
boolean
GcImageViewer.hasUndo
• get
hasRedo(): boolean
Gets a value indicating whether the image viewer can redo changes.
Example
if(viewer.hasRedo) {
viewer.redo();
}
boolean
GcImageViewer.hasRedo
• get
undoIndex(): number
Gets current undo level index.
Example
alert("The current Undo level index is " + viewer.undoIndex);
number
GcImageViewer.undoIndex
• get
undoCount(): number
Gets total undo levels count.
Example
alert("Undo levels count is " + viewer.undoCount);
number
GcImageViewer.undoCount
• get
version(): string
Returns the current version of the DS Image viewer.
Example
alert("The DsImageViewer version is " + viewer.version);
string
GcImageViewer.version
• 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
GcImageViewer.frameIndex
• 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
GcImageViewer.framesCount
• get
eventBus(): IEventBus
Image viewer event bus.
Example
viewer.eventBus.on("after-open", function(args) {
console.log("Image opened.", args);
});
viewer.open('Test.png');
GcImageViewer.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
>
GcImageViewer.onAfterOpen
• 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
>
GcImageViewer.onBeforeOpen
• 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
>
GcImageViewer.onError
• get
onImagePaint(): EventFan
<ImagePaintEventArgs
>
The event raised when appearance image element changed.
EventFan
<ImagePaintEventArgs
>
GcImageViewer.onImagePaint
• 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
GcImageViewer.isAnimationStarted
• toggleSidebar: (show?
: boolean
) => void
▸ (show?
): void
Sets of toggles sidebar's panels visibility
Name | Type |
---|---|
show? |
boolean |
void
• new DsImageViewer(element
, options?
)
DsImageViewer constructor.
Name | Type | Description |
---|---|---|
element |
string | HTMLElement |
Required. HTML element or CSS selector. |
options |
Partial <ViewerOptions > |
Optional. Viewer options. |