Code Monkey home page Code Monkey logo

librerareader's Introduction

Logo

The development and support of Librera is frozen for an unpredictable time, there is a big war in my country Ukraine. Russian invasion of Ukraine

OFFICIAL FUNDRAISING PLATFORM OF UKRAINE

Librera Reader

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

Download application

Librera Reader on Google Play

Librera PRO on Google Play

Librera F-Droid

Beta testing .apk

Application Fonts.zip

Links

web: https://librera.mobi/

What is new/Changes

FAQ

Telegram Info

Telegram Chat

Support/Donations on Patreon

Email: [email protected]

Required build libs

mesa-common-dev libxcursor-dev libxrandr-dev libxinerama-dev libglu1-mesa-dev libxi-dev pkg-config libgl-dev

You also need the Android NDK in version 20+ Please ensure to download it using android studio and add the NDK to your PATH.

Create a keystore

Even if you do not plan to upload a version yourself you need a keystore with a certificate to build. The keystore needs to be in PKCS12 format. You can create a keystore in your actual directory using the following call (replace ALIAS by your alias, it is just a name):

keytool -genkey -v -storetype PKCS12 -keystore keystore.pkcs12 -alias ALIAS -keyalg RSA -keysize 2048 -validity 10000

Now edit or create the file ~/.gradle/gradle.properties and set following values (replacing PASSWD by the password you typed while creating the keystore, ALIAS as before and using the path to your keystore):

RELEASE_STORE_FILE=/PATH/TO/YOUR/keystore.pkcs12
RELEASE_STORE_PASSWORD=PASSWD
RELEASE_KEY_PASSWORD=PASSWD
RELEASE_KEY_ALIAS=ALIAS

Create Firebase Authentication file

To build with firebase support (all version but the ones for Fdroid) you need to get an authentication file for firebase services offered by google. Therefore please follow https://firebase.google.com/docs/android/setup to create your own project. You need to register for the packages com.foobnix.pdf.info and com.foobnix.pdf.reader.a1. This way you will get a google-services.json file that you have to place in the app folder of the repository.

For this project only Analytics is used, so a spakling plan is all you need.

Librera Build on MuPdf

cd Builder
./link_to_mupdf_x.x.x.sh (Change the paths to mupdf and jniLibs folders)
cd ..
./gradlew assembleLibrera

Building for F-Droid for Android

If you wish to build for F-Droid (e.g. not using google services, Internet) you can run the build with

cd Builder
./link_to_mupdf_x.x.x.sh
cd ..
./gradlew assembleFdroid

F-Droid build does also not need a google-services.json

Librera depends on:

MuPDF - (AGPL License) https://mupdf.com/downloads/archive/

  • ebookdroid
  • djvulibre
  • hpx
  • junrar
  • glide
  • libmobi
  • commons-compress
  • eventbus
  • greendao
  • jsoup
  • juniversalchardet
  • commons-compress
  • okhttp3
  • okhttp-digest
  • okio
  • rtfparserkit
  • java-mammoth
  • zip4j

Librera is distributed under the GPL

License

See the LICENSE file for license rights and limitations (GPL v.3).

librerareader's People

Contributors

alexgabi avatar asereze avatar beckydtp avatar dakyz avatar e406hsy avatar extreemator avatar fermat2a avatar foobnix avatar ikanakova avatar isira-seneviratne avatar jzyken avatar linsui avatar mackeev avatar omerfaruk-cakmak avatar rerbin avatar rlpowell avatar rockmax001 avatar rosalie241 avatar rudloff avatar sak96 avatar shkoda963 avatar stanumarov avatar tacothedank avatar tarkanbulan avatar teemue avatar tepikin avatar valdnet avatar venoom90 avatar vm75 avatar zityi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

librerareader's Issues

Bug: forever loading upon opening

I am experiencing this (in real time) on Librera beta 7.0.56, on the Onyx Boox Max Carta (Android 4.0.4). (At the moment cannot test the new beta, being away bound on mobile)
On last boot session, I was reading a 150MB (made of scans) PDF; having booted the device today,
-- when I open Librera, it tries to load the last book but hangs forever in "Loading..Please wait";
-- so I open a new book from the launcher, but still hangs forever in "Loading..Please wait".

I am not sure how can I further assess

Zoom control in easy mode

