How to use epubjs - 10 common examples

To help you get started, we’ve selected a few epubjs examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github futurepress / epubjs-rn / src / EpubViewManager.js View on Github external
prepend(section) {
    var displaying = new core.defer();
    let sections = [section];

    // if (this.scrolling) {
    //   // queue
    //   console.log("queue");
    //   return;
    // }
    if (this.state.sections.includes(section)) {
      return;
    }

    if (this.fixed && this.spreads) {
      let prevSection = section.prev();
      prevSection && sections.unshift(prevSection);
    }
github futurepress / epubjs-rn / src / EpubView.js View on Github external
expand() {
    var width, height;
    var expanded;
    var expanding;
    __DEV__ && console.log("expanding", this.index);
    // if (this.expanding || this.loading) {
    //   return;
    // }
    this.expanding = true;

    if (this.props.layout.name === "pre-paginated") {
      // this.expanding = false;
        var defered = new core.defer();
        let width = this.props.columnWidth;
        let marginLeft = 0;

        if (this.props.spreads && this.props.section.index === 0) {
          width = this.props.columnWidth * 2;
          marginLeft = this.props.columnWidth;
        }

        if (this.props.spreads &&
            this.props.section.index === this.props.lastSectionIndex &&
            this.props.section.index % 2 > 0 ) {
          width = this.props.columnWidth * 2;
        }

        this.setState({
          width,
github futurepress / epubjs-rn / src / EpubView.js View on Github external
load() {
    var loaded = new core.defer();

    if (!this.sectionRendering) {
      this.sectionRendering = this.props.section.render(this.props.request);
    }

    // console.log("loading", this.props.section.index);

    if (!this.state.contents) {
      this.sectionRendering.then((contents) => {
          if (!this.mounted) {
            return; // Prevent updating an unmounted component
          }
          this.setState({ contents }, () => {

            this.rendering.resolve();
            loaded.resolve();
github futurepress / epubjs-rn / src / EpubView.js View on Github external
}).then((h) => {
        var defered = new core.defer();
        var margin = 0;

        height = h;
        // console.log("Height", height);

        this.setState({ height, margin }, () => {
          this.expanding = false;
          defered.resolve();
        });

        return defered.promise;
      });
    }
github futurepress / epubjs-rn / src / EpubViewManager.js View on Github external
append(section) {
    var displaying = new core.defer();
    let sections = [section];

    if (this.state.sections.includes(section)) {
      return;
    }

    if (this.fixed && this.spreads) {
      let nextSection = section.next();
      nextSection && sections.push(nextSection);
    }

    // __DEV__ && console.log("append", section.index);

    this.setState({
        sections: this.state.sections.concat(sections),
      },
github learningequality / kolibri / kolibri / plugins / epub_viewer / assets / src / views / EpubRendererIndex.vue View on Github external
handleReadyRendition() {
        this.updateRenditionTheme(this.themeStyle);

        this.rendition.on(EVENTS.RENDITION.RELOCATED, location => this.relocatedHandler(location));
        this.rendition.on('keyup', this.handleKeyUps);
        this.rendition.on('click', () => this.closeSideBar());

        window.addEventListener('mousedown', this.handleMouseDown, { passive: true });

        this.loaded = true;

        this.book.locations.generate(LOCATIONS_INTERVAL).then(locations => {
          this.locations = locations;
          this.$emit('startTracking');
          this.updateContentStateInterval = setInterval(this.updateProgress, 30000);

          // Update current location, .currentLocation() can return Promise or value
          Promise.resolve()
            .then(() => this.rendition.currentLocation())
            .then(currentLocation => {
github sam9831 / free-ebook-demo / src / Ebook.vue View on Github external
showEpub() {
      // 生成Book对象
      this.book = new Epub(DOWNLOAD_URL)
      // 通过Book.renderTo生成Rendition对象
      this.rendition = this.book.renderTo('read', {
        width: window.innerWidth,
        height: window.innerHeight,
        // 兼容iOS
        method: 'default'
      })
      // 通过Rendtion.display渲染电子书
      this.rendition.display()
      // 获取Theme对象
      this.themes = this.rendition.themes
      // 设置默认字体
      this.setFontSize(this.defaultFontSize)
      // 注册主题
      this.registerTheme()
      // 设置默认主题
github Janglee123 / eplee / src / shared / dbUtilis.js View on Github external
function getInfo(filePath, callback) {
  // parameter validation
  if (!filePath || typeof filePath !== 'string') {
    return;
  }

  // create a key from path
  const key = genrateKey(filePath);

  // file load on file protocol
  const uri = fileUrl(filePath);
  const book = new Book(uri);

  book.ready
    .then(() => {
      return book.locations.generate();
    })
    .then(locations => {
      const meta = book.package.metadata;

      const info = {
        id: key,
        title: meta.title,
        author: meta.creator,
        publisher: meta.publisher,
        path: uri,
        bookmarks: [],
        highlights: [],
github futurepress / epubjs-rn / src / Epub.js View on Github external
_loadBook(bookUrl) {
    __DEV__ && console.log("loading book: ", bookUrl);

    this.book = ePub({
      replacements: this.props.base64 || "none"
    });

    return this._openBook(bookUrl);

    /*
    var type = this.book.determineType(bookUrl);

    var uri = new Uri(bookUrl);
    if ((type === "directory") || (type === "opf")) {
      return this._openBook(bookUrl);
    } else {
      return this.streamer.start()
      .then((localOrigin) => {
        this.setState({localOrigin})
        return this.streamer.get(bookUrl);
github futurepress / epubjs-rn / src / EpubView.js View on Github external
viewport: () => this.ask("viewport"),
      addStylesheet: (src) => this.ask("addStylesheet", [src]),
      addStylesheetRules: (rules) => this.ask("addStylesheetRules", [rules]),
      addScript: (src) => this.ask("addScript", [src]),
      range: (_cfi, ignoreClass) => this.ask("addStylesheet", [_cfi, ignoreClass]),
      map: (map) => this.ask("map", [map]),
      columns: (width, height, columnWidth, gap) => this.ask("columns", [width, height, columnWidth, gap]),
      fit: (width, height) => this.ask("fit", [width, height]),
      size: (width, height) => this.ask("size", [width, height]),
      mapPage: (cfiBase, start, end) => this.ask("mapPage", [cfiBase, start, end]),
      locationOf: (target) => this.ask("locationOf", [target]),
    }

    EventEmitter(this.contents);

    this.rendering = new core.defer();
    this.rendered = this.rendering.promise;

    this.loading = true;
    this.expanded = false;
  }