A React component to view a PDF document. It's written in TypeScript, and powered by React hooks completely.
import Viewer from '@phuocng/react-pdf-viewer';
<Viewer fileUrl='/path/to/file.pdf' />
Basic features
- Support password protected document
- Zooming: Support custom levels such as actual size, page fit, and page width
- Navigation between pages
- Can go to the first and last pages quickly
- Search for text
- Preview page thumbnails
- View and navigate the table of contents
- List and download attachments
- Rotating
- Text selection and hand tool modes
- Different scrolling modes
- Full screen mode
- Can open a file from local. Users can drag and drop a local file to view it
- Download file
- View the document properties
- Support SSR
Customization
- The toolbar can be customized easily
- All text items can be localized in another language
Coming soon
- Theming
- Darkmode
You have to purchase a Commercial License at the official website.
Perform the following steps to have the simplest example. For more demos, please look at the demo folder.
- Install packages
$ npm install pdfjs-dist@2.4.456
$ npm install @phuocng/react-pdf-viewer
- Import CSS and components
import Viewer, { Worker } from '@phuocng/react-pdf-viewer';
import '@phuocng/react-pdf-viewer/cjs/react-pdf-viewer.css';
- Use the component
<Worker workerUrl="https://unpkg.com/pdfjs-dist@2.4.456/build/pdf.worker.min.js">
<div style={{ height: '750px' }}>
<Viewer fileUrl="/path/to/document.pdf" />
</div>
</Worker>
- Build:
$ npm run build
Then it will produce two formats available in the dist
folder:
└─── dist
├─── cjs // CommonJS package
└─── umd // UMD package
- Dev mode:
$ npm run dev
The bundler will watch the entire src
folder and build the cjs
package when any source file is changed.
- Lint:
$ npm run lint
It will check if the entire source code compatible with
This project is developed by Nguyen Huu Phuoc. I love building products and sharing knowledge.
Be my friend on
You might be interested in my products:
Product | Description |
---|---|
01. 1 LOC | Favorite JavaScript utilities in single line of code |
02. Blur Page | A browser extension to hide sensitive information on a web page |
03. CSS Layout | A collection of popular layouts and patterns made with CSS |
04. Fake Numbers | Generate fake and valid numbers |
05. Form Validation | The best validation library for JavaScript |
06. HTML DOM | How to manage HTML DOM with vanilla JavaScript |
07. React PDF Viewer | A React component to view a PDF document |