This project is not maintained anymore. Feel free to:
- Take ownership of it (please drop me a message for this)
- Use alternatives (such as react-pdf)
Simple react PDF Viewer component with controls. Every element can be styled upon your preferences using default classes our your own.
Example: mgr-pdf-viewer-react
npm install mgr-pdf-viewer-react --save
Since it is a React module, I suppose you have the webpack and babel configured.
import React from 'react';
import PDFViewer from 'mgr-pdf-viewer-react';
const ExamplePDFViewer = () => {
return (<PDFViewer document={{
url: 'https://arxiv.org/pdf/quant-ph/0410100.pdf'
}} />);
}
export default ExamplePDFViewer
React component prop. types:
-
document
:-
Type:
PropTypes.shape({ file: Any, // File object, url: String, // URL to fetch the pdf connection: Object, // connection parameters to fetch the PDF, see PDF.js docs base64: String, // PDF file encoded in base64 binary: UInt8Array })
-
Required: true
-
Description: Provides a way to fetch the PDF document
-
-
loader
:- Type: Node
- Required: false
- Description: A custom loader element that will be shown while the PDF is loading
-
page
:- Type: Number
- Required: false
- Description: The page that will be shown first on document load
-
scale
:- Type: Number
- Required: false
- Description: Scale factor relative to the component parent element
-
onDocumentClick
:- Type: Function
- Required: false
- Description: A function that will be called only on clicking the PDF page itself, NOT on the navbar
-
css
:- Type: String
- Required: false
- Description: CSS classes that will be setted for the component wrapper
-
hideNavbar
:- Type: Boolean
- Required: false
- Description: By default navbar is displayed, but can be hidden by passing this prop
-
navigation
:-
Type:
PropTypes.oneOfType([ // Can be an object with css classes or react elements to be rendered PropTypes.shape({ css: PropTypes.shape({ previousPageBtn: String, // CSS Class for the previous page button nextPageBtn: String, // CSS Class for the next page button pages: String, // CSS Class for the pages indicator wrapper: String // CSS Class for the navigation wrapper }), elements: PropTypes.shape({ previousPageBtn: Any, // previous page button React element nextPageBtn: Any, // next page button React element pages: Any// pages indicator React Element }) }), // Or a full navigation component PropTypes.any // Full navigation React element ])
-
Required: false
-
Description: Defines the navigation bar styles and/or elements.
The
previousPageBtn
and thenextPageBtn
elements should take following properties:page
for current page number,pages
for total number of pages, and the callback functionhandlePrevClick
for thepreviousPageBtn
andhandleNextClick
for thenextPageBtn
.The
pages
element should take following properties:page
for current page number,pages
for total number of pages.The
navigation
element (so the full navigation element) should accept following properties:page
for current page number,pages
for total number of pages, and the callback functionshandlePrevClick
andhandleNextClick
.
-