An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices

Overview

KOReader

KOReader is a document viewer primarily aimed at e-ink readers.

AGPL Licence Latest release Gitter Mobileread Build Status Coverage Status Weblate Status

DownloadWikiDeveloper docs

Main features

  • portable: runs on embedded devices (Cervantes, Kindle, Kobo, PocketBook, reMarkable), Android and Linux computers. Developers can run a KOReader emulator in Linux and MacOS.

  • multi-format documents: supports fixed page formats (PDF, DjVu, CBT, CBZ) and reflowable e-book formats (EPUB, FB2, Mobi, DOC, CHM, TXT). Scanned PDF/DjVu documents can also be reflowed with the built-in K2pdfopt library.

  • full-featured reading: multi-lingual user interface with a highly customizable reader view and many typesetting options. You can set arbitrary page margins, override line spacing and choose external fonts and styles. It has multi-lingual hyphenation dictionaries bundled into the application.

  • integrated with calibre (search metadata, receive ebooks wirelessly, browse library via OPDS), Evernote (export hightlights), Wallabag, Wikipedia, Google Translate and other content providers.

  • optimized for e-ink devices: custom UI without animation, with paginated menus, adjustable text contrast, and easy zoom to fit content or page in paged media.

  • extensible: via plugins

  • and much more: look up words with StarDict dictionaries / Wikipedia, add your own online OPDS catalogs and RSS feeds, share ebooks with other KOReader devices wirelessly, online over-the-air software updates, an FTP client, an SSH server, …

Please check the wiki to discover more features and to help us document them.

Screenshots

Installation

Please follow the model specific steps for your device:

AndroidCervantesKindleKoboLinuxPocketbookreMarkable

Development

Setting up a build environmentCollaborating with GitBuilding targetsPortingDeveloper docs

Support

KOReader is developed and supported by volunteers all around the world. There are many ways you can help:

Right now we only support liberapay donations, but you can also create a bounty to motivate others to work on a specific bug or feature request.

Contributors

Last commit Commit activity

