Need help with dart-epub?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

orthros
157 Stars 112 Forks MIT License 240 Commits 13 Opened issues

Description

Epub Reader and Writer for Dart

Services available

!
?

Need anything else?

Contributors list

# 25,703
gke
gRPC
Go
Kuberne...
161 commits
# 186,618
Dart
Flutter
HTML
swipe-m...
3 commits
# 281,328
Dart
Flutter
CSS
epub-re...
2 commits
# 163,168
C++
messeng...
reddit
matrix-...
1 commit
# 144,371
Flutter
parser-...
Dart
wikiped...
1 commit

dart-epub

Build Status

Epub Reader and Writer for Dart inspired by this fantastic C# Epub Reader

This does not rely on the

dart:io
package in any way, so it is avilable for both desktop and web-based implementations

Installing

Add the package to the

dependencies
section of your pubspec.yaml
dependencies:
  epub: ^2.0.0

Example

//Get the epub into memory somehow
String fileName = "hittelOnGoldMines.epub";
String fullPath = path.join(io.Directory.current.path, fileName);
var targetFile = new io.File(fullPath);
List bytes = await targetFile.readAsBytes();


// Opens a book and reads all of its content into 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 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 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 images = bookContent.Images;

EpubByteContentFile firstImage = images.values.first;

// 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 htmlFiles = bookContent.Html;

// All CSS files in the book (file name is the key) Map 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 fonts = bookContent.Fonts;

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

// ACCESSING RAW SCHEMA INFORMATION

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

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

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

// Enumerating NCX metadata navigation.Head.Metadata.forEach((EpubNavigationHeadMeta meta){ String metadataItemName = meta.Name; String metadataItemContent = meta.Content; });

// Writing Data var written = await EpubWriter.writeBook(epubBook);

// You can even re-read the book into a new object! var bookRoundTrip = await EpubReader.readBook(written);

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.