It may be important to have zoom control also in easy mode,
or at least a "fit to screen" option (please also see forthcoming bug notice about books that are opened with the wrong zoom).
I suppose a "pinch" function exists, but some screens are not multitouch (for example, "wacom-like pen only controlled").

Do The project supported in Android studio?

Great project guys a nice combo of popular and powerful projects and as it in continuous development it will definitely help a lot of devz and take over project like fbreader as open source fbreader is not being developed any more so yeah Librera will definitely help alot of people's to speedup the job

BUT, as you mentioned it require Eclipse so the issue is now a days we all are using android studio for all of our project so, ether if you can Add some better documentation on this or If it is possible to migrate from eclipse to Android studio that would be great.

And Thanks for such a great contributions to open source community.

Keep up the Good work.

Selector for sorting in starred documents view

The default sort criterion for the "starred" documents browsing view is by "date of starring", which is very good, but some users maybe would like to be able to switch to sorting by name, or (what do you think?) by folder and filename.

Probably not urgent or important, but just for completeness.

Remove page markers and pre-chapter whitespace

Hello,

First, fantastic software, I've been looking for a replacement for the ageing MoonReader and I switched within ten minutes of finding things. I am very impressed.

The biggest thing that impressed me was true auto-scroll, not 'get to the end of the chapter and move to the next one' auto-scroll that MoonReader has. Now I'd like to make my reading experience truly 21st century and get rid of any distractions when reading. I don't know CSS that well (I don't even know if it is a CSS thing or not) but is there a way to remove page markers, and get rid of any whitespace between the end of one chapter and the start of another?

Disable animation on slow refresh screens

Animation in general - "Simple scroll animation" in the preferences - should be disabled by default on slow refresh screens.
This is first of all for electrophoretic displays.
The one I have here shows a refresh rate in 'dumpsys' of 0.001, which is far from true; so-called 'A2' mode looks around 8fps, and I have seen videos of new EPD screens that look capable of around 16fps.
Probably, a display with a rate below 20fps could be considered "slow" (?).
The point is especially important for EPD display: pixel switchi in normal mode is graphically messy and uses battery inefficiently in animations

Alert "New beta version" triggers when off the internet

Hi, I just installed the new beta 7.1.30,
the first thing that appears is a notification window that says that a new beta version is available.
But
-- 7.1.30 is the latest
-- and anyway, the second device I installed it to had no internet connection, so it cannot know...

Broken rendering in crop margins

This is an issue that was also on the old versions of "PDF Reader"... To overcome it, I used to upload documents with margins already cropped.

The problem: open a PDF in "Advanced mode", toggle the "crop white margins" icon. The rendered page will appear jagged, blocky and uneven, as if scaled from a much smaller rendering and/or using a sketchy algorithm ("nearest neighbour" etc.).

In my opinion, this issue should have a high priority

Tutorial in English

The file mentioned on the official website is archived.

Could you paste a tutorial in English here or somewhere.

Missing TOC in documents

I suggest to disable the toc icon in documents with no toc. Instead of opening a blank toc window (and closing it), could be showed a toast to inform that the document has no toc. The toc icon could be disabled and with a different color (grey) to be clear it is disabled.

Долгий тап отключает обрезку

При долгом тапе на книжке отключается обрезка, хотелось бы иметь возможность убрать это поведение. Это наблюдается в расширенном режиме на 7.2.20 - 7.3.5 Android 7.0
Наблюдается в pdf и djvu

Recent tab do not remember last view settings

Setting a different view in Recent tab other then list view is not remembered if you restart the app.
It shows books always in list view even if your last view was grid or cover or compact view.
It should remember the last view setting similar to the other tabs (library, starred)

Error in Shell Script

Hello i am getting a error in this file update_all.sh
Error in line number 22 this is output of this command
root@pentest:/home/poseidon/atman/LirbiReader# sudo ./update_all.sh
fatal: destination path 'google-play-services-ads' already exists and is not an empty directory.
./update_all.sh: 22: ./update_all.sh: [[: not found
Please help me i reviewed the file and i think that exist a issue in this line
for d in * ; do
if [[ -d $d ]]; then
echo "$d"
rm $d/build.xml
The shell script not are working please help me
Thanks

Field to define the expected syntax of filenames

In the list and grid view of the book selection tabs, a heuristic method is used to identify "author (editor, etc.)" and "title (subtitle, etc.)" from the filename, when they are not available as metadata: the space-dash-space, ' - '.

Problem: not all filenames use the "author - title" syntax,
for example 'Book about something, The [Publishing House - Smith, J., 2000]'.
In this case, the "Author" is taken to be 'Book about something, The [Publishing House'
and the "Title" is taken to be 'Smith, J., 2000]'.

Proposal: add a string field with an expression such as
"%a - %t"
The above defaults to what you are doing now. If the user modifies the expression, for example, as
"%t [%a]", then the split would be correct for the example I gave above.

(I mention this issue in another post, but here it is better defined).

Feature request: contrast

Greetings,
some documents (especially scanned documents) may not be fully contrasted, ranging as images from light grey to darker grey instead of white to black.
It would be nice to have a contrast enhancer, to render the pages flattening colours towards the extremities of black and white. Example curves:
contrast

This is especially useful on EPD displays, where you really have "light grey to dark grey" in reality - some contrast is lost because of the current hard limits of the technology...

Bug: documents may open with the wrong zoom

I opened a document, Librera set in landscape mode, but the document opened in double page using a zoom that seems to contain around 1.625 pages (linearly) instead of 2.
It looks like it may have opened with the zoom for "portrait, single page".

Better customization of the grid of books

In the preferences, "Cover image size" section, it would be nice that:

  • the "Grid [size]" and "Column count" do not necessarily modify each other;
  • a checkbox "Auto adjust" is used to have current behaviour of relation of "Cover image size in grid" and column count;
  • the cover image size still cannot be more than (screen size / column count);
  • but if the cover image size is small (e.g. 80), and the columns large (e.g. count = 4), good, the grid shows a small cover, but with large text strings (title, filename etc.), and the grid rows are short proportionally to the cover image size (instead of tall);
  • also, a checkbox could "hide the cover": in this case, * the column count determines the column width, * the cover size determines the column height (the same as if the cover was displayed), and * the text screen occupy the space instead of the cover page, and they word wrap.

Icon for "fit and centre" - glyphicons_488_fit_image_to_frame

As the icon for the "fit and centre" operation, more precisely ImageView ID "@+id/moveCenter", I think that glyphicons_114_justify does not suggest the operation immediately.
On the other hand, I think that glyphicons_488_fit_image_to_frame is almost perfect (this already existing icon is very similar to what I was thinking to draw and propose instead of glyphicons_114_justify).

Colour of default book covers

In case a book does not have a cover (the first page of a PDF, etc.), the software creates a cover by placing a default bitmap, colourizing it, and writing the title on it.

Problem: unrelated random-like colours can be confusing. For example, "The big book, Part 1" in dark brown, "The big book, Part 2" in light blue, "Some other book" in blue. This is messy.

Proposal: the colorization of the book cover uses a default colour (a neutral colour like grey),
but (secondary proposal) the user may assign a different colour to a single book cover from an editable palette, to allow for categorization.

Example: all default covers (those which must be built using the default image with the cursive "L") are grey, but the user has set that "The big book, Part 1" and "The big book, Part 2" are colourized using (say) the fifth colour of the covers palette, say light blue, because that colour represents to the user a category for those books.

(Lower priority)

Ads in the program

Librera seems nice, but there are some unpleasant advertisement banners in it. They should be removed.

Also, while I am not a lawyer, it does seem to me that the license should be AGPL instead of GPL, since you are using muPDF, which is AGPL-licensed.

Double page mode, landscape horizontal scrolling

Dear Ivan,
I use and love your product since the dawn of Android, and I have been always recommending it as the foremost.
I am currently using an Onyx Boox Max Carta, 13.3'' ElectroPhoretic display Android 4.0.4 - it is roughly an A4, but 4:3 instead of √2:1.
Devices are starting to appear that have a screen real estate that make you wish to view PDF documents in landscape mode, horizontal scrolling. (I believe that at some point in time you implemented something similar, a "magazine mode"?) You start with page 1 on the left and you scroll towards the right up to the last page.
I downloaded the Lirbi GIT repository to see if I can implement the feature. But of course it is more sensible if I first of all propose it as a feature request. Please let me know what you think; if I manage to obtain good code I will submit it.

Better customization of the grid of books (consolidated proposal)

NOTE: heavily edited, last edits in the night between Sat 2 and Sun 3 Sep.

Browsing the documents, one can currently use a grid view of the books; it is configured through parameters "Cover image size" and "Column count". The text (title, filename etc.) is placed below the book cover image.

Problem: if the cover size is small, the strings below are too short, but if the cover is large, and the text is long, few documents per screen are visible.

Proposal: to have a more compact grid view, which allows to see more books per screen:

  • another "view mode" named something like 'Compact' alongside with 'List', 'Grid' and 'Cover' is added to the relevant pop-up menu;
  • if the "compact mode" is on, then "Cover image size" is irrelevant: the book cover image is set to dimensions based on 80dip (80x120 ?);
  • "Column count" decides the number of columns;
  • The text - the filename only - is placed to the right of the book cover image;
  • At least the "starred" and "menu" icons are below the filename.

Below is an example, using "Column count" = 4:

compactgrid

Feature request: proportional auto-scroll speed

The problem:
scroll speed is constant no matter how much text is on the screen. Sometimes paragraphs are short. Sometimes are long. Sometimes there is a large space between paragraphs and sometimes they are cluttered. Sometimes there are images, and finally there is the spacing between pages. This happens within a single text.

Feature request:
It would be great if the auto-scroll speed was proportional to the amount of words (or characters) shown on the screen.
So when there is a lot of text on the screen scroll speed would be proportionally slower, while when there are few words on the screen it would be proportionally faster.

This would really help a lot!

Local dictionary

A lot of web dicts are integrated, but what about to bind a local dict in the app, i think the dict file should be very small.

Flash out of Librera, but good with eBooka

I know you developed both, and Librera crashes everytime I start it. eBooka is doing very well.
The beta version of Librera I download here can work, but when I auto updated in Google Play, it never works.
What is the probable reason?

Keeping same book page when switching single-to-double

When switching from single page to double page mode, - for example - page 20 of 300 becomes page 20 of 150,
but the two "page 20" are not the same book page.
When switching and while at page 20 of 300, the current page should become 10 of 150 - to keep the same book page

Load epub very slowly ?

I try to read this book
Name of Book: reactive-programming-with-rxjava-tomasz-nurkiewicz.epub
Size: 5.8 MB
Total pages: 1488
But it displays the progressBar and loads for a long time.

Center on screen button

I missed this everytime I moved the pages by accidental panning, having forgotten to "lock position":
it would be nice to have the option to re-center the pages on the screen.

You could combine this option with the "(zoom) fit to screen" in easy mode; when scrolling pages (advanced mode) the two options of "centering" and "fit to screen" should be separate

Background colour, around the page

The colour surrounding the page in night mode is not black, but dark green; on OLED displays, which have the benefit of a "real black" (lights are off), the area around the page is glowing.
It would be useful to be able to change that background colour, or to set it to black (since on OLED displays it means "off").

Thank you!

Text to speech is playing dumb.

When using text to speech feature, there are multiple issues:

  1. It does not start from the current displayed page/text/paragraph (except obviously when starting from the beginning of the book)
  2. While speaking, it repeats entire page of text (narration doesn't make any sense anymore, it can repeat something that's 10 page earlier, then some part that are "in the future")
  3. There is no feedback about where it is. Ideally, it should overlay, invert, put a dot, or some visual clues about what's being pronounced. This way, it's easy to figure out when it's "restarting" from, instead of trying to outpace while reading the text.

I've tried to use both advanced mode and simple mode with the same result.
I'm using the latest beta downloaded today.

ODPS server with basic authentication issue

I have an ODPS server with HTTP basic authentication that's working fine with FBReader and iReader.
With Librera, there are 2 issues:

  1. When I set up the password, it's displayed in clear text in the server's list (not really wanted)
  2. The system never succeeding connecting to the server and thus prevent any action, popping up error dialog endlessly, I have to force close it. I've modified my server not to use authentication, and it's not breaking the crazy loop.

Thanks for support

Is android studio suppored?

Guys you are doing greate job and i was actually for some good project like other then fbreader which is not update from long time (one that is open sourced). So just had look on to librera project and as i far as i can see it is continually being developed with interesting features. So have couple questions.

I want to use librera in my open source project as it is under gpl 3.
So, if yes then is Android studio supported for the project or if not
Then is there any better readme/Documentation Available.

Response from your end would be appreciated.

And thanks for such a great contribution to the community.

Multi-document

I am seeing, discussing in forums, that many users on mobile devices are missing simultaneous browsing of many documents, which they would do on desktops (multi-window or multi-tabs).
It is like multi-tab browsing on Web browsers.
Do you think it can be done?

(Apologies for any delay, I am currently away)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.