Comments
  • Icon update using MaterialDesignLight

    Icon update using MaterialDesignLight

    Much lighter, simpler and less complex icons.

    Uses Austin Andrews' (Templarian)'s MaterialDesignLight icon theme as a base with modififications for size and content.

    Icons licensed under the SIL Open Font License 1.1 and Apache License 2.0


    Demo:

    2020-12-02_034410_728x932_screenshot


    This change is Reviewable

    UX 
    opened by johnbeard 282
  • Right to left support (Arabic, Hebrew, ...)

    Right to left support (Arabic, Hebrew, ...)

    • Device: kobo aura one

    Issue

    Duplicate topic but I wrote for the importance Will we see support for Arabic soon? In the keyboard And in writing the names of files and folders Finally in the menus and settings Thank you very much for this wonderful support and this extraordinary effort

    enhancement CREngine 
    opened by hgrain86 232
  • Android eink e-readers to add

    Android eink e-readers to add

    Intro

    KOReader has support for some eink update routines. These routines are not device specific, but platform specific.

    In order to add support for newer devices there's a tool included with the app. You can start the tool from KOReader file manager in "Tools" -> "More Tools" -> "Developer options" -> "Start eink test".

    Usage

    einkTest-1 2

    If you get results with the "tolino" update please answer this question too:

    does KOReader works normally (without full screen updates) or it seems stuck and not responding?

    Questions

    1. I did run all the tests but no one is working for me. Shall I report my results?

    Well, you can but it will stay ignored until a developer adds support for a new routine compatible with your device.

    2. One of the test works for me but (latest version of) KOReader does not refresh at all. Heeelp!!

    You're in the right place. Please report your test results and we can add support on the next KOReader nightly.

    3. I have an onyx device which seems to work with the eink test utility

    Onyx e-ink devices have their own ticket in https://github.com/koreader/koreader/issues/5073. We can't add new supported devices until these issues are fixed.

    original message

    I've been testing the screen refresh on my android e-readers (v2019.02-8-g3f41560_2019-02-04). It works on the Onyx C67 but not on the InkBook Prime HD (Boyue clone). However, the "einkTest" application does run the screen refresh. This is the information that appears when you run einkTest:

    Manufacturer: ARTATECH Brand: inkBook Model: Prime HD Product: Prime HD Hardware: rk30board

    Originally posted by @Cellaris in https://github.com/koreader/koreader/pull/4517#issuecomment-460712068

    enhancement Android firmware 
    opened by Frenzie 177
  • Suspend function

    Suspend function

    • KOReader version: several including the latest stable and nightly
    • Device: Aura H2O

    Issue Device seems to sleep but it is draining power like in page display or menu modes

    Steps to reproduce

    I have measured the battery currents of my Aura H2O and made this observations:

    Off state: approx 40 microamps

    KSM 08 idle: 13 mA average

    Koreader idle book open: 13mA average Koreader in true sleep mode: 1mA average

    Nickel Menu idle: 2 mA avg Nickel sleep: 1mA avg

    maximal working current 320 mA

    Coolreader and other apps in the vlasovsoft package have also 1mA sleep current

    True Sleep (suspend)is a three stage process:

    1. full working current [300 mA] for 5-6 seconds
    2. then 13mA for approx 10 seconds
    3. drop to 1mA and remains (or should) there until wake up is initiated (open sleep cover or push power button briefly).

    With open sleep cover and pushing the power button briefly Coolreader goes to true sleep. Closing now the sleep cover will wake the device briefly followed by the suspend chain. Coolreader will always true suspend when the sleep cover is closed. (I have not tested Nickel).

    The latest releases of Koreader do go into true sleep when sleep cover is closed. They will also go into true sleep when power button is briefly pressed. With open sleep cover and pressing power button true sleep is initiated. Closing the sleep cover will wake the device briefly (full 300 mA current) it will proceed to stage 2 (13 mA) and will remain there. The screen shows the book cover and the device appears to sleep but it is not. The current drain is the same as with a displayed page in reading mode. Disconnecting a charging cable with closed sleep cover will also result in a false sleep state and 13 mA drain.

    I have measured with Fluke 87 (average mode) direct in the positive battery lead.

    The device activity can be non-intrusive observed with an AM radio: Place the ereader within a few centimeters to the ferrite antenna and select a long or medium wave range. Select an unoccupied frequency and listen to the speaker noise. Move the ereader around to get the feel what to look at. Stage 1 and 2 are not easy to discriminate but stage 3 is significantly quieter. The jump to stage 3 occurs after about 16 seconds from triggering the suspension chain and is easily to recognize.

    I hope this helps to improve the sleep function.

    bug 
    opened by oldhasbeen 165
  • Pan zoom mode

    Pan zoom mode

    Adds an "horizontal panning" zoom mode: like column mode, but panning horizontally, with overlap.

    It should be useful when reflow is impossible or doesn't give a good result. Comics especially are much more readable.


    This change is Reviewable

    enhancement 
    opened by jperon 163
  • Better keyboards for KOReader V2

    Better keyboards for KOReader V2

    I fixed all the issues mentioned in my first pull request https://github.com/koreader/koreader/pull/7960. This time only three files have been changed: virtualkeyboard.lua, en_keyboard.lua, and en_popup.lua.

    https://github.com/koreader/koreader/pull/7960#discussion_r667554269

    • The only way to make the whole keyboard not flash when switching layers was to turn on "Avoid mandatory black flashes in UI" which messes up a lot of other things, so I made it only flash when going to symbol mode and not flash when shifting.

    https://github.com/koreader/koreader/pull/7960#discussion_r667555668

    • The keyboard in night mode is now black so the screen doesn't run slower.

    https://github.com/koreader/koreader/discussions/7951#discussioncomment-987604

    • Capital letters are now above the lowercase letters in popup windows, making typing way faster. I also did the same for apostrophes, brackets, periods, commas, and semicolons.

    https://github.com/koreader/koreader/pull/7960#issuecomment-877900220

    • Swiping keys is back.
    • The ⌥ symbol came in 1993, Apple started using it in 1995 so let's just say I happened to use the same key as Apple. Not sure how that's "cultural discrimination."
    • I completely removed "umlaut/alt mode" since it just left a bunch of blank space that I had a hard time filling, now there is just "symbol" and "shift" mode.
    • Touch and Full have been removed, everything is in one keyboard now. Someone else would have to edit the FR and EL keyboards to work with the extra row, as I'm not sure how they're supposed to work.
    • I put the semicolon on the main screen and added the CSS tweaks in the popup. I swapped "!important" and ":" in the popup so that it would match the rest of the keys with the capital version on top.
    • Since there are only 4 panels now I removed the "full width" chars.

    This change is Reviewable

    opened by MoreFoxBeans 155
  • Minimum length for fragments of hyphenated words

    Minimum length for fragments of hyphenated words

    • KOReader version: v2015.11-1564-gbfd55c7_2018-03-13
    • Device: Kobo H2O

    Issue

    Would it be possible to include settings for the minimal length of splits when hyphenating words, for example in the way it is done in the Hyphenate This plugin for calibre? There, you can enter something like

    LEFTHYPHENMIN = 5
    RIGHTHYPHENMIN = 5
    

    which leads to words not being broken if either the left or the right part would be shorter than 5 characters. With that setting, it would be admissible to split

    extra-ordinary,

    but not

    ex-traordinary,

    nor

    extraordi-nary.

    Regardless of this, thanks a lot for developing koreader!

    CREngine 
    opened by jchtt 144
  • Publish Koreader for Android

    Publish Koreader for Android

    • KOReader version:
    • Device:

    Issue

    Is there any reason we do not publish Koreader in Google play store? If it's simply because nobody has a Google developer account, I could help.

    Steps to reproduce

    enhancement Android low-hanging-fruit 
    opened by Hzj-jie 136
  • [UX] Use ProgressWidget in frontlight

    [UX] Use ProgressWidget in frontlight

    This makes it behave like a pretty decent slider.

    Cf. https://github.com/koreader/koreader/issues/5314.


    This is not unlike #5371 but it works much better. I'm attaching some screenshots, but without trying it on a real device they're fairly meaningless.

    Before / After

    UX 
    opened by Frenzie 126
  • Exporter plugin refactor

    Exporter plugin refactor

    This PR deals with Exporter plugin refactor.

    Fixes #8633 Fixes #8321 Closes #8755

    Mostly maintainability changes, which don't affect end users. The basic behaviour is still the same: two options (export this document/export all history documents)'s highlights

    • Changed: you can select multiple targets and export to them in a single click.
    • Changed: Local targets (html, json and text) now are timestamped. Exporting booknotes on already exported documents will generate a new file with all the highlights present at export time. Previous files won't be deleted.ç
    • Fixed: chapters are now correctly represented in html output.
    • Fixed: json issues when exporting the whole history.
    • Fixed: joplin and readwise crashes when they're unable to reach the server
    • Fixed: joplin update notes mechanism.
    • Fixed: joplin is able to recreate the notebook if the user deletes or renames its current one.
    • Fixed: highlights of read-only documents are also added when exporting the whole history (affects mostly android, might affect desktop targets)

    This change is Reviewable

    Plugin chore 
    opened by uroybd 125
  • dictionary: sdcv segfault on firmware 4.6.9960

    dictionary: sdcv segfault on firmware 4.6.9960

    Hello,I'm using the latest release koreader-kobo-arm-kobo-linux-gnueabihf-v2015.11-1293-g34ad91c on kobo aura one.

    I have tried several dictionaries (for example,search for definition for apple) but none worked. They all said no definition found.

    Also,i noticed a Segmentation fault in the crash.log. Does it have anything to do with my problem?

    Thanks in advance.

    bug Kobo 
    opened by xpirad 119
  • Calibre plugin: series are not ordered correctly

    Calibre plugin: series are not ordered correctly

    • KOReader version: latest stable (v2022.11)
    • Device: Kobo Aura One

    Issue

    Calibre plugin: series are not ordered correctly when visualized.

    Steps to reproduce

    Import a calibre series with a large number of elements (> 100), go to calibre metadata search->browse series, type (click) on the series and you'll see that element 100 is the next one after the 10th (and so on).

    The following workaround solves my use case, but (since I'm not fluent in LUA) I don't think it's the correct fix. I presume the correct fix is related to line 274

    https://github.com/koreader/koreader/blob/843c4bfe66727d59460c37cb79fdd3317a735d74/plugins/calibre.koplugin/search.lua#L278

    becomes

    entry.text = string.format("%03d.%s | %s - %s", major, minor, book.title, book.authors[1])

    opened by bunglegrind 0
  • Kobo Glo HD: power button doesn't wake up

    Kobo Glo HD: power button doesn't wake up

    Device: Kobo Glo HD (not my device) Version: 2022.11

    When KOReader is running, the power button doesn't wake up the device from sleep, connecting to a charger does.

    Kobo need more info firmware 
    opened by hius07 3
  • Images in reflow are splitted up and not coherent

    Images in reflow are splitted up and not coherent

    Structures and images in chemistry texts in reflow mode seems to be prone to misplacement, the schemes are splitted (the figures became not inline, the reader reads the text on the structures as text and not image so it moves).

    Any suggestions how I can improve this?

    However, if i put a text box on the pdf around the images, koreader makes it perfect, the images are whole and the text nicefully reflowed.

    opened by sis9 1
  • Vocabulary builder Font size

    Vocabulary builder Font size

    Can you enlarge the font size of the words and example sentences in the Vocabulary builder slightly? Especially for example sentences, the font size is too small. Plus, Google Translate's font size is a little smaller.

    enhancement 
    opened by 13879885572 0
  • Delete file: inconsistent confirmation wordings

    Delete file: inconsistent confirmation wordings

    File browser 01

    History 02

    Reader (end of the document action) 03

    (1) Unified wording must be discussed and found. (2) If a book has been opened, additional text can be shown: "Book settings, highlights and notes wil be permanently lost" (see https://github.com/koreader/koreader/issues/9978).

    opened by hius07 5
Releases(v2022.11)
Owner
KOReader Community
KOReader Community
Librera Reader is an e-book reader for Android devices;

Librera Reader is an e-book reader for Android devices; it supports the following formats: PDF, EPUB, EPUB3, MOBI, DjVu, FB2, TXT, RTF, AZW, AZW3, HTML, CBZ, CBR, DOC, DOCX, and OPDS Catalogs

Ivan Ivanenko 1.3k Jan 2, 2023
Pdf Extractor - Covert array list of object to pdf table

Pdf Extractor - Covert array list of object to pdf table

Mostafa Gad 8 Apr 3, 2022
Green Pass: PDF Reader (unofficial) Android App

Green Pass: PDF Reader (unofficial) Android App Offers a convenient access to a single one-sided PDF document and its QR code (if present in the docum

Michael Troger 32 Dec 31, 2022
HTML to PDF convertor for Android

HTML to PDF Convertor A simple HTML to PDF convertor for Android Download Add mavenCentral() repository in project's build.gradle allprojects { re

MD Danish Ansari 48 Jan 2, 2023
A simple Pdf document viewer 💼

Pdf Viewer Plus Screenshots Main Page Main Page Cyanea Permissions and privacy This app does not collect any data. The following permissions are requi

gokul 332 Dec 7, 2022
OpenNoteScanner - Android application for scanning and manipulating handwritten notes and documents.

OpenNoteScanner This little application provides a way on scanning handwritten notes and printed documents. It automatically detect the edge of the pa

Claudemir Todo Bom 1.2k Jan 1, 2023
Document Viewer is a highly customizable document viewer for Android.

Document Viewer Document Viewer is a highly customizable document viewer for Android. Supports the following formats: PDF DjVu EPUB XPS (OpenXPS) CBZ

Sufficiently Secure 492 Jan 8, 2023
Pdf Reader: Read text in PDF with Text to Speech

PDF Reader PDF Reader Read text in PDF with Text to Speech APK Link Here | App D

Rushikesh Suryawanshi 0 Jan 21, 2022
A Java ePub reader and parser framework for Android.

FolioReader-Android is an EPUB reader written in Java and Kotlin. Features Custom Fonts Custom Text Size Themes / Day mode / Night mode Text Highlight

FolioReader 2.1k Jan 3, 2023
Librera Reader is an e-book reader for Android devices;

Librera Reader is an e-book reader for Android devices; it supports the following formats: PDF, EPUB, EPUB3, MOBI, DjVu, FB2, TXT, RTF, AZW, AZW3, HTML, CBZ, CBR, DOC, DOCX, and OPDS Catalogs

Ivan Ivanenko 1.3k Jan 2, 2023
Learn how to make an app designed for single-screen devices shine when running on foldable and dual-screen devices

dcberlin21-workshop Make your app shine om foldable devices with the samples we have here. Related links SDK open-source code SDK samples (Kotlin) App

Cesar Valiente 3 Oct 26, 2021
A Lightweight PDF Viewer Android library which only occupies around 125kb while most of the Pdf viewer occupies up to 16MB space.

Pdf Viewer For Android A Simple PDF Viewer library which only occupies around 125kb while most of the Pdf viewer occupies upto 16MB space. How to inte

Rajat 362 Dec 29, 2022
Pdf Extractor - Covert array list of object to pdf table

Pdf Extractor - Covert array list of object to pdf table

Mostafa Gad 8 Apr 3, 2022
A third party app for android to manage your kindle.

Kindot - A third party app for android to manage your kindle.

null 5 Nov 23, 2021
[] A fast PDF reader component for Android development

This project is no longer maintained. You can find a good replacement here, which is a fork relying on Pdfium instead of Vudroid/MuPDF for decoding PD

Joan Zapata 2.8k Dec 16, 2022
Green Pass: PDF Reader (unofficial) Android App

Green Pass: PDF Reader (unofficial) Android App Offers a convenient access to a single one-sided PDF document and its QR code (if present in the docum

Michael Troger 32 Dec 31, 2022
How-Many-People-Are-In-Space - Do you wonder how many people are in space? Now you can check instantly with this app

How Many People Are In Space? Do you wonder how many people are in space right n

null 2 May 10, 2022
Flym News Reader is a light Android feed reader (RSS/Atom)

BEWARE: Google added some restrictions to news app and I don't see how Flym (and other RSS aggregators) could comply to that. For instance, Flym canno

Frédéric Julian 938 Jan 1, 2023
Flym News Reader is a light Android feed reader (RSS/Atom)

BEWARE: Google added some restrictions to news app and I don't see how Flym (and other RSS aggregators) could comply to that. For instance, Flym canno

Frédéric Julian 938 Jan 1, 2023