Skip to content

danielrmay/react-pdf-js

This branch is 541 commits behind mikecousins/react-pdf-js:main.

Folders and files

NameName
Last commit message
Last commit date
Jun 14, 2016
Apr 13, 2016
Dec 1, 2015
Apr 13, 2016
Jun 10, 2016
Dec 17, 2015
Dec 1, 2015
Dec 1, 2015
May 30, 2016
Jun 13, 2016
Dec 1, 2015
Dec 1, 2015
Dec 1, 2015

Repository files navigation

#react-pdf-js

NPM Version NPM Downloads Build Status Dependency Status devDependency Status

react-pdf-js provides a component for rendering PDF documents using PDF.js. Written for React 15 and ES2015 using the Airbnb style guide.


Usage

Install with npm install react-pdf-js

Use in your app (showing some basic pagination as well):

import React from 'react';
import PDF from 'react-pdf-js';

class MyPdfViewer extends React.Component {
  constructor(props) {
    super(props);
    this.onDocumentComplete = this.onDocumentComplete.bind(this);
    this.onPageCompleted = this.onPageCompleted.bind(this);
    this.handlePrevious = this.handlePrevious.bind(this);
    this.handleNext = this.handleNext.bind(this);
  }

  onDocumentComplete(pages) {
    this.setState({ page: 1, pages });
  }

  onPageCompleted(page) {
    this.setState({ page });
  }

  handlePrevious() {
    this.setState({ page: this.state.page - 1 });
  }

  handleNext() {
    this.setState({ page: this.state.page + 1 });
  }

  renderPagination(page, pages) {
    let previousButton = <li className="previous" onClick={this.handlePrevious}><a href="#"><i className="fa fa-arrow-left"></i> Previous</a></li>;
    if (page === 1) {
      previousButton = <li className="previous disabled"><a href="#"><i className="fa fa-arrow-left"></i> Previous</a></li>;
    }
    let nextButton = <li className="next" onClick={this.handleNext}><a href="#">Next <i className="fa fa-arrow-right"></i></a></li>;
    if (page === pages) {
      nextButton = <li className="next disabled"><a href="#">Next <i className="fa fa-arrow-right"></i></a></li>;
    }
    return (
      <nav>
        <ul className="pager">
          {previousButton}
          {nextButton}
        </ul>
      </nav>
      );
  }

  render() {
    let pagination = null;
    if (this.state.pages) {
      pagination = this.renderPagination(this.state.page, this.state.pages);
    }
    return (
      <div>
        <PDF file="somefile.pdf" onDocumentComplete={this.onDocumentComplete} onPageCompleted={this.onPageCompleted} page={this.state.page} />
        {pagination}
      </div>
  }
}

module.exports = MyPdfViewer;

Credit

This project is a fork of react-pdfjs which itself was a port of react-pdf, so thank you to the original authours.

About

A React component to wrap PDF.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%