Skip to content

Commit 0013e63

Browse files
update to Document-Viewer-Javascript 3.1
1 parent b75fa17 commit 0013e63

10 files changed

Lines changed: 125 additions & 37 deletions

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@
1212
- [Adding the Dependency](#adding-the-dependency)
1313
- [Creating HelloWorld](#creating-helloworld)
1414
- [Documentation](#documentation)
15-
- [Features](#features)
1615
- [Contact Us](#contact-us)
1716
- [License Agreement](#license-agreement)
1817
- [Changelog](#changelog)
1918

2019
## Introduction
2120

22-
[Dynamsoft Document Viewer (DDV)](https://www.dynamsoft.com/document-viewer/docs/introduction/index.html) is a browser-based JavaScript SDK designed for viewing and editing images and PDFs. It provides a wide range of functionalities, including PDF annotation, page manipulation, image quality enhancement, and document saving.
21+
[Dynamsoft Document Viewer (DDV)](https://www.dynamsoft.com/document-viewer/docs/introduction/index.html) is a browser-based JavaScript SDK designed for viewing and editing images and PDFs. It provides a wide range of functionalities, including PDF annotation, page manipulation, image quality enhancement, and document saving. To see it in action, please visit this [online demo](https://demo.dynamsoft.com/document-viewer/).
2322

2423
### Security
2524

dist/ddv.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ddv.es.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ddv.js

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/engine/ddv-imageio.wasm

861 KB
Binary file not shown.

dist/engine/ddv-imageio.worker.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/engine/ddv-imageproc-simd.worker.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/engine/ddv-imageproc.worker.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.d.ts

Lines changed: 105 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ declare class BaseBrowseViewer implements IBrowseViewer {
6363
selectAllPages(): string[];
6464
selectPages(indices: number[]): string[];
6565
setRowAndColumn(row: number, column: number): boolean;
66-
on(eventName: string, listener: (...args: any[]) => void): void;
6766
on<K extends keyof BrowseViewerEventMap>(eventName: K, listener: (event: BrowseViewerEventMap[K]) => any): void;
68-
off(eventName: string, listener: (...args: any[]) => void): void;
67+
on(eventName: string, listener: (...args: any[]) => void): void;
6968
off<K extends keyof BrowseViewerEventMap>(eventName: K, listener?: (event: BrowseViewerEventMap[K]) => any): void;
69+
off(eventName: string, listener: (...args: any[]) => void): void;
7070
getVisiblePagesInfo(): PageVisualInfo[];
7171
}
7272
declare class Core {
@@ -304,7 +304,7 @@ declare class Stamp {
304304
modificationDate: string;
305305
constructor(options?: StampAnnotationOptions);
306306
get source(): "user" | "file" | "api" | "";
307-
get type(): AnnotationTypesEnum;
307+
get type(): string;
308308
get pageUid(): string;
309309
get flattened(): boolean;
310310
set flattened(value: boolean);
@@ -415,6 +415,11 @@ declare enum ImageType {
415415
IT_PNG = 3,
416416
IT_ALL = 5
417417
}
418+
declare enum ReturnedDataType {
419+
RT_AUTO = -1,
420+
RT_BINARY = 1,
421+
RT_BASE64 = 2
422+
}
418423
declare enum WorkerName {
419424
core = "ddv-core",
420425
reader = "ddv-reader",
@@ -500,10 +505,10 @@ export declare class CaptureViewer {
500505
];
501506
turnOnTorch(): Promise<void>;
502507
turnOffTorch(): Promise<void>;
503-
on(eventName: string, listener: (...args: any[]) => void): void;
504508
on<K extends keyof CaptureViewerEventMap>(eventName: K, listener: (event: CaptureViewerEventMap[K]) => any): void;
505-
off(eventName: string, listener: (...args: any[]) => void): void;
509+
on(eventName: string, listener: (...args: any[]) => void): void;
506510
off<K extends keyof CaptureViewerEventMap>(eventName: K, listener?: (event: CaptureViewerEventMap[K]) => any): void;
511+
off(eventName: string, listener: (...args: any[]) => void): void;
507512
destroy(): void;
508513
}
509514
export declare class CustomViewer {
@@ -546,6 +551,8 @@ export declare class EditViewer {
546551
set annotationMode(val: AnnotationMode);
547552
get fitMode(): FitMode;
548553
set fitMode(type: FitMode);
554+
get cropMode(): CropMode;
555+
set cropMode(mode: CropMode);
549556
bindContainer(container: HTMLElement | string): void;
550557
unbindContainer(): void;
551558
show(): void;
@@ -616,17 +623,18 @@ export declare class EditViewer {
616623
selectAnnotations(annotationUids: string[]): boolean;
617624
getSelectedAnnotations(): (Incomplete | Unknown | OuterAnnotation)[];
618625
copySelectedTexts(): Promise<void>;
619-
on(eventName: string, listener: (...args: any[]) => void): void;
620626
on<K extends keyof EditViewerEventMap>(eventName: K, listener: (event: EditViewerEventMap[K]) => any): void;
621-
off(eventName: string, listener: (...args: any[]) => void): void;
627+
on(eventName: string, listener: (...args: any[]) => void): void;
622628
off<K extends keyof EditViewerEventMap>(eventName: K, listener?: (event: EditViewerEventMap[K]) => any): void;
629+
off(eventName: string, listener: (...args: any[]) => void): void;
623630
destroy(): void;
624631
setAnnotationDrawingStyle(config: AnnotationDrawingStyleConfig): boolean;
625632
getTextSelection(): ITextSelectedInfo[];
626633
searchNextText(text: string, options?: SearchTextOptions): Promise<boolean>;
627634
searchPrevText(text: string, options?: SearchTextOptions): Promise<boolean>;
628635
searchFullText(text: string, options?: SearchTextOptions): Promise<boolean>;
629636
getVisiblePagesInfo(): PageVisualInfo[];
637+
getAnnotationDrawingStyle(): AnnotationDrawingStyleConfig;
630638
}
631639
export declare class PerspectiveViewer {
632640
#private;
@@ -687,10 +695,10 @@ export declare class PerspectiveViewer {
687695
*/
688696
getCurrentPageIndex(): number;
689697
getPageCount(): number;
690-
on(eventName: string, listener: (...args: any[]) => void): void;
691698
on<K extends keyof PerspectiveViewerEventMap>(eventName: K, listener: (event: PerspectiveViewerEventMap[K]) => any): void;
692-
off(eventName: string, listener: (...args: any[]) => void): void;
699+
on(eventName: string, listener: (...args: any[]) => void): void;
693700
off<K extends keyof PerspectiveViewerEventMap>(eventName: K, listener?: (event: PerspectiveViewerEventMap[K]) => any): void;
701+
off(eventName: string, listener: (...args: any[]) => void): void;
694702
destroy(): void;
695703
getVisiblePagesInfo(): PageVisualInfo[];
696704
}
@@ -762,7 +770,16 @@ export declare const DDV: {
762770
/** Annotations */
763771
annotationManager: AnnotationManager;
764772
};
765-
export declare const enum AnnotationTypesEnum {
773+
export declare const enum AnnotationModifiedActionEnum {
774+
MOVED = "moved",
775+
RESIZED = "resized",
776+
ROTATED = "rotated",
777+
FLAGS_CHANGED = "flagsChanged",
778+
APPEARANCE_CHANGED = "appearanceChanged",
779+
CONTENT_CHANGED = "contentChanged",
780+
FLATTENED_CHANGED = "flattenedChanged"
781+
}
782+
export declare const enum AnnotationParserTypeEnum {
766783
ARC = "arc",
767784
CIRCLE = "circle",
768785
IMAGE = "image",
@@ -795,6 +812,15 @@ export declare const enum FitModeEnum {
795812
WINDOW = "window",
796813
ACTUAL_SIZE = "actualSize"
797814
}
815+
export declare const enum MIME {
816+
IMAGE_PNG = "image/png",
817+
IMAGE_JPEG = "image/jpeg",
818+
IMAGE_BMP = "image/bmp",
819+
IMAGE_WEBP = "image/webp",
820+
IMAGE_TIFF = "image/tiff",
821+
APPLICATION_PDF = "application/pdf",
822+
TEXT_PLAIN = "text/plain"
823+
}
798824
export declare const enum SourceMIME {
799825
IMAGE_PNG = "image/png",
800826
IMAGE_JPEG = "image/jpeg",
@@ -1040,7 +1066,7 @@ export interface AnnotationsModifiedEvent<K extends keyof AnnotationOptionsMap =
10401066
oldOptions: AnnotationOptionsMap[K];
10411067
newOptions: AnnotationOptionsMap[K];
10421068
}[];
1043-
actions: AnnotationModifiedAction[];
1069+
actions: AnnotationModifiedActionEnum[];
10441070
}
10451071
export interface AnnotationsTypeMap {
10461072
rectangle: {
@@ -1139,6 +1165,7 @@ export interface BrowseViewerConfig {
11391165
scrollToLatest?: boolean;
11401166
enableDragPage?: boolean;
11411167
enableLoadSourceByDrag?: boolean;
1168+
enableAutoScrollForDragPages?: boolean;
11421169
}
11431170
export interface BrowseViewerConstructorOptions {
11441171
container?: string | HTMLElement;
@@ -1165,6 +1192,8 @@ export interface BrowseViewerEventMap {
11651192
"pointerup": IPointerEvent;
11661193
"pageover": IPointerEvent;
11671194
"pageout": IPointerEvent;
1195+
"paginationChanged": IPaginationChangedEvent;
1196+
"scroll": Event;
11681197
}
11691198
export interface CanvasStyle {
11701199
border?: string;
@@ -1198,6 +1227,7 @@ export interface CaptureViewerEventMap {
11981227
"dblclick": IPointerEvent;
11991228
"rightclick": IPointerEvent;
12001229
"visibilityChanged": IVisibilityChangedEvent;
1230+
"paginationChanged": IPaginationChangedEvent;
12011231
}
12021232
export interface CheckboxStyle {
12031233
left?: string;
@@ -1312,6 +1342,7 @@ export interface EditViewerConfig {
13121342
scrollToLatest?: boolean;
13131343
enableMagnifier?: boolean;
13141344
enableLoadSourceByDrag?: boolean;
1345+
enableAutoScrollForTextSelection?: boolean;
13151346
}
13161347
export interface EditViewerConstructorOptions {
13171348
container?: string | HTMLElement;
@@ -1340,6 +1371,7 @@ export interface EditViewerEventMap {
13401371
"textUnselected": void;
13411372
"textSelected": ITextSelectedEvent;
13421373
"textSearchTriggered": ITextSearchTriggeredEvent;
1374+
"scroll": Event;
13431375
"click": IPointerEvent;
13441376
"dblclick": IPointerEvent;
13451377
"rightclick": IPointerEvent;
@@ -1348,6 +1380,9 @@ export interface EditViewerEventMap {
13481380
"pointerup": IPointerEvent;
13491381
"pageover": IPointerEvent;
13501382
"pageout": IPointerEvent;
1383+
"paginationChanged": IPaginationChangedEvent;
1384+
"undoRedoStateChanged": IUndoRedoStateChangedEvent;
1385+
"annotationDrawingStyleChanged": IAnnotationDrawingStyleChangedEvent<AnnotationDrawingStyleConfig>;
13511386
}
13521387
export interface EllipseAnnotationOptions extends BaseAnnotationOptions {
13531388
x?: number;
@@ -1395,6 +1430,10 @@ export interface HighlightAnnotationOptions extends TextAssistAnnotationOptions
13951430
export interface HighlightStyle extends BaseAnnotationStyle {
13961431
background?: string;
13971432
}
1433+
export interface IAnnotationDrawingStyleChangedEvent<T> {
1434+
newDrawingStyle: T;
1435+
oldDrawingStyle: T;
1436+
}
13981437
export interface IBrowseViewer {
13991438
uid: string;
14001439
groupUid: string;
@@ -1511,6 +1550,14 @@ export interface IFileParser {
15111550
parseAnnotations(indices: number[], parsedPages: ParsedPage[]): Promise<ParsedAnnotationPage[]>;
15121551
parse(indices?: number[]): Promise<ParsedPage[]>;
15131552
getPage(index?: number): Promise<ParsedPage>;
1553+
renderPage?: (config: {
1554+
index: number;
1555+
width: number;
1556+
height: number;
1557+
rect: number[];
1558+
outputType: ImageType;
1559+
}, task: RenderPageTask) => Promise<PdfRenderPageRawData>;
1560+
cancelRenderPage?: (task: RenderPageTask) => void;
15141561
getPageTexts(indices: number[]): Promise<ParsedPageTexts[]>;
15151562
cancelGetPage(index?: number): void;
15161563
destroy(): void;
@@ -1552,6 +1599,10 @@ export interface IPagesDroppedEvent {
15521599
indicesAfter: number[];
15531600
pageUids: string[];
15541601
}
1602+
export interface IPaginationChangedEvent {
1603+
currentPageNumber: number;
1604+
pageCount: number;
1605+
}
15551606
/**
15561607
* Support click/dblclick/rightclick/longtap/tap
15571608
*/
@@ -1599,6 +1650,10 @@ export interface IToolModeChangedEvent {
15991650
oldToolMode: ToolModeEnum;
16001651
newToolMode: ToolModeEnum;
16011652
}
1653+
export interface IUndoRedoStateChangedEvent {
1654+
undoCount: number;
1655+
redoCount: number;
1656+
}
16021657
export interface IVisibilityChangedEvent {
16031658
isVisible: boolean;
16041659
}
@@ -1855,7 +1910,7 @@ export interface PaletteConfig {
18551910
}
18561911
export interface ParsedAnnotation {
18571912
uid?: string;
1858-
type?: AnnotationTypesEnum;
1913+
type?: AnnotationParserTypeEnum;
18591914
style?: AnnotationStyle | AnnotationStyle[];
18601915
transform?: AnnotationTransform;
18611916
iconColor?: string;
@@ -1931,6 +1986,10 @@ export interface ParsedPageTexts {
19311986
index: number;
19321987
}
19331988
export interface ParsedTextChar {
1989+
uid: string;
1990+
oriLineUid: string;
1991+
visibleIndex: number;
1992+
indexInMergeLine: number;
19341993
unicode: number;
19351994
charBox: Rect;
19361995
/** The char index in the page texts */
@@ -1946,6 +2005,32 @@ export interface ParserOptions {
19462005
pageWidth?: number;
19472006
pageHeight?: number;
19482007
}
2008+
export interface PdfPageInfo {
2009+
curImageBitDepth: number;
2010+
imageBitDepth: number;
2011+
/** Pixel size. */
2012+
imageHeight: number;
2013+
imageIsGrayScale?: boolean;
2014+
imageType: number;
2015+
/** Pixel size. */
2016+
imageWidth: number;
2017+
imageXResolution: number;
2018+
imageYResolution: number;
2019+
pageIndex?: number;
2020+
rotation?: number;
2021+
realReadMode?: number;
2022+
mediaBox?: Array<number>;
2023+
cropBox?: Array<number>;
2024+
annotCount?: number;
2025+
}
2026+
export interface PdfRenderPageRawData {
2027+
blobType: MIME.IMAGE_JPEG;
2028+
code: number;
2029+
imageData: Uint8ClampedArray;
2030+
imageInfo: PdfPageInfo;
2031+
message: string;
2032+
pageIndex: number;
2033+
}
19492034
export interface PdfSource extends Source {
19502035
convertMode: EnumConvertMode;
19512036
password?: string;
@@ -1992,6 +2077,7 @@ export interface PerspectiveViewerEventMap {
19922077
"pointerup": IPointerEvent;
19932078
"pageover": IPointerEvent;
19942079
"pageout": IPointerEvent;
2080+
"paginationChanged": IPaginationChangedEvent;
19952081
}
19962082
export interface PlayCallbackInfo {
19972083
deviceId: string;
@@ -2025,15 +2111,14 @@ export interface PrintSettings {
20252111
printAnnotation?: boolean;
20262112
}
20272113
export interface ProcessOutputOptions {
2028-
returnType?: ImageType;
2114+
outputType?: ImageType;
20292115
bRGBA?: boolean;
2030-
returnBlob?: boolean;
20312116
is1BitTo8Bit?: boolean;
20322117
jpegQuality?: number;
20332118
bitDepth?: number;
20342119
xdpi?: number;
20352120
ydpi?: number;
2036-
outputType?: EnumImageDataType;
2121+
returnType?: ReturnedDataType;
20372122
}
20382123
export interface ProcessingHandlerMap {
20392124
"documentBoundariesDetect": IDocumentDetect;
@@ -2075,6 +2160,10 @@ export interface RectangleStyle extends BaseAnnotationStyle {
20752160
background?: string;
20762161
lineDash?: number[];
20772162
}
2163+
export interface RenderPageTask {
2164+
taskUid: string;
2165+
canceled: boolean;
2166+
}
20782167
export interface SaveJpegSettings {
20792168
quality?: number;
20802169
saveAnnotation?: boolean;
@@ -2333,9 +2422,9 @@ export interface ZoomOrigin {
23332422
y: "start" | "center" | "end";
23342423
}
23352424
export type AnnotationMode = "select" | "erase" | "rectangle" | "ellipse" | "line" | "polygon" | "polyline" | "ink" | "textBox" | "textTypewriter" | "stamp" | "highlight" | "underline" | "strikeout";
2336-
export type AnnotationModifiedAction = "moved" | "resized" | "rotated" | "flagsChanged" | "styleChanged";
23372425
export type BrowseViewerStyle = BaseStyle | CanvasStyle | PageNumberStyle | CheckboxStyle;
23382426
export type BrowseViewerStyleName = "canvasStyle" | "pageStyle" | "selectedPageStyle" | "hoveredPageStyle" | "placeholderStyle" | "pageNumberStyle" | "checkboxStyle" | "currentPageStyle";
2427+
export type CropMode = "current" | "all";
23392428
/**
23402429
* cursor
23412430
* @see https://drafts.csswg.org/css-ui-3/#cursor

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dynamsoft-document-viewer",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"author": {
55
"name": "Dynamsoft",
66
"url": "https://www.dynamsoft.com"

0 commit comments

Comments
 (0)