Getting started with Standalone PDF Viewer component
26 Mar 20258 minutes to read
This section explains the steps required to create a simple Standalone Angular PDF Viewer and demonstrates the basic usage of the PDF Viewer control in a Angular CLI application (for Angular versions below 17).
NOTE
For Angular 17+, see the following links:
- Create a Standalone PDF Viewer in Angular 17 and above with-no-standalone-flag.
- Create a Standalone PDF Viewer in Angular 17 and above without –no-standalone flag.
Setup Angular Environment
You can use the Angular CLI
to setup your Angular applications.
To install the latest Angular CLI globally use the following command.
npm install -g @angular/cli
NOTE
Use the command npm install –save @angular/cli@12.0.2 to install the Angular CLI version 12.0.2
Create an Angular Application
Start a new Angular application using the Angular CLI command as follows.
ng new my-app
cd my-app
Installing Syncfusion PDF Viewer package
All the available Essential JS 2 packages are published in npmjs.com
registry.
- To install PDF Viewer component, use the following command.
npm install @syncfusion/ej2-angular-pdfviewer --save
- Copy the contents of the ej2-pdfviewer-lib folder from ./node_modules/@syncfusion/ej2-pdfviewer/dist to the src/assets directory using the command:
cp -R ./node_modules/@syncfusion/ej2-pdfviewer/dist/ej2-pdfviewer-lib src/assets/ej2-pdfviewer-lib
-
Confirm that there is an ‘ej2-pdfviewer-lib’ directory within your public directory, housing the assets of the PDF Viewer library.
-
Validate that your server has been configured to utilize the Content-Type: application/wasm MIME type. Additional information can be found in the Troubleshooting section.
Registering PDF Viewer Module
Import PDF Viewer module into Angular application(app.module.ts) from the package @syncfusion/ej2-angular-pdfviewer
[src/app/app.module.ts].
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
// import the PdfViewer Module for the PDF Viewer component
import { PdfViewerModule, LinkAnnotationService, BookmarkViewService,
MagnificationService, ThumbnailViewService, ToolbarService,
NavigationService, TextSearchService, TextSelectionService,
PrintService, FormDesignerService, FormFieldsService,
AnnotationService, PageOrganizerService } from '@syncfusion/ej2-angular-pdfviewer';
import { AppComponent } from './app.component';
@NgModule({
//declaration of ej2-angular-pdfviewer module into NgModule
imports: [BrowserModule, PdfViewerModule],
declarations: [AppComponent],
bootstrap: [AppComponent],
providers: [ LinkAnnotationService, BookmarkViewService, MagnificationService,
ThumbnailViewService, ToolbarService, NavigationService,
TextSearchService, TextSelectionService, PrintService,
AnnotationService, FormDesignerService, FormFieldsService, PageOrganizerService]
})
export class AppModule { }
Adding CSS reference
Add the Angular PDF Viewer component’s styles as given below in src/styles.css
file.
@import '../node_modules/@syncfusion/ej2-base/styles/material.css';
@import '../node_modules/@syncfusion/ej2-buttons/styles/material.css';
@import '../node_modules/@syncfusion/ej2-dropdowns/styles/material.css';
@import '../node_modules/@syncfusion/ej2-inputs/styles/material.css';
@import '../node_modules/@syncfusion/ej2-navigations/styles/material.css';
@import '../node_modules/@syncfusion/ej2-popups/styles/material.css';
@import '../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css';
@import '../node_modules/@syncfusion/ej2-pdfviewer/styles/material.css';
@import '../node_modules/@syncfusion/ej2-notifications/styles/material.css';
Adding PDF Viewer component
Add the Angular PDF Viewer by using <ejs-pdfviewer>
selector in template
section of the src/app/app.component.ts
file to render the PDF Viewer component.
import { Component, OnInit } from '@angular/core';
import { PdfViewerModule, LinkAnnotationService, BookmarkViewService,
MagnificationService, ThumbnailViewService, ToolbarService,
NavigationService, TextSearchService, TextSelectionService,
PrintService, FormDesignerService, FormFieldsService,
AnnotationService, PageOrganizerService } from '@syncfusion/ej2-angular-pdfviewer';
@Component({
selector: 'app-root',
// specifies the template string for the PDF Viewer component
template: `<div class="content-wrapper">
<ejs-pdfviewer id="pdfViewer"
[documentPath]='document'
[resourceUrl]='resource'
style="height:640px;display:block">
</ejs-pdfviewer>
</div>`,
providers: [ LinkAnnotationService, BookmarkViewService, MagnificationService,
ThumbnailViewService, ToolbarService, NavigationService,
TextSearchService, TextSelectionService, PrintService,
AnnotationService, FormDesignerService, FormFieldsService, PageOrganizerService]
})
export class AppComponent implements OnInit {
public document: string = 'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf';
public resource: string = "https://cdn.syncfusion.com/ej2/26.2.11/dist/ej2-pdfviewer-lib";
ngOnInit(): void {
}
}
Steps to Load PDF Viewer with Local Resources
To configure the PDF Viewer to use local files for documentPath
and resourceUrl
instead of files hosted on a CDN, follow these steps:
Step 1: Ensure that your application includes the ej2-pdfviewer-lib
folder. This folder must contain the pdfium.js
, pdfium.wasm
files, and the PDF file that you intend to display. These should be located in the assets
directory within your project’s src
folder.
Step 2: Assign local file paths to the documentPath
and resourceUrl
properties within the PDF Viewer setup. The documentPath
should refer to your PDF file, while the resourceUrl
should point to the directory containing the supporting resources.
By following these steps, you will configure your PDF Viewer to load the required resources locally. See the code snippet below for reference.
template: `<ejs-pdfviewer id="pdfViewer"
[documentPath]='document'
[resourceUrl]='resource'
style="height:640px;display:block">
</ejs-pdfviewer>`,
export class AppComponent implements OnInit {
public document: string = window.location.origin + "/assets/pdfsuccinctly.pdf";
public resource: string = window.location.origin + "/assets/ej2-pdfviewer-lib";
}
View the sample in GitHub to load PDF Viewer with local resources
Run the application
Use the following command to run the application in browser.
ng serve --open
The output will appear as follows.
import { Component, OnInit } from '@angular/core';
import { PdfViewerModule, LinkAnnotationService, BookmarkViewService,
MagnificationService, ThumbnailViewService, ToolbarService,
NavigationService, TextSearchService, TextSelectionService,
PrintService, FormDesignerService, FormFieldsService,
AnnotationService, PageOrganizerService } from '@syncfusion/ej2-angular-pdfviewer';
@Component({
selector: 'app-container',
// specifies the template string for the PDF Viewer component
template: `<div class="content-wrapper">
<ejs-pdfviewer
id="pdfViewer"
[documentPath]='document'
[resourceUrl]='resource'
style="height:640px;display:block">
</ejs-pdfviewer>
</div>`,
providers: [ LinkAnnotationService, BookmarkViewService, MagnificationService,
ThumbnailViewService, ToolbarService, NavigationService,
TextSearchService, TextSelectionService, PrintService,
AnnotationService, FormDesignerService, FormFieldsService, PageOrganizerService]
})
export class AppComponent implements OnInit {
public document = 'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf';
public resource: string = "https://cdn.syncfusion.com/ej2/26.2.11/dist/ej2-pdfviewer-lib";
ngOnInit(): void {
}
}
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));