Giter Club home page Giter Club logo

epubator's Introduction

Minimal offline PDF to ePUB converter for Android

ePUBator extract text from a PDF file and put it in a well formed (epubcheck compliant) ePUB file.

What ePUBator does

  • ePUBator is thinked for books (not for every type of pdf), but if you need a better result try something else like calibre.
  • ePUBator doesn't need internet connection (doesn't send your docs somewhere on the net, doesn't have ads).
  • ePUBator extracts text (no text from pictures or from raster PDF).
  • ePUBator tries to extract images (only png, jpg and gif) but puts them at the page's end.
  • ePUBator tries to extract the table of contents if present (or creates a dummy TOC).
  • ePUBator doesn't extract the font size and style.
  • ePUBator saves the ePUB file in the same folder of PDF file or in Download folder if PDF folder is not writable or if it is set in Settings.
  • ePUBator works fine only with single column PDF (worse with multi column or tables).

Known issues

In the event of crash, unexpected stoppages or insufficient memory try setting Page per file to 1 and/or disable the extraction of images and try again (it helps sometimes).

The creator of the app converted a lot of books (italians and some english) with ePUBator, but with some of them, he said the conversion failed (raster PDF, columns, out of order chars).

App has never been tested with files containing arabic or asian characters, right to left or vertical writing.

On some books, you can find wrong chars (e.g. the vowels with backticks in languages like the Italian), it seems like an iText's problem (another PDF library extract the same text correctly).

Permissions required

  • READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE for save the ePUB file
  • VIBRATE for vibrate after conversion finishes

Built with

PDF extraction based on iText library released under the AGPL license.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Download

You can download the old app from Sourceforge.

If you want to use the new one, you have to build it through Android Studio. Since I'm not the creator of the app, I cannot update the version of the one at the Play Store.

Creator

  • iiizio: Original creation of the app, integration with iText, created Sourceforge project, published it on Play Store...

Contributors

  • abravodev: Redesigned the app, made major refactor of its structure, created Github project...
  • yasujizr: Design for app logos (launcher icon, main view, epub's covers)

epubator's People

Stargazers

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

Watchers

 avatar

epubator's Issues

FileUriExposedException in Android Q

Hi I'm getting the following exception in Android 10 (Q) while trying to open a pdf or clicking verify epub. The app is crashing.

android.os.FileUriExposedException: file:///storage/emulated/0 exposed beyond app through Intent.getData() at android.os.StrictMode.onFileUriExposed(StrictMode.java:2083) at android.net.Uri.checkFileUriExposed(Uri.java:2388) at android.content.Intent.prepareToLeaveProcess(Intent.java:11478) at android.content.Intent.prepareToLeaveProcess(Intent.java:11449) at android.content.Intent.prepareToLeaveProcess(Intent.java:11428) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1711) at android.app.Activity.startActivityForResult(Activity.java:5250) at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79) at android.app.Activity.startActivityForResult(Activity.java:5208) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859) at it.iiizio.epubator.presentation.views.activities.MainActivity.selectFileFromSystem(MainActivity.java:155) at it.iiizio.epubator.presentation.views.activities.MainActivity.selectEpubFileFromSystem(MainActivity.java:166) at it.iiizio.epubator.presentation.views.activities.MainActivity.access$100(MainActivity.java:46) at it.iiizio.epubator.presentation.views.activities.MainActivity$2.onClick(MainActivity.java:132) at android.view.View.performClick(View.java:7870) at android.widget.TextView.performClick(TextView.java:14970) at android.view.View.performClickInternal(View.java:7839) at android.view.View.access$3600(View.java:886) at android.view.View$PerformClick.run(View.java:29363) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:7860) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)

How can I solve this?

i will love to do copywriting for you

I love your application and would want to contribute to it, I'm not a developer but I am good at copywriting. I would love to make a copywrite for your Readme and make a pull request for you to merge. Your response would be highly appreciated. Also I would like to request if we could communicate via email, so I don't have to create issues. Thank you.

New Design

epubator

Hi,

I have studied your work and I think a new design will make you more visible. I designed for you, I hope you like it and you want to use it. If you want to reach me, you can look at the my profile. I can give you all the formats of the design free. If you want a change please specify.

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.