React PDF Viewer Component
The React PDF Viewer component enables you to view, annotate, prepare and fill forms, and print PDF files from your web applications.
Getting started .
Online demos .
Learn more
Trusted by the world's leading companies
Setup
Create a React Application
You can use create-react-app
to setup applications. To create React app use the following command.
npx create-react-app my-app --template typescript
cd my-app
npm start
Adding Syncfusion PDF Viewer package
All Syncfusion react packages are published in the npmjs.com registry. To install the react PDF Viewer package, use the following command.
npm install @syncfusion/ej2-react-pdfviewer --save
Adding CSS references for PDF Viewer
Add CSS references needed for a PDF Viewer in src/index.css from the ../node_modules/@syncfusion package folder.
@import '../node_modules/@syncfusion/ej2-base/styles/material.css';
@import '../node_modules/@syncfusion/ej2-buttons/styles/material.css';
@import '../node_modules/@syncfusion/ej2-inputs/styles/material.css';
@import '../node_modules/@syncfusion/ej2-popups/styles/material.css';
@import '../node_modules/@syncfusion/ej2-lists/styles/material.css';
@import '../node_modules/@syncfusion/ej2-navigations/styles/material.css';
@import '../node_modules/@syncfusion/ej2-dropdowns/styles/material.css';
@import '../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css';
@import '../node_modules/@syncfusion/ej2-notifications/styles/material.css';
@import "../node_modules/@syncfusion/ej2-react-pdfviewer/styles/material.css";
Add PDF Viewer component
In the src/index.js file, use the following code snippet to render the Syncfusion React PDF Viewer control and import index.css to apply styles to the PDF Viewer:
import { createRoot } from 'react-dom/client';
import './index.css';
import * as React from 'react';
import {
PdfViewerComponent,
Toolbar,
Magnification,
Navigation,
LinkAnnotation,
BookmarkView,
ThumbnailView,
Print,
TextSelection,
TextSearch,
Annotation,
FormFields,
FormDesigner,
Inject,
} from '@syncfusion/ej2-react-pdfviewer';
import { SampleBase } from './sample-base';
export class Default extends SampleBase {
render() {
return (
<div>
<div className="control-section">
<PdfViewerComponent
id="container"
documentPath="PDF_Succinctly.pdf"
serviceUrl="https://ej2services.syncfusion.com/production/web-services/api/pdfviewer"
toolbarSettings={{ showTooltip: true, toolbarItems: ['OpenOption', 'PanTool', 'AnnotationEditTool', 'FormDesignerEditTool', ], annotationToolbarItems: ['HandWrittenSignatureTool'], formDesignerToolbarItems: ['TextboxTool', 'PasswordTool', ] }}
style={{ height: '640px' }}
>
<Inject
services={[
Toolbar,
Magnification,
Navigation,
LinkAnnotation,
BookmarkView,
ThumbnailView,
Print,
TextSelection,
TextSearch,
Annotation,
FormFields,
FormDesigner,
]}
/>
</PdfViewerComponent>
</div>
</div>
);
}
}
const root = createRoot(document.getElementById('sample'));
root.render(<Default />);
Supported frameworks
PDF Viewer component is also offered in the following list of frameworks.
Key features
- View PDF Document - Open and display both the normal and the protected PDF files with AES and RC4 encryption.
- Annotations - Annotate with text markup, shapes, stamps, ink, and sticky notes.
- Form Fields - Form filling and form designing can be done.
- Signature - Hand-written and digital signatures are allowed.
- Toolbar - Built-in-toolbar and custom toolbars to perform user interaction of PDF Viewer functionalities.
- Navigation - Easy navigation with the help of bookmarks, thumbnails, hyperlinks, and table of contents.
- Magnification - Fit to page, fit to width, and automatic (fits to the visible area).
- Search - Search a text easily across the PDF document.
- Core Interactions - Allows scrolling, zooming, panning, selection, and page navigation.
- Print - Print the entire document or a specific page directly from the browser.
- Globalization - Provides inherent support to localize the UI.
Support
Product support is available through the following mediums.
Changelog
Check the changelog here. Get minor improvements and bug fixes every week to stay up to date with frequent updates.
License and copyright
This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's EULA. To acquire a license for 80+ React UI components, you can purchase or start a free 30-day trial.
A free community license is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.
See LICENSE FILE for more info.
© Copyright 2024 Syncfusion, Inc. All Rights Reserved. The Syncfusion Essential Studio license and copyright applies to this distribution.