Skip to content

Commit 5787b53

Browse files
committed
Add a document viewer example
1 parent 38bc645 commit 5787b53

14 files changed

+150
-37
lines changed

angular.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@
8484
"glob": "**/*",
8585
"input": "./node_modules/dynamsoft-label-recognizer-data/dist",
8686
"output": "assets/dynamsoft-label-recognizer-data"
87+
},
88+
{
89+
"glob": "**/*",
90+
"input": "./node_modules/dynamsoft-document-viewer/dist",
91+
"output": "assets/dynamsoft-document-viewer"
8792
}
8893
],
8994
"styles": [

package-lock.json

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

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"dynamsoft-capture-vision-std": "^1.2.10",
2525
"dynamsoft-code-parser": "^2.2.10",
2626
"dynamsoft-document-normalizer": "^2.2.10",
27+
"dynamsoft-document-viewer": "^2.0.0",
2728
"dynamsoft-image-processing": "^2.2.30",
2829
"dynamsoft-label-recognizer": "^3.2.30",
2930
"dynamsoft-label-recognizer-data": "^1.0.11",

src/app/app-routing.module.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { FileDetectionComponent } from './file-detection/file-detection.componen
77
import { CameraDetectionComponent } from './camera-detection/camera-detection.component';
88
import { MrzReaderComponent } from './mrz-reader/mrz-reader.component';
99
import { MrzScannerComponent } from './mrz-scanner/mrz-scanner.component';
10+
import { DocumentViewerComponent } from './document-viewer/document-viewer.component';
1011

1112
const routes: Routes = [
1213
{ path: '', component: ProductListComponent },
@@ -15,7 +16,8 @@ const routes: Routes = [
1516
{ path: 'file-detection', component: FileDetectionComponent },
1617
{ path: 'camera-detection', component: CameraDetectionComponent },
1718
{ path: 'mrz-reader', component: MrzReaderComponent },
18-
{ path: 'mrz-scanner', component: MrzScannerComponent }
19+
{ path: 'mrz-scanner', component: MrzScannerComponent },
20+
{ path: 'document-viewer', component: DocumentViewerComponent }
1921
];
2022

2123
@NgModule({

src/app/app.module.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ import { FileDetectionComponent } from './file-detection/file-detection.componen
1212
import { CameraDetectionComponent } from './camera-detection/camera-detection.component';
1313
import { MrzReaderComponent } from './mrz-reader/mrz-reader.component';
1414
import { MrzScannerComponent } from './mrz-scanner/mrz-scanner.component';
15-
16-
// import {NgxBarcodeQrcodeModule} from 'ngx-barcode-qrcode';
15+
import { DocumentViewerComponent } from './document-viewer/document-viewer.component';
1716

1817
@NgModule({
1918
declarations: [
@@ -26,7 +25,7 @@ import { MrzScannerComponent } from './mrz-scanner/mrz-scanner.component';
2625
CameraDetectionComponent,
2726
MrzReaderComponent,
2827
MrzScannerComponent,
29-
28+
DocumentViewerComponent,
3029
],
3130
imports: [
3231
BrowserModule,
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#document_container {
2+
width: 100%;
3+
height: 100%;
4+
position: fixed;
5+
left: 0;
6+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div id="document_container"></div>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { ComponentFixture, TestBed } from '@angular/core/testing';
2+
3+
import { DocumentViewerComponent } from './document-viewer.component';
4+
5+
describe('DocumentViewerComponent', () => {
6+
let component: DocumentViewerComponent;
7+
let fixture: ComponentFixture<DocumentViewerComponent>;
8+
9+
beforeEach(async () => {
10+
await TestBed.configureTestingModule({
11+
declarations: [ DocumentViewerComponent ]
12+
})
13+
.compileComponents();
14+
});
15+
16+
beforeEach(() => {
17+
fixture = TestBed.createComponent(DocumentViewerComponent);
18+
component = fixture.componentInstance;
19+
fixture.detectChanges();
20+
});
21+
22+
it('should create', () => {
23+
expect(component).toBeTruthy();
24+
});
25+
});
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { Component, OnInit } from '@angular/core';
2+
import { DDV, EditViewer } from 'dynamsoft-document-viewer';
3+
4+
@Component({
5+
selector: 'app-document-viewer',
6+
templateUrl: './document-viewer.component.html',
7+
styleUrls: ['./document-viewer.component.css']
8+
})
9+
export class DocumentViewerComponent implements OnInit {
10+
editViewer?: EditViewer;
11+
12+
constructor() {
13+
14+
}
15+
16+
ngOnInit(): void {
17+
let config = DDV.getDefaultUiConfig("editViewer", { includeAnnotationSet: true });
18+
this.editViewer = new DDV.EditViewer({
19+
container: "document_container",
20+
uiConfig: config!,
21+
});
22+
}
23+
24+
}

src/app/product-list/product-list.component.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,14 @@ <h3>
5858
</ng-template>
5959
</div>
6060

61+
<div>
62+
<ng-template [ngIf]="product.id === 'document-viewer'">
63+
<a [title]="product.name + ' details'" [routerLink]="['/document-viewer']">>
64+
{{ product.name }}
65+
</a>
66+
</ng-template>
67+
</div>
68+
6169
</h3>
6270

6371
<p *ngIf="product.description">Description: {{ product.description }}</p>

src/app/product-list/product-list.component.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import 'dynamsoft-document-normalizer';
1010
import 'dynamsoft-label-recognizer';
1111
import 'dynamsoft-code-parser';
1212
import { getFullUrl } from '../utils';
13+
import { DDV } from 'dynamsoft-document-viewer';
14+
1315

1416
@Component({
1517
selector: 'app-product-list',
@@ -49,7 +51,10 @@ export class ProductListComponent {
4951
let licenseKey: string = this.inputText === '' ? this.placeholderText : this.inputText;
5052
await LicenseManager.initLicense(licenseKey, true);
5153

52-
54+
// DDV.Core.license = licenseKey;
55+
DDV.Core.engineResourcePath = getFullUrl('assets/dynamsoft-document-viewer/engine/');
56+
await DDV.Core.init();
57+
DDV.setProcessingHandler("imageFilter", new DDV.ImageFilter());
5358
// Preload wasm files for saving the time of loading it when needed.
5459
// await CoreModule.loadWasm(['DBR', 'DDN']);
5560

src/app/products.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,11 @@ export const products = [
3636
name: 'MRZ Scanner',
3737
description: 'Scan MRZ from camera stream',
3838
},
39+
{
40+
id: 'document-viewer',
41+
name: 'Document Viewer',
42+
description: 'View, edit and save documents',
43+
},
44+
3945
];
4046

src/index.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
<!doctype html>
22
<html lang="en">
3+
34
<head>
45
<meta charset="utf-8">
56
<title>MyApp</title>
67
<base href="/">
78
<meta name="viewport" content="width=device-width, initial-scale=1">
89
<link rel="icon" type="image/x-icon" href="favicon.ico">
10+
<link rel="stylesheet" href="assets/dynamsoft-document-viewer/ddv.css">
911
</head>
12+
1013
<body>
1114
<app-root></app-root>
1215
</body>
13-
</html>
16+
17+
</html>

tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"noPropertyAccessFromIndexSignature": true,
1111
"noImplicitReturns": true,
1212
"noFallthroughCasesInSwitch": true,
13+
"skipLibCheck": true,
1314
"sourceMap": true,
1415
"declaration": false,
1516
"downlevelIteration": true,
@@ -29,4 +30,4 @@
2930
"strictInputAccessModifiers": true,
3031
"strictTemplates": true
3132
}
32-
}
33+
}

0 commit comments

Comments
 (0)