epub 1.3.2 copy "epub: ^1.3.2" to clipboard
epub: ^1.3.2 copied to clipboard

outdated

Epub Parser for Dart. Suitable for use on the Server, the Web, or in Flutter

example/example.dart

import 'dart:io' as io;

import 'package:path/path.dart' as path;
import 'package:epub/epub.dart';

main(List<String> args) async {
  //Get the epub into memory somehow
  String fileName = "hittelOnGoldMines.epub";
  String fullPath = path.join(io.Directory.current.path, 'test', fileName);
  var targetFile = new io.File(fullPath);
  List<int> bytes = await targetFile.readAsBytes();

// Opens a book and reads all of its content into the memory
  EpubBook epubBook = await EpubReader.readBook(bytes);

// COMMON PROPERTIES

// Book's title
  String title = epubBook.Title;

// Book's authors (comma separated list)
  String author = epubBook.Author;

// Book's authors (list of authors names)
  List<String> authors = epubBook.AuthorList;

// Book's cover image (null if there is no cover)
  Image coverImage = epubBook.CoverImage;

// CHAPTERS

// Enumerating chapters
  epubBook.Chapters.forEach((EpubChapter chapter) {
    // Title of chapter
    String chapterTitle = chapter.Title;

    // HTML content of current chapter
    String chapterHtmlContent = chapter.HtmlContent;

    // Nested chapters
    List<EpubChapter> subChapters = chapter.SubChapters;
  });

// CONTENT

// Book's content (HTML files, stlylesheets, images, fonts, etc.)
  EpubContent bookContent = epubBook.Content;

// IMAGES

// All images in the book (file name is the key)
  Map<String, EpubByteContentFile> images = bookContent.Images;

  EpubByteContentFile firstImage =
      images.isNotEmpty ? images.values.first : null;

// Content type (e.g. EpubContentType.IMAGE_JPEG, EpubContentType.IMAGE_PNG)
  EpubContentType contentType = firstImage?.ContentType;

// MIME type (e.g. "image/jpeg", "image/png")
  String mimeContentType = firstImage?.ContentMimeType;

// HTML & CSS

// All XHTML files in the book (file name is the key)
  Map<String, EpubTextContentFile> htmlFiles = bookContent.Html;

// All CSS files in the book (file name is the key)
  Map<String, EpubTextContentFile> cssFiles = bookContent.Css;

// Entire HTML content of the book
  htmlFiles.values.forEach((EpubTextContentFile htmlFile) {
    String htmlContent = htmlFile.Content;
  });

// All CSS content in the book
  cssFiles.values.forEach((EpubTextContentFile cssFile) {
    String cssContent = cssFile.Content;
  });

// OTHER CONTENT

// All fonts in the book (file name is the key)
  Map<String, EpubByteContentFile> fonts = bookContent.Fonts;

// All files in the book (including HTML, CSS, images, fonts, and other types of files)
  Map<String, EpubContentFile> allFiles = bookContent.AllFiles;

// ACCESSING RAW SCHEMA INFORMATION

// EPUB OPF data
  EpubPackage package = epubBook.Schema.Package;

// Enumerating book's contributors
  package.Metadata.Contributors.forEach((contributor) {
    String contributorName = contributor.Contributor;
    String contributorRole = contributor.Role;
  });

// EPUB NCX data
  EpubNavigation navigation = epubBook.Schema.Navigation;

// Enumerating NCX metadata
  navigation.Head.Metadata.forEach((meta) {
    String metadataItemName = meta.Name;
    String metadataItemContent = meta.Content;
  });
}
52
likes
35
pub points
68%
popularity

Publisher

unverified uploader

Epub Parser for Dart. Suitable for use on the Server, the Web, or in Flutter

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

archive, async, dart2_constant, image, xml

More

Packages that depend on